1. 程式人生 > 實用技巧 >繞WAF(Bypass)--隨時更新

繞WAF(Bypass)--隨時更新

基礎

(1)https降級繞過:https->http

(2)選用一個WAF不支援的演算法,但是伺服器支援的演算法

(4)修改method:GET->POST、POST->上傳、cookie傳值

(5)Header IP繞過

X-forwarded-for、X-remote-IP、X-originating-IP、x-remote-addr、x-client-i

(6)eader content-type 繞過

置為空、改為其它值、指定唯一的型別(例如:application/octet-stream --安全狗)、改成不規則值(例如:text/htmlxxxxxx)

命令執行

(1)'(單引號)\(反斜槓)繞過

root@fengwenbo:~# echo yourname
yourname
root@fengwenbo:~# echo y\o\u\r\n\a\m\e
yourname

(2)?、*、[、]、^、- 萬用字元繞過

root@fengwenbo:~# cat /etc/pa??wd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

(3)$u 不存在符號繞過

root@fengwenbo:~# cat $u/etc$u/passwd$u
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

(4); 分號執行

root@fengwenbo:~# cat /ect/passwd;ls
cat: /ect/passwd: 沒有那個檔案或目錄
公共  模板  視訊  圖片  文件  下載  桌面

檔案上傳

檔名繞過

(1)檔名後加回車

(2)shell.php(%80-%89).jpg

(3)先上傳,再改名

(4)%00

(5)00截斷(HEX)

(6)長檔名(Windows 258byte | Linux 4096byte),可以使用:非字母數字(如:中文)

(7)重新命名

指令碼字尾

Php/php3/php/php5/php6/pht/phpt/phtml

asp/cer/asa/cdx/aspx/ashx/ascx/asax

jsp/jspx/jspf

解析漏洞

(1)IIS 5.x 6.0解析漏洞

  • 目錄解析:在網站下建立資料夾的名字為 .asp、.asa 的資料夾,其目錄內的任何副檔名的檔案都被IIS當作asp檔案來解析並執行。

  • 在IIS6.0下,分號後面的不被解析

(2)Apache 1.x 2.x解析漏洞

  • Apache 是從右到左開始判斷解析,如果為不可識別解析,就再往左判斷。

(3)Nginx0.5.* Nginx0.6.* Nginx0.7-0.7.65 Nginx0.8-0.8.37

  • 上傳shell.jpg,然後以shell.jpg.php進行請求

(4)Nginx 0.8.41-1.5.6

  • 上傳shell.jpg,然後以shell.jpg%20.php進行請求

(5)PHP CGI解析漏洞 IIS7.0 IIS7.5 Nginx<0.8.3

  • 預設PHP配置檔案cgi.fix_pathinfo=1時,上傳shell.jpg,在請求時以shell.jpg/shell.php請求,會將以shell.jpg以PHP來解析

(6)系統特性

NTFS ADS特性:ADS時NTFS磁碟格式的一個特性,用於NTFS交換資料流。在上傳檔案時,吳國waf對請求正文的filename匹配不當的話可能會導致繞過。

假設現在我們有一個檔案shell.php,檔案內容是

利用Windows server 2008 r2 DVWA上傳測試

上傳的檔名 伺服器表面現象 生成的檔案內容
shell.php:a.jpg 生成shell.php
shell.php::$DATA 生成shell.php
shell.php::$INDEX_ALLOCATION 生成shell.php資料夾
shell.php::$DATA.jpg 生成0.jpg
shell.php::$DATA\aaa.jpg 生成aaa.jpg

垃圾資料

檔名

  • 檔名回車
  • 多個filename欄位,前一個正常,後一個惡意
  • 遺漏檔名

引數

  • 引數溢位
  • 引數截斷
  • 引數汙染/拼接

編碼

URL、Double URL、UTF-8(2 byte)、UTF-8(java)、HTML、Decimal、Unicode、Base64