前言:
感觉听的越来越清除了,可能是因为小迪讲的越来越清楚了
正题:
文件上传
1、前端js过滤,
2、黑名单过滤,考虑php5,大小写绕过等方法
3、白名单过滤,考虑00截断,php<5.3.4,文件路径可控
代码出现逻辑错误,
如先上传,在判断逻辑,不符合文件类型,--删除
可以先上传,写一个创建一个文件的php代码,然后再一直访问,用burp的intruder就行
二次渲染
图片里面插入后门代码,需要就是上传之后,看渲染之后哪里是没变的,就插到哪里
比较文件的是一个二进制的软件
图片马
需要配合解析漏洞或者包含漏洞,才能进行解析,
拓展
针对php版本的,有多少种解析漏洞,或者是配置错误导致的解析漏洞
nginx<8.03,在 Fast-CGI 模式和 cgi.fix_pathinfo 开启的情况下
用户上传test.jpg,如果漏洞存在只需要访问test.jpg/test.php,就会讲test.jpg当作php文件解析
iis7/7.5
fast-cgi模式运行下,如果php.ini中开启了cgi.fix_pathinfo=1,那么访问图片马时,在图片后面加上/text.php,该图片就会以php文件执行
如test.jpg/text.php
apache时配置问题,AddHandler配置问题
AddHandler application/x-httpd-php .php
apache多后缀解析特性,服务器时由右向左找的,遇到不认识的后缀就会先左找,如test.php.aaa.bbb,就会当作php解析
asp/.net
iis6
1、如果创建了mkdir xxx.asp,那么该目录下的文件都会当作asp解析
2、分号解析漏洞,如果是这样的文件test.asp;.jpg,这个文件也会当作asp执行
jsp环境
tomcat的2017的文件上传漏洞,具体的我也不会,等上了再说吧
问题
iis6支持的原生的asp,没有php执行器,所以只能执行asp文件
iis7.5支持了php