使用sqlmapapi.py批次化掃描實踐

wyzsk發表於2020-08-19
作者: Manning · 2015/06/19 10:31

0x00 前言


sqlmap可謂是sql注入探測的神器,優秀的探測功能可以讓任何一個使用者無基礎挖掘sql注入。wooyun上關於sqlmap的文章已經有6篇了,都沒有科 普sqlmapapi.py。因此我打算分享下這方面的實踐。利用sqlmap測試SQL隱碼攻擊的效率很低,每一個url都需要手動測試,這樣肯定不是理想狀態。 sqlmap的作者肯定也察覺到這一點了,默默的開發了sqlmapapi.py,當你使用了sqlmapapi.py後才能體會到sqlmap的強大。sqlmap構建了一個自動化 分散式的掃描帝國!這篇文章我主要從sqlmapapi.py的程式碼角度和AutoSqli類的設計與實現的角度展開。

0x01 sqlmapapi.py綜述


sqlmapapi.py給使用者提供了一個強大的功能,服務功能。使用者可以利用sqlmapapi.py開啟服務埠,以後只要向sqlmapapi傳送請求,就可以進行sql注入,然後傳送查詢請求,就可以得到這個url是否是注入點,以及詳細的內容。同學們看到這裡是不是有些小激動呢? sqlmapapi.py的help,我們需要用的是-s引數,也許你也有可能用到-p引數。

enter image description here

從sqlmapapi.py檔案可以看出來,我們利用的檔案的呼叫關係是

enter image description here

進入到lib/utils/api.py的server類,可以發現透過向server提交資料進行與服務的互動。 一共分為3種型別。

  • Users' methods 使用者方法
  • Admin function 管理函式
  • sqlmap core interact functions 核心互動函式

可以提交資料的種類如下。

使用者方法

  • @get("/task/new")
  • @get("/task//delete")

管理函式

  • @get("/admin//list")
  • @get("/admin//flush")

核心互動函式

  • @get("/option//list")
  • @post("/option//get")
  • @post("/option//set")
  • @post("/scan//start")
  • @get("/scan//stop")
  • @get("/scan//kill")
  • @get("/scan//status")
  • @get("/scan//data")
  • @get("/scan//log//")
  • @get("/scan//log")
  • @get("/download///

相關文章