文件上传漏洞

文件上传(跨站请求伪造)

危害:

1.网站被控制,增删改查文件,链接数据库
2.服务器沦陷
3.同服务器其他网站沦陷

存在上传文件漏洞的条件:

1.有上传文件的功能
2.上传文件的目录能够解析脚本语言
3.能够访问到上传的文件

导致文件上传漏洞的原因:

1.服务器配置不当(iis6.0 可以直接写入文件 put协议)
2.上传限制被绕过
3.服务器端过滤不严格
4.文件路径截断(/0 ; ? ; %00)
5.开源编译器上传漏洞

防御:

1.上传文件目录不给执行权限
2.白名单过滤(注意截断攻击)
3.不能有本地包含漏洞

上传绕过

上传检测规则
1.客户端JavaScript检测
绕过:抓包,修改后缀名
2.服务器MIME类型检测
抓包,修改Content-Type 将内容修改成服务器可以解析的内容
3.服务器端目录检测
一般是检测保存路径是否合法,但一般没有防御,用文件截断的方式攻击。
4.服务器端文件名拓展名检测
基于黑名单检测
绕过方法:文件名大小写绕过
黑白名单绕过(php,php2,php3,php5,phtml,asp,aspx,ascx,ashx,cer,asa,jsp,jspx)
特殊文件名绕过(xxx.php. xxx.php_[_代表空格])
0x00截断绕过
.htaccess文件攻击
解析绕过
.htaccess文件攻击:SetHandler applicat/x-httpd-php(知道文件名包含"haha",就可以当成php来解析)
5.服务器端文件内容检测
制作图片马 copy/b 1.jpg+2.php=3.jpg

总结:

路径/拓展名绕过:
1.黑名单绕过
2.文件名大小绕过
3.名单列表绕过
4.特殊文件名绕过
5.0x00截断绕过
6…htaccess文件攻讦
7.Apache解析漏洞(xxx.php.aaa.bbb.ccc 如果不认识ccc就往前解析,直到认识)
8.IIS解析漏洞(xxx.asp/1.jpg 或xxx.asp;.jpg 会优先按asp解析)

文件包含漏洞

函数:
include():当文件不存在或者有错误时,会发出警告,并且继续执行
include_once():只会加载一次
request():当文件不存在或者有错误时,会发出警告,接着发出致命界别的警告并且终止执行
request_once():只会加载一次

你可能感兴趣的:(渗透测试)