[初學Python]編寫一個最簡單判斷SQL注入的檢測工具


0x01 背景

15年那會,幾乎可以說是滲透最火的一年,各種教程各種文章,本人也是有幸在那幾年學到了一些皮毛,中間因學業問題將其荒廢至今。當初最早學的便是,and 1=1 和 and 1=2 這最簡單的檢測注入的方法。如今這種網站幾乎可以說是沒有了吧2333,現在目標也沒有以前那么容易找,想來應該也不會有企業用那種源碼了。現今剛好在學Python,閑着無事便來寫這么個工具練練手。

0x02 准備

  • Python基礎(至少要有一定的基礎才能看懂)
  • URL采集器(尋找目標)
  • Request庫(Requests 是用python語言編寫的第三方庫,基於 urllib,簡單來說就是可以模擬HTTP請求來訪問網頁)

0x03 思路

  1. .如果你學過以前的新手注入教程,應該知道在網址后面分別加入and 1=1和and 1=2是為了做什么,例如http://www.example.com/article.asp?id=1是一篇文章的鏈接,假如在其后面加入and 1=1后網頁內容仍正常,而在后面加入and 1=2后網頁內容發生了改變,那便十有八九是存在SQL注入漏洞。
  2. 使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM