###重绘图
正常图片上传后会重新渲染,会抹去代码加入部分。具体绕过方法可以参考上一篇upload-labs总结
使用工具绕过。
项目地址
https://github.com/RickGray/Bypass-PHP-GD-Process-To-RCE
用法
php codeinj.php demo.gif "<?php phpinfo();?>"
某站点存在本地文件包含及phpinfo,可以利用其执行脚本。
1.php在解析multipart/form-data请求时,会创建临时文件,并写入上传内容,脚本执行后即删除
2.phpinfo可以输出$_FILE信息
3.通过多种方式争取时间,在临时文件删除前进行执行包含
1)通过在数据报文中加入大量的垃圾数据,似phpinfo页面过大,导致phpinfo页面过大,导致php输出进入流式输出,并不一次输出完毕
2)通过大量请求来延迟php脚本的执行速度
项目地址
http://github.com/hxer/vulnapp.git
<Directory "D:/www/ichunqiu/upload"> <FilesMatch "\.(?i:php|php3|php4)$" Order Allow.Deny Deny from all </FilesMatch> </Directory>
以上代码为在upload下无权限访问php,php3,php4等文件
首先判断目录是否为权限限制
访问如下url显示Forbidden
上传图片正常访问如下
访问不存在的图片显示Not Found
以上访问过程可判断次目录无法访问php文件
继续向上级目录访问
以上图片判断upload目录也没有php访问权限
直道测试到ichunqiu目录有访问权限
上传图片bp抓包,file处修改为file/../../
进行目录穿越上传成功
如果碰到waf情况拦截../
可以使用.././../
进行绕过./
代表当前目录
1.模板上传处常用压缩包上传后进行自动解压
1.1.部分此类有监测压缩包中的内容的,可尝试建立目录进行压缩
2.使用目录穿越../
的方法向上一级目录进行上传
将php文件直接压缩为zip,然后用notepad++打开压缩文件如下
讲phpinfo改为../info,如下图
文件上传
成功上传并穿越目录
文件软链接到/etc/passwd等文件,达到任意文件读取
ln -s /etc/passwd ./a #文件/etc/pawwsd软链接到a zip --symlinks -r 1.zip ./a #将a文件压缩为1.zip
上传成功
点击a查看到/etc/passwd文件
文件软链接到/文件
ln -s / b #/软链接到b zip --symlinks 2.zip b #将b压缩为2.zip
上传2.zip,上传成功
点击b显示目录
一般检查文件头内容是加入gif89a即可,但部分后台有可能需要强制匹配文件头的16进制数据
如需要匹配下图中的\xff\xd8\xff
中bp抓包,文件中加入已url编码的%ff%d8%ff
上传过程
讲%ff%d8%ff
进行urldecode
可成功上传
部分waf会监测第一个filename中的内容,而忽略第二个filename内容
注:filename="oh-info.png";
之后加一个空格再跟上第二个filename
版权声明:本文为 “黑帽百科” 原创文章,转载请附上原文出处链接及本声明;
工作时间:10:00~22:00
客服电话
电子邮件
hack66666@foxamil.com
扫码二维码
获取最新动态