无限制
- 尝试上传1.php, 上传成功,出现了路径。
- 用antsword连接,测试连接成功,拿下目标主机,开始目录遍历,发现flag
前端验证
尝试上传一句话木马1.php, 发现被限制,效果如下
-
尝试把这个文件改成1.php.jpg,通过抓包改成1.php
上传成功,显示路径为…/upload/1.php -
接下来是antsword操作,同上题
.htaccess
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
htaccess思路:把一个.htaccess的文件上传上去,在上传一个恶意图片tu.jpg,那么apache会将这个jpg当作php文件来解析,很方便
- 上传tu.jpg和.htaccess上去,成功
- 访问tu.jpg
这里是文件相关配置出了问题,尝试别的文件。
小技巧:检查网页代码,发现限制了好多文件格式
- 尝试了下1.jpg,然后antsword,发现又可以了,直接被解析成php,同样可行,拿下!
MIME绕过
MIME:Multipurpose Internet Mail Extentions,多用途互联网邮件扩展类型 。是设定某种扩展类型文件用一种应用程序来打开的方式类型。比如png----image/png。具体体现在请求头中的Content-Type参数,抓包的时候试着改一改,可能会出奇效
-
先上传一个jpg看看效果,上传成功。那么尝试搞事情,上传1.php, 发现被限制
-
抓包,改Content-Type,骗过上帝
-
接下来就是antsword一条龙了。
00截断
这个属于白名单绕过,是php语言低版本存在的自身的问题;感兴趣可以去了解下原理,通过代码审计,发现上传文件时以时间戳的方式对上传的文件重命名,这个时候使用上传路径%00截断绕过,不过这个就需要对文件有足够的权限
实现思路:上传文件名改成1.jpg
save_path写成…/upload/1.php%00.jpg
(1.php%00.jpg经过url转码变成1.php\000.jpg,windows保存下来的文件是1.php)
-
以上方式通过抓包修改数据来实现
瞎试了一通,就是注意上传的是1.php还是1.jpg,通过抓包修改俩地方
-
antsword连接,拿下
双写后缀
-
上传1.php发现虽然上传成功,但是后缀名不见了,这就会导致代码解析不了
-
抓包,修改名字为1.phphpp
好了,成功了,接下来就是antsword拿下咯
文件头检查
有些检测会加了查看文件头部的限制。因为每种类型的文件,文件数据的开头都是不同的。这时候可以伪造文件头来绕过这个检测
-
查看网页源码,上传正常文件,看看做了哪些限制
这里只允许jpeg,jpg,png,gif
那么可以试试能不能通过正常思路绕过,修改类型什么的,发现不太行,这下就可以试试伪造文件头了 -
上传一个正常图片,burp抓包,文件名改为:1.php;在图片内容后面写上一句话木马。
- antsword测试连接
拿下!