0x00:js绕过
上传的文件在网页本地,可以直接修改js代码上传的时候调用了一个本地的js函数:checkFlie();查看checkfile
发现只是允许jpg,png,和gif图片上传
- 禁用js的checkfile函数
- 修改checkfile函数
- 先上传图片格式的一句话木马,然后抓包改包修改回来
1.上传的时候不调用js2.修改checkfile函数,把php也加入允许范围
3.先上传图片后缀的木马,然后再抓包修改
测试连接
0x01:MIME绕过
抓包,修改mime
0x02:文件名绕过
源码禁止上传.asp.php.aspx.jsp后缀的文件,(大写也不能,因为后面都转化为了小写的了),但是没有禁止.php3.phtml等可执行文件后缀。所以上传一个.php3的文件。成功连接!(网上可以查看php不安全扩展名)
0x03 黑名单绕过:.htaccess文件解析命令
看源码发现几乎禁止了一切可执行的文件后缀的文件上传,但是没有禁止.htaccess文件解析命令的上传,所以可以上传 一个.htaccess的 文件,它会将 一个指定的后缀的文件解析成另外一种文件来执行。
这里我们上传一个.htaccess文件,让它将.jpg文件解析成php文件来运行
SetHandler application/x-httpd-php
上传 ,将所有文件都解析成php文件,
然后再上传一个木马图片。上传成功,然后图片马。打开图片地址(打开的时候系统会将图片解析成为php文件,然后运行)
0x04:黑名单绕过 :大小写绕过
和上一个 题目一样,禁止了所有可执行文件的后缀包括.htaccess但是没有禁止大小写绕过
所以上传有大写的后缀
0x05:后缀尾留空绕过
源码在提取文件后缀的时候,没有用trim()函数进行去空处理,
所以在文件后缀后面再加一个空格
0x06:加点绕过
黑名单,但是没有对后缀名进行去"."处理,
0x07:::$DATA绕过
黑名单,但是没有对后缀名的去
"::$DATA"
处理,所以在后缀名后面加上"::$DATA"
打开文件的时候没有成功,因为目标靶机是Linux系统,而"::$DATA"绕过要在window上才可以,数据流~~~~
参考大佬们的博客发现:成立条件比较苛刻
0x08:pass -08
黑名单 ,空格,点,::$DATA都不行。
但是发现在拼接文件访问路径的时候直接用的是file_name变量而不是用处理后的file_ext变量,所以就可以构建一个文件名,既可以使它经过处理后生成的file_ext不在黑名单中,然后用在访问用file_name构建的地址时,解析file_name时是一个可执行的php文件。处理后,"file_ext=."而"file_name=zjh.php. "
成功!!
0x09:str_ireplace() 函数绕过
看看str_ireplace()函数的用法
从左往右开始索引目标数组,所以改改文件后缀
用 蚁剑连接
打开虚拟终端用 cat /flag暴力打印出flag
总之姿势对了,flag就有了
来源:CSDN
作者:H G
链接:https://blog.csdn.net/YIHAHUHA/article/details/102987224