目錄
- WHERE子句后面的注入點
- 邏輯符號AND、OR
- LIEK
- 行內注釋
- order by
- union
- limit
- table
WEB滲透測驗流程中,初期作業是進行資訊收集,完成資訊收集之后,就會進行漏洞測驗、確認,WEB介面里存在SQL注入的引數一般在下面三大類里:
- Get引數
- POST引數
- Request Headers(比如Cookie引數)
尋找SQL注入有采用自動化工具和手工測驗兩個方法,下面介紹使用手工的方法,來確認一個引數是否存在SQL注入,
WHERE子句后面的注入點
WHERE是最常見的
邏輯符號AND、OR
- 先了解AND和OR邏輯符號的區別
- 了解數字、字符、字串引數之間的區別
id=1 #①
id=1 and 1=1; #②
id=1 and 1=2; #③
id=1 #①
id=1" and "1"="1; #②
id=1" and "1"="2; #③
id=1 #①
id=1' and 1=1; #②
id=1' and 1=2; #③
通過查看 ①與② 的回傳包長度:


如果②與③ 的回傳包長度不同 那么有注入,


LIEK
LIKE通常與通配符%一起使用,%表示通配pattern中出現的內容,而不加通配符%的LIKE語法,表示精確匹配,其實際效果等同于 = 等于運算子
id = and 1 LIKE 1 / id = and 1 LIKE 2
行內注釋
現在很多WAF都攔截and、or、= 這種敏感符號了,采用行內注入有可能可以繞過一些只有簡單字符匹配規則的WAF,進行注入點確認,
在MySQL中,有一種語法叫做行內注釋,這種注釋在mysql中叫做行內注釋,當!后面所接的資料庫版本號時,當實際的版本等于或是高于那個字串,應用程式就會將注釋內容解釋為SQL,否則就會當做注釋來處理,默認的,當沒有接版本號時,是會執行里面的內容的,
/*!注釋內容*/
/*!select*/ /!*from*/ tables;
行內注釋測驗注入:
id=1 #①
id=1' /*!and*/ 1=1 #②
id=1' /*!and*/ 1=2 #③
通過查看 ①與② 與③的回傳包長度,如果①與② 的回傳包長度相同,①與③ 的回傳包長度不相同 那么有注入,


order by
todo
union
todo
limit
todo
table
todo
文章還沒有更新完,請關注https://www.cnblogs.com/mysticbinary博客,方便獲得最新更新,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259397.html
標籤:其他
下一篇:語法糖
