因为我是初学者,所以无法从代码审计角度分析,这里感觉像撞运气,不断尝试
直接抓到包了,为后端验证
从这里可以看出为白名单。
单纯的将php文件后缀改成png,尝试上传抓包,然后改后缀为php,发现不能上传,第三关显然难度不会像第二关一样简单。
1:尝试传输错误的后缀文件看能否抓到包,判断前端后端
是前端:四种方法,替换js文件,剔除js审计,关闭网站的JavaScript,上传符合要求的后缀文件再抓包修改为与之匹配的脚本后缀。
2:空格绕过
3:.绕过(点绕过)
4:. .绕过(点空点绕过)
5:双写文件后缀名pphphp其中p(php)hp括号里被剔除
6:URL的%00截断(前提GET请求从URL中获得路径如果抓包代码第一行有save_path可以试试此方法)
7:代码里的0x00截断
访问截断时候,要将路径%00或0x00后面的删去访问
8:user.ini绕过(upload第五关)
9:图片码
(1):php文本单纯改后缀不是真图片
(2):字节标识符绕过(修改图片头部字节标识符)(不是真图片)
(3):利用cmd copy语句合成图片码(真图片)
(4):二次渲染(真图片gif更容易实现)(法(1):gif二次渲染会保留一部分相同的内容,只需要在此内容中写上一句话木马防止改变)
网站将上传的图片进行二次编码,会改变我的一句话木马导致解析错误。
方法(2):将图片上传,将渲染后的图片插入一句话木马
10:
最后也是最不希望遇到的:
(1):.htaccess绕过,还有版本的例如php不行改php5的这种
(2):条件竞争不停访问与服务器竞争线程,让服务器删不过来,就有机会上传成功。
补充:
.users.ini与.htaccesss当遇到会更改文件名的靶场是行不通的
如何判断黑名单绕过还是白名单绕过:将后缀改成类似于这样一定不存在的文件后缀sdoisafasfasfaw黑名单里一定没它一定可以上传成功,白名单里一定没有它一定不成功
Post请求比get严格
文件包含漏洞:文件包含当成一个整体,这个整体的漏洞,而不是这个文件包含漏洞。
合成图片码的方法此链接的最下面的部分
https://blog.csdn.net/W286734/article/details/135826456
上传图片码
尝试连接这里因为图片为png格式无法解析但是有的图片码是可以直接解析。此时我们可以利用dvwa的文件包含low那一关尝试,因为在文件包含漏洞中会把不是php格式的文件也按照php文件解析。
当自己靶场的文件包含漏洞无法正常运行时
1为本地文件包含,2为远程文件包含
配置好后就利用靶场自带的文件包含漏洞进行访问
图片上面有一行小字可以看出解析成功
无法连接但,但是我们操作没有什么问题,可以尝试别的工具,这里我选择菜刀