一个利用技巧
重绘图
应用调用图片库对上传的文件进行图像转换,所以即使将图片与文件合并,也会将尾部转换掉,无法使用前面所讲方法进行上传webshell
- 将正常图片用目标使用的图形库进行转换
- 寻找转换前后两次未变的部分
- 将未变部分替换为欲上传的webshell
- 将替换后的文件进行图像转换,看是否转换后仍存在替换后部分
例如:
转换前:12333333abcdefg[11111111233]sdas213
转换后: xsadssdsdsddssss[11111111233]2312443
网址:www.github.com/RickGray/Bypass-PHP-GD-Proces-To-RCE
练习:
在上述环境中上传一个带有phpinfo();的test.gif,上传成功后访问并没有回显phpinfo()页面,去上传目录查看该文件可以看到文件的内容已经缺少了phpinfo(),采取上述网页的工具进行测试即可,这里做个记录罢了
phpinfo与本地文件包含的利用
某站点存在本地文件包含及phpinfo,可以利用其执行脚本
php在解析multipart/form-data请求时,会创建临时文件,并写入上传内容,脚本执行结束后即结束
phpinfo可以输出$_FILES信息
通过多种方式争取时间,在临时文件删除前进行执行包含 通过在数据报文中加入大量的垃圾数据,使phpinfo页面过大,导致php输出进入流式输出,并不一次输出完毕 通过大量请求来延迟php脚本的执行速度
www.github.com/hxer/vulnapp.git
在线解压缩的利用
存在上传压缩包并解压的上传点,可使用如下方式利用将webshell打包在压缩包中
1.模板上传处常用压缩包上传后进行自动解压
2.部分此类有检测压缩包中内容的,可尝试建立目录进行压缩
3.使用目录穿越../的方法向上一级目录进行上传
将文件软连接打包到压缩包中 文件软连接到/etc/passwd等文件,达到任意文件读取ln -s /etc/passwd ./azip –symlinks -r photos.zip ./a