0x01 背景
15年那會,幾乎可以說是滲透最火的一年,各種教程各種文章,本人也是有幸在那幾年學到了一些皮毛,中間因學業問題將其荒廢至今。當初最早學的便是,and 1=1 和 and 1=2 這最簡單的檢測注入的方法。如今這種網站幾乎可以說是沒有了吧2333,現在目標也沒有以前那么容易找,想來應該也不會有企業用那種源碼了。現今剛好在學Python,閑着無事便來寫這么個工具練練手。
0x02 准備
- Python基礎(至少要有一定的基礎才能看懂)
- URL采集器(尋找目標)
- Request庫(Requests 是用python語言編寫的第三方庫,基於 urllib,簡單來說就是可以模擬HTTP請求來訪問網頁)
0x03 思路
- .如果你學過以前的新手注入教程,應該知道在網址后面分別加入and 1=1和and 1=2是為了做什么,例如http://www.example.com/article.asp?id=1是一篇文章的鏈接,假如在其后面加入and 1=1后網頁內容仍正常,而在后面加入and 1=2后網頁內容發生了改變,那便十有八九是存在SQL注入漏洞。
- 使用Requests.get().headers方法,來實現我們的思路,通過HTTP頭中的Content-Length字段來判斷,若是and 1=1情況的Content-Length與原字段值一致,而and 1=2的情況與原字段值和and 1=1的值不同,則可判斷。
0x04 代碼
1 from requests import * 2 def SqlInject(url): 3 PayLoad = {'1':'and 1=1','2':'and 1=2') 4 situation = get(url).headers['Content-Length'] 5 situation1 = get(url+PayLoad[1]).headers['Content-Length'] 6 situation2 = get(url+PayLoad[2]).headers['Content-Length'] 7 if(situation==situation1)and(situation1 != situation2): 8 return True 9 else: 10 return False