
JS脚本绕过burp剔除响应JS对于
JS前端验证,直接在前端剔除即可在
Proxy-options-Response Modification-Remove all JavaScript浏览器审计剔除
保存为新文件后删除
JS代码,然后进行上传
绕过
MIME-TypeMIME-Type设定某种扩展名的文件用特定程序来打开,该验证发生在服务端,通过检查http包的Content-Type字段中的值来判断上传文件是否合法抓包修改即可
一个
trick是按照提示上传正确格式文件并记下正确的Content-Typeweevely有点废物,连接不上,没图绕过黑名单
- 若不允许 
.php可以尝试.php3,.php5,.phtml,.phps,.pht burp修改后缀名+文件头欺骗- 后缀名大小写
 - 抓包后文件名加空格
 htaccess绕过先上传
.htaccess文件,内容为1
2
3<FilesMatch "png">
SetHandler application/x-httpd-php
</FileMatch>设置当前目录所有文件都使用
php解析,若符合语法则当作php执行,否则报错Apache中仅当http.conf中设置1
AllowOverride All
上传成功后再上传包含有
php代码的,符合提交要求的文件即可.绕过对于服务器是
Windows的,文件后缀名最后如果是.会被删除特殊符号绕过
Windows下,若上传1.php::$DATA会在服务器端生成一个test.php路径拼接绕过
1.php. .一些黑名单过滤中会过滤末尾的点与空格

deldot删除最后一个点,trim删除空格,那么最终上传的文件名为 1.php.再利用
Windows特性删除最后一个点解析漏洞
Apache解析漏洞Apache会从右往左检查文件后缀名,直到遇到能执行的文件,那么可以上传如此文件来绕过后缀名检查1.php.qwe.asdISS6.x解析漏洞服务器默认下不会解析
;后的部分,相当于截断,那么可以上传1.asp;.jpg来绕过该版本默认将
.asp目录下所有文件当成asp执行该版本将
.asa , .cdx , .cer解析为asp
ISS7.x解析漏洞在文件路径
.../qwq.png后面加上/.php会将qwq.png当作为php文件解析即访问
qwq.png/.php会执行qwq中的php代码%00截断(CVE-2006-7243)当
php<5.3.4且关闭magic_quoets_gpc原理是
%00是c中的NULL,处理函数会将其当作结束标记,类似于sql注入中结尾的注释符--+,例;1
2
3
4
$file = $_GET['file'];
include $file.'tpl.html';只需要提交
1
?file=../../../etc/passwd%00
即可访问
get下直接加在后缀位置,post类型需要多进行一步url-decodeexif绕过exif是针对图片马的检测方式,可以删除图片中的一句话木马绕过方式是比对上传前后图片的二进制,找没有被替换的部分,并将马添加到那里
二次渲染与条件竞争
对于新上传的文件,常常会定义一个暂时变量存放,之后再对其进行后续操作,即使暂时文件会在很短实践内被再次渲染为正式文件
1
2
3
4
5
6
if(($fileext == "jpg") && ($filetype=="image/jpeg")){
if(move_uploaded_file($tmpname,$target_path)){
//使用上传的图片生成新的图片
$im = imagecreatefromjpeg($target_path);条件竞争
当文件被一个进程占用时,如果不释放,下一个进程就无法占用,也就是说当访问暂时文件时,服务器无法对其进行二次渲染
实际操作中,可以用
intruder模块反复发送文件上传数据包,同时浏览器不断访问临时文件,直到访问成功;或者用python脚本访问该路径配合repeater重放数据包木马位置的获取可以通过上传合法文件分析数据包得到
以下是一个木马案例,脚本一旦触发成功就会在路径下创建一个shell.php脚本,内容是显示php信息
1
<?php file_put_contents('./upload/shell.php','<?php phpinfo();?>');?>
- 若不允许