一个利用技巧

重绘图

应用调用图片库对上传的文件进行图像转换,所以即使将图片与文件合并,也会将尾部转换掉,无法使用前面所讲方法进行上传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