歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

深入了解SQLMAP API

來源:本站整理 作者:佚名 時間:2019-06-24 TAG: 我要投稿

以前覺得sqlmap自己玩得挺溜了,結果最近有一個任務,需要調用sqlmap api接口來驗證存在sql注入漏洞的站點,一開始聽到這個任務覺得完了,可能完成不了了。后來我去網上搜了搜相關的資料,發現關于這方面的資料確實挺少的,于是參觀了一下sqlmap的源碼,大致摸清楚了如何調用api接口。因此,筆者打算寫一篇完整些的文章,才有了本文。筆者技術有限,有錯誤或者寫的不好的地方敬請諒解!
為什么要使用SQLMAP API?
由于SQLMAP每檢測一個站點都需要開啟一個新的命令行窗口或者結束掉上一個檢測任務。雖然 -m 參數可以批量掃描URL,但是模式也是一個結束掃描后才開始另一個掃描任務。通過api接口,下發掃描任務就簡單了,無需開啟一個新的命令行窗口。
下載與安裝
如果您需要使用 sqlmap api接口或者沒安裝 sqlmap 工具的,您需要下載安裝sqlmap程序。而sqlmap是基于Python 2.7.x 開發的,因此您需要下載Python 2.7.x。
Python 2.7.x 下載地址:https://www.python.org/downloads/release/python-2715/
sqlmap 下載地址:https://github.com/sqlmapproject/sqlmap/zipball/master
安裝過程我這里就不詳細說了,不會的話可以問問度娘(https://www.baidu.com/s?wd=sqlmap%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
sqlmap的目錄結構圖如下:

sqlmap安裝完成后,輸入以下命令,返回內容如下圖一樣,意味著安裝成功:
python sqlmap.py -h

sqlmap api
說了那么多,到底api如何使用呢?在下載安裝SQLMAP后,你會在sqlmap安裝目錄中找到一個 sqlmapapi.py 的文件,這個 sqlmapapi.py 文件就是sqlmmap api。sqlmap api分為服務端和客戶端,sqlmap api有兩種模式,一種是基于HTTP協議的接口模式,一種是基于命令行的接口模式。
sqlmapapi.py的使用幫助
通過以下命令獲取sqlmapapi.py的使用幫助:
python sqlmapapi.py -h
返回的信息:
Usage: sqlmapapi.py [options]
Options:
  -h, --help            顯示幫助信息并退出
  -s, --server          做為api服務端運行
  -c, --client          做為api客戶端運行
  -H HOST, --host=HOST  指定服務端IP地址 (默認IP是 "127.0.0.1")
  -p PORT, --port=PORT  指定服務端端口 (默認端口8775)
  --adapter=ADAPTER     服務端標準接口 (默認是 "wsgiref")
  --username=USERNAME   可空,設置用戶名
  --password=PASSWORD   可空,設置密碼
開啟api服務端
無論是基于HTTP協議的接口模式還是基于命令行的接口模式,首先都是需要開啟api服務端的。通過輸入以下命令即可開啟api服務端:
python sqlmapapi.py -s
命令成功后,在命令行中會返回一些信息。以下命令大概的意思是api服務端在本地8775端口上運行,admin token為1acac56427f272e316fceabe5ddff5a5,IPC數據庫的位置在/tmp/sqlmapipc-zOIGm_,api服務端已經和IPC數據庫連接上了,正在使用bottle 框架wsgiref標準接口。
[19:53:57] [INFO] Running REST-JSON API server at '127.0.0.1:8775'..
[19:53:57] [INFO] Admin (secret) token: 1acac56427f272e316fceabe5ddff5a5
[19:53:57] [DEBUG] IPC database: '/tmp/sqlmapipc-zOIGm_'
[19:53:57] [DEBUG] REST-JSON API server connected to IPC database
[19:53:57] [DEBUG] Using adapter 'wsgiref' to run bottle
但是通過上面的這種方式開啟api服務端有一個缺點,當服務端和客戶端不是一臺主機會連接不上,因此如果要解決這個問題,可以通過輸入以下命令來開啟api服務端:
python sqlmapapi.py -s -H "0.0.0.0" -p 8775
命令成功后,遠程客戶端就可以通過指定遠程主機IP和端口來連接到API服務端。
固定admin token
如果您有特殊的需求需要固定admin token的話,可以修改文件api.py,該文件在sqlmap目錄下的/lib/utils/中,修改該文件的第661行代碼,以下是源代碼:
DataStore.admin_token = hexencode(os.urandom(16))
sqlmap api的兩種模式
命令行接口模式
輸入以下命令,可連接api服務端,進行后期的指令發送操作:
python sqlmapapi.py -c
如果是客戶端和服務端不是同一臺計算機的話,輸入以下命令:
python sqlmapapi.py -c -H "192.168.1.101" -p 8775
輸入以上命令后,會進入交互模式,如下圖所示:

命令行接口模式的相關命令
通過在交互模式下輸入help命令,獲取所有命令,以下是該接口模式的所有命令:
api> help
help           顯示幫助信息
new ARGS       開啟一個新的掃描任務
use TASKID     切換taskid
data           獲取當前任務返回的數據
log            獲取當前任務的掃描日志

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  下一頁

【聲明】:黑吧安全網(http://www.zjtpzs.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        神秘东方电子游艺 做中央空调承包赚钱 往网站发视频怎么赚钱 微帮靠什么赚钱 下厨房我们能赚钱吗 华夏手游赚钱人民币 梦幻卖五宝赚钱吗 适合平民赚钱的网游 炒股赚钱新模式 剪辑视频发能赚钱吗 梦幻140炼药怎么赚钱 开体育彩票店赚钱么 通过2345安装应用赚钱 mcy怎么赚钱 自己开店卖衣服能赚钱么 男人赚钱打一4字歌名 海济生物公司赚钱制度