上传脚本执行条件
后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码。
如:jpg图片里面有php后门代码,不能被触发,所以连接不上后门
如果要图片后缀文件解析脚本代码,就得利用包含漏洞或解析漏洞,还有.user.ini和.htaccess
文件上传——.uaer.ini
利用.user.ini的前提是php5.3版本及以上,服务器开启了CGI或者FastCGI服务,并且上传文件的存储路径下有.php可执行文件。
.user.ini就是一个可以由用户"自定义"的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR、 PHP_INI_USER”的设置。
其中有两个配置,可以用来制造后门:
auto_append_file:指定一个文件,自动包含在要执行的文件前。
auto_prepend_file:指定一个文件,自动包含在要执行的文件后。
案例:upload—labs
第五关—— .user.ini配置文件绕过——无法上传php或者过滤php内容时就可以使用此方法
新建一个文件名为.user.ini的文件,并将内容写为:auto_prepend_file=1.jpg,将.user.ini上传至服务器抓取上传的数据包
再次新建一个文件名为1.jpg的文件,并将内容写为:<?php phpinfo();?>,将1.jpg上传至服务器
想要.user.ini文件生效需要一个索引,就是说需要在上传文件的存储路径下有个.php可执行文件
然后访问上传目录下的readme.php,即可将1.jpg内的脚本执行。
重点知识:
如果网站甚至完整过滤图片内容,无法在图片做手脚。
我们可以使用.user.ini文件来包含网站日志文件。
因为我们访问网站地址时,网站日志会记录访问者的浏览器UA头,就可以抓包修改UA头为脚本代码
让网站把日志内容当作脚本代码执行。
文件上传——二次渲染
案例:upload-labs——第十四关—图片马绕过
直接在一张图片中加入payload:<?php phpinfo();?>
因为本关只对图片内容的前两个字节进行检测,我们不破坏前两个字节即可。
直接上传图片
利用文件包含漏洞解析jpg图片内的php脚本,如:
include()函数:包含文件,系统会自动将被包含文件中的代码嵌入到当前文件中当作脚本语言解析执行。
gif格式可以直接在图片插入图片马,jpgpng格式不建议直接在图片插入脚本代码,可以在网上找图片马生成脚本运行。
原文始发于微信公众号(小黑子安全):文件上传绕过-.uaer.ini+二次渲染
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论