原文地址:https://blog.csdn.net/u012991692/article/details/80196675
php类型:
1:
结构服务器端虚假扩展名检测上传
一句话木马的文件名lubr.php改成lubr.php.abc。首先,当服务器验证文件扩展名称时,验证是.abc,只要扩展名符合服务器端黑名单规则,就可以上传。此外,在浏览器端访问文件时,Apache若无法分析.abc扩展名将向前寻找可分析的扩展名,即.php”。一句话,木马可以通过中国菜刀分析连接。
Apache从右到左判断分析。如果是不可识别的分析,则向左判断
如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个wooyun.php.rara.jpg.png…(写下你知道的所有常见后缀…)测试后缀是否合法
2:
利用00截断,brupsuite上传
使用00截断是使用程序员在编写程序时不严格过滤文件的上传路径X00上传截断漏洞。
假设文件的上传路径是http://xx.xx.xx.xx/upfiles/lubr.php.jpg,通过Burpsuite抓包截断将lubr.php后面的“.”换成“0X00”。上传时,文件系统读取0X00″会认为文件已经结束了,所以会lubr.php.jpg的内容写到lubr.php从而达到攻击的目的。
3:
IS7.0/IIS7.5/ Nginx <8.畸形分析漏洞
在默认Fast-CGI打开时,黑阔上传了一个名字wooyun.jpg,内容为
<?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
然后访问文件wooyun.jpg/.php,木马将在这个目录下生成一句话shell.php
asp类型:
1:
在IIS6.0下,分号后面不分析,也就是说
wooyun.asp;.jpg它将被服务器视为是wooyun.asp
改类型:
绕过Content-Type上传检测文件类型
当浏览器将文件上传到服务器端时,服务器将文件上传Content-Type检测类型,如白名单允许,可正常上传,否则上传无效。Content-Type文件类型检测是指使用Burpsuite数据包中文件的截取和修改Content-Type类型,使其符合白名单的规则,达到上传的目的。
图片木马:
1:
构造图木马绕过文件内容检测上传Shell
一般文件内容验证使用getimeagesize()函数检测将判断文件是否有效。如果是,允许上传,否则不允许上传。
制作图片木马: copy1.jpg/b 2.php/a 3.jpg
2:图片文件头后加木马
决定文件是否为jpeg格式?
以二进制的形式打开文件,文件开始字节为FFD8.文件结束的字节为FF D9.初步判定文件为。jpeg。
jpeg的SOI(start ofimage) 为ff d8,EOD(end of image)为ff d9
a).xxx.php[\0].JPG,只允许上传一个JPG本文件可绕过文件上传检查,但对于服务器端解释,函数将被检查[\0]截断,导致成为xxx.php代码。
b).在IIS6.0下,分号后面不分析,也就是说sp.asp;.jpg,它将被服务器视为是sp.asp。
c).Apache 从右到左判断分析,如果是不可识别的分析,则向左判断。
比如 sec.php.owf.rar “.owf”和”.rar这两种后缀是apache无法识别分析,apache就会把sec.php.owf.rar解析成php。
d).上传不符合windows文件命名规则文件名
test.asp.
test.asp(空格)
test.php:1.jpg
test.php:: $DATA
会被windows系统自动去除不符合规则符号的内容。
非法上传的防御机制大致如下:
1.客户端检测,使用JS上传图片检测包括文件大小、文件扩展名、文件类型等
2.服务端检测,检测文件大小、路径、扩展名、类型和内容
3.其他限制,服务器上传目录设置不可执行权限 --------------------- 作者:迷失在尘世中的小书童 来源:CSDN 原文:https://blog.csdn.net/u012991692/article/details/80196675 版权声明:本文为博主原创文章,请附博文链接转载!