各リクエストの後に常にURLを変更するWebサイトログインをテストしています。最初の要求はPOST /login?0-1.FormSubmit
へのログイン要求を行い、次のログイン試行はPOSTから/login?1-2.FormSubmit
へ、というようになります。 。
このログインでsqlmapを使用することは可能ですか?ただし、リクエストごとにURLが変更されますか?
ツールは、あいまいなテストケースを処理するのに十分な汎用性で書かれることはめったにありません。ツールの欠点を非難するのは魅力的かもしれませんが、多くの場合、問題は不明瞭/一般的ではないため、他の方法で解決する必要があります。
この問題は、ターゲットアプリケーションとツール間のプロキシとして機能する小さなWebアプリケーションを作成することで解決できます。
ツールは、脆弱な入力をパラメーターとして受け入れ、必要に応じてアプリケーションに転送します。
これがどのように実行できるかを説明するためのテストされていないpython/flaskコードは次のとおりです。
from flask import Flask, request
import requests
i = 0
app = Flask(__name__)
@app.route("/")
def app_proxy():
sqli = request.args.get("sqli",None)
data = {"somekey":"someval","vulnerableparam":sqli}
resp = requests.post("http://target.com/login?%s-%s.FormSubmit"%(i,i+1),data=data)
i += 1
return resp.text, resp.status_code
app.run(Host="127.0.0.1",port=8008)
Flask-appを起動した後、sqlmapを http://127.0.0.1:8008/?sqli=value に対して使用できるようになります。