首頁 > 運維 > 安全 > 主體

關於sqlmap的問題怎麼分析

WBOY
發布: 2023-05-27 13:07:56
轉載
1472 人瀏覽過

0x00 概述

最近在利用sqlmap注入測試時遇到一個奇怪的現象,高版本sqlmap無法檢測出注入,但是低版本的可以測出注入,並且能跑出數據不是誤報,經過比較測試和查看sqlmap源碼,發現兩個小坑。

0x01 情境重現

注入點形式:json
…”whereparams”:[{“name”:”keyWord”,”value”: ”test”}]}
可注入參數:value
sqlmap指令:
python sqlmap.py -r sqlpk.txt –flush-session -vv
sqlmap v1.2.11無法注入

關於sqlmap的問題怎麼分析

sqlmap v1.2成功注入

關於sqlmap的問題怎麼分析

#同理v1.2.10無法注入, v1.1.12可以注入

經過分析,兩坑如下:
(1)v1.2.11(/v1.2.10/v1.2.9/master)的boundaries.xml沒有了針對模糊查詢(% )的測試,而v1.2(/v1.1.12/1.1.4/1.2.2)則有。
(2)v1.2.11(/v1.2.10/1.2.9/master)必須手動設定json的某個參數為*才能對這個參數進行注入(即使選了y-inject inside),否則payload直接跟在json後導致無法注入,而v1.2(/v1.1.12)則可以預設回車(y)即可對json的某個參數注入。

0x02 詳細測試

坑點(1):
先了解sqlmap的payload組成:

關於sqlmap的問題怎麼分析

//圖片來源https://www.freebuf.com/colum...

看看v1.2的測試payload:

關於sqlmap的問題怎麼分析

使用了payload:%' and 5731=5731 and '%'='
這是挺常見的搜尋框注入
看看V1.2的boundaries.xml:

關於sqlmap的問題怎麼分析

#而v1.2.11的boundaries.xml沒有模糊查詢的注入測試!
https://github.com/sqlmapproj...
於是新增模糊查詢的注入測試到v1.2.11的該檔案中,並手動新增*到注入參數(如value),即可成功注入!
附上新增後的版本:
https://github.com/theLSA/sql...

關於sqlmap的問題怎麼分析

pr得到答案是因為誤報太多所以移除了相關payload,但是將會有限的恢復。
https://github.com/sqlmapproj...

坑點(2):
對比v1.2和v1.2.11的payload:

關於sqlmap的問題怎麼分析

可以看出v1.2.11直接將payload接在json末尾了。
在註入參數value手動新增*
"whereparams":[{"name":"keyWord","value":"*"}]}
即可成功注入!

0x03 結語

  1. 個人建議加入模糊查詢的測試payload,誤報還是好過漏報,況且是很常見的模糊查詢注入。

  2. 遇到json參數盡量加手動*(針對某些版本的sqlmap)。

  3. 利用sqlmap測試的時候建議加上-vv。

  4. 不能過度依賴工具,盡量工具 手動測試比較保險。

#

以上是關於sqlmap的問題怎麼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!