繞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