upload-labs 通关笔记

2019-04-01  本文已影响0人  gunginer

注入脑图

如何区分白名单和黑名单

假设上传图片text.jpg,用burpsuite抓包,将文件名改为text.jpgaaaa。如果上传成功,那么是黑名单限制,否侧是白名单限制。

.htaccess文件创建

创建无命名文件方法:如何创建.htaccess结尾的无文件名的文件_百度经验

.htaccess文件内容:

<FilesMatch "waf" >

SetHandler application/x-httpd-php

</FilesMatch>


upload-labs-master 闯关详解

--- 1-10为黑名单注入

waf.php文件内容

<?php phpinfo(); ?>

第一关

直接上传waf.php文件,直接提示上传失败,用burpsuite抓包,显示为空,证明是前端验证 。

上传waf.jpg文件,用burpsuite抓包 改为 waf.php ,绕过成功。

第二关

查看源代码

if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif'))

只对content-type进行了判断,上传waf.php,抓包将content-type改为image/gif ,成功绕过。

第三关

查看源码

可以使用特殊文件名绕过:将waf.php 抓包改为 waf.php3进行绕过。

绕过方法:

(1)找黑名单扩展名的漏网之鱼 - 比如 asa 和 cer 之类

(2)可能存在大小写绕过漏洞 - 比如 aSp 和 pHp 之类

能被解析的文件扩展名列表:

jsp  jspx  jspf

asp  asa  cer  aspx

php2, php3, php4, php5,phps, pht, phtm, phtml

exe  exee

第四关

参考  .htaccess文件的创建

上传 .htaccess文件后 再上传 waf.jpg文件,成功绕过。

第五关

文件后缀名大小写绕过

第六关

抓包在文件后缀名后加空格绕过

第七关

抓包在文件后缀名后加‘.’绕过

第八关

利用windows特性绕过,windows会自动过滤不合法的文件名,比如:

1)上传不符合windows文件命名规则的文件名

test.asp.

test.asp(空格)

test.php:1.jpg

test.php::$DATA

shell.php::$DATA…….

会被windows系统自动去掉不符合规则符号后面的内容。

(2)linux下后缀名大小写

在linux下,如果上传php不被解析,可以试试上传pHp后缀的文件名

第九关

这道关卡做了充分的拦截。

$img_path=UPLOAD_PATH.'/'.$file_name

由于直接拼接文件名,造成漏洞。

于是构造waf.php. . (点+空格+点),经过处理后,文件名变成info.php.,即可绕过。

第十关

重写后缀名绕过 waf.pphphp绕过。



第十关之后为白名单过滤

第十一关(00截断GET方式)

看到是白名单判断,但是$img_path直接拼接,因此可以利用%00截断绕过:

ps:%00截断条件

php版本小于5.3.4详情关注CVE-2006-7243

php的magic_quotes_gpc为OFF状态

第十二关(00截断POST方式)

Upload-labs文件上传(11-19) - tdcoming'blog - CSDN博客


图片马的制作:

copy normal.jpg /b + shell.php /a webshell.jpg

图片一句话木马简单制作方法 - TimeOldman的博客 - CSDN博客

分享文章: 服务器解析漏洞 | nMask's Blog

文件上传漏洞(绕过姿势) | nMask's Blog

上一篇下一篇

猜你喜欢

热点阅读