漏洞的学习"/>
一些关于文件上传漏洞的学习
文件上传漏洞成因
- 服务器配置不当
- IIS webdav PUT漏洞
- tomcat PUT上传漏洞
- 开源编辑器上传漏洞
- 本地文件上传限制被绕过
- 过滤不严格被绕过
- 文件解析漏洞导致文件执行
- 文件路径截断
文件上传流程
文件解析漏洞
IIS
- asp
- asp;.jpg会忽略后门的.jpg直接当作asp执行;分号后面的直接忽略
- IIS6还支持asa、cer、cdx
apache
- 从右到左解析
- xxx.php.rar会解析为xxx.php
- 换行解析
- 2.4.0-2.4.29中如果文件名最后一个字符为换行符x0a,apache会直接忽略
- 该文件会被当作php解析,可以绕过黑名单
- $_POST[‘name’]获取的会保留x0a,但$_FILE[‘file’][‘name’]会自动过滤掉x0a
nginx解析漏洞
- xx.jpg/.php可以解析为.php文件
攻击方式
- 绕过js检测
- 插件关闭js代码或直接在bp上传
- 文件名黑名单后缀绕过
- .phtml、.php1
- 文件类型绕过
- 如果存在content-type校验,将content-type值改为所需值但上传文件内容不变
- PHP获取图片上传
cat a.png b.php > a.php
- 此时的a.php拥有正常png图片长宽高等属性可以被getimagesize()函数,且可以被正常解析为php文件
- 截断绕过
- 要求magic_qutoes_gpc为off
- 当php版本小于5.3.4时%00代表结束符,会把后面的所有字符删除
当上传文件名为1.php%00.jpg
时,php会将%00和后面的.jpg全部删除
- 条件竞争
- 一些网站会先接收文件再校验文件内容
- 上传成功后立刻连接木马,木马本身生成新的木马
- 连接新生成的木马
<?php
fputs (fopen ('../shell.php', 'w'),'<?php @eval ($_POST[a]) ?>') ;
?>
- waf绕过
- 在木马文件中添加大量脏数据,部分waf对文件大小限制,如果过大则不检测
更多推荐
一些关于文件上传漏洞的学习
发布评论