SQL盲注與SQL普通注入的原理一樣,區別是普通注入可以有結果集返回(查詢結果,錯誤信息提示等),盲注的執行結果要麼是TRUE要麼是FALSE,提示信息的缺乏也使盲注的難度相對高一些。
本Lesson的目標:The goal is to find the value of the field pin in table pins for the row with the cc_number of 1111222233334444. The field is of type int, which is an integer.
1. 工具準備
1)JHijack
http://sourceforge.net/projects/jhijack/
java工具,可以批量執行制定規則的參數(數字區間)組合,執行成功的參數(grep字符串匹配結果)會單獨標記出來。
2)WebScarab
https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
java寫的,OWASP的一個重要項目,使用HTTP(S)協議,類似一個代理功能——訪問被測web應用程序時通過WebScarab中轉。可以在該工具中查看提交的請求信息(Session、Cookie、輸入參數等)和返回信息,也可以將截獲的請求信息修改後再提交到被測web應用程序。
2. 一些關鍵點
1)需要獲取的數據
獲取表pins中字段pin值,條件是cc_number是1111222233334444的
2)接收輸入框內容的字段名:account_number
3)提交方式,查看元素信息:
<input type="submit" value="Go!" name="SUBMIT"/>
4)“submit”方式提交,拼接個刷新的URL:
http://localhost:8080/WebGoat/attack?Screen=4&menu=1100&SUBMIT=Go!
5)使用WebScarab獲取Session中認證信息:“JSESSIONID”字段
3. 參數配置及執行結果
HijackID中的值($代表參數,在Range範圍取值):
account_number=101 and (select pin from pins where cc_number=1111222233334444)=$