upload-labs 思路总结 less 1-12

upload-labs笔记 less 1

上传漏洞的方法有很多。
本地配置好upload-labs之后,利用burpsuite无法抓包问题: 原理有可能是本地代理设置成了默认不抓包127.0.0.1。也有可能是无法抓本地回环数据包。具体原因不清楚,解决方式是将127.0.0.1改为自己的ip地址,ip地址可以用cmd ipconfig中查询。

方法一
本题用的是js函数,白名单模式过滤文件,所有在前端的校验都是不安全的。前端只适用于对用户的数据进行问题修改。那么有关修改js函数的方式,都可以实现文件上传。
修改js函数的方法,把elements中的js函数复制到console。提交就更新了当前函数。summit会更新页面,每次修改都需要提交。

  1. 修改allow_ext的值为.jpg|.png|.gif|.php
  2. 修改函数结果return ture
  3. 删掉js函数
  4. 浏览器禁用js

方法二
利用Burpsuite抓包,先上传1.jpg在修改为1.php即可

upload-labs笔记 less 2

查看源码,是后端检验,只检查upload_file.type。抓包修改content-type即可
move_uploaded_file()为将上传的文件移动到新位置。

upload-labs笔记 less 3

修改apache配置文件httpd.conf文件中修改语句AddType application/x-httpd-php .php .html .phtml
这样phtml文件就可以正常被php解析了。
本题是后端黑名单检验,过滤了.php .asp .aspx .jsp文件。
改成上传phtml文件即可。

upload-labs笔记 less 4

还是后端黑名单检验,过滤了".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf"
这么多。也算是把我不知道的也纳入进来了
这时候创建一个文件名为 .htaccess内容是SetHandler application/x-httpd-php
文件的作用是将这个目录下所有文件用Php来解析。
然后上传一个含有php代码的jpg文件即可。

upload-labs笔记 less 5

查看源码,发现仍然为后端黑名单检验,但是并没有检查大小写。
上传.pHP文件即可

upload-labs笔记 less 6

后端黑名单检验,没有检验文件名后面的空格。
window创建文件会自动删去空格,用Burp抓包后添加空格。

upload-labs笔记 less 7

后端黑名单检验,没有删除文件名后面的小数点
而window会自动去掉文件最后的小数点.
用Burp抓包后添加小数点。

upload-labs笔记 less 8

没有检查::$DATA
php在window的时候如果文件名+"::$DATA“会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持”::$DATA"之前的文件名
要求必须是windows,必须是php

upload-labs笔记 less 9

查看源码,后端对于小数点,空格等过滤只进行了一遍。
那么我们构造 xxx.php. .即可上传

upload-labs笔记 less 10

str_ireplace()为替换函数,将后缀名中的关键字替换为空。
利用双写绕过。构造xxx.pphphp
检测函数是从前向后检验,注意如果构造xxx.phphpp,则会生成 xxx.hpp

upload-labs笔记 less 11

参考博客:https://blog.csdn.net/qq_29647709/article/details/81264120
查看源码为路径拼接而成,没有经过其他处理。可以使用00截断。
00截断有两个触发条件。php版本小于5.3.4——>CVE-2006-7243。 php的magic_quotes_gpc为OFF状态。
用Burp抓包,修改文件目录为/1.php%00即可。

php函数积累:查找字符串在另一个字符串中的位置
strpos()/stripos()/strrpos()/strripos()。一个r是第一次出现,两个r是最后一次出现,有i是不区分大小写。

upload-labs笔记 less 12

post方式的00截断。post不会像get一样自动解码%00。需要burp抓包后,在hex中修改。

总结

参考博客: https://www.cnblogs.com/cyjaysun/p/4439058.html
上传验证绕过包括

  1. 客户端验证绕过(javascript 扩展名检测)
  2. 服务端验证绕过(http request 包检测)
    • Content-type (Mime type) 检测
  3. 服务端验证绕过(扩展名检测)
    • 黑名单检测
    • 白名单检测
    • .htaccess 文件攻击
  4. 服务端验证绕过(文件完整性检测)
    • 文件头检测
    • 图像大小及相关信息检测
    • 文件加载检测

你可能感兴趣的:(日报,渗透测试,ctf)