sql注入繞過之sqlmap的數據包換行問題
sql注入繞過之sqlmap的數據包換行問題
autoDecoder例
碰到個SQL注入,但是網站有防護,如圖:


可以通過change body encoding來繞過waf

但是當我們放到sqlmap中跑注入,發現報500錯誤,后續可以通過autoDecoder來解決,詳細如下:
數據包是Content-Type: multipart/form-data; 的注入

但是sqlmap不識別\r\n的符號,所以無法跑出注入
使用sqlmap --proxy=http://127.0.0.1:8080代理到burp查看請求


原因就在于\n符號,sqlmap不知道什么原因無法識別請求體的換行為\r\n,導致請求全是500,報錯了
http數據包里的換行應該為\r\n,可以編寫autoDecoder的flask腳本解決問題
flask腳本如下:
# -*- coding:utf-8 -*-
# author:f0ngf0ng
# 解決sqlmap中的\n無法識別為\r\n問題
from flask import Flask,request
app = Flask(__name__)
@app.route('/encode',methods=["POST"])
def encrypt():
param = request.form.get('data') # 獲取 post 參數
param = param.replace("\r\n","\n")
data = param.replace("\n","\r\n")
print(bytes(data,encoding="utf-8"))
return data
@app.route('/decode',methods=["POST"]) # 不解密
def decrypt():
param = request.form.get('data') # 獲取 post 參數
return param
if __name__ == '__main__':
app.debug = True # 設置調試模式,生產模式的時候要關掉debug
app.run(host="0.0.0.0",port="8888")
autoDecoder插件配置如下:

即可識別

數據庫正常跑出:


浙公網安備 33010602011771號