Skip to content

Latest commit

 

History

History
57 lines (48 loc) · 2.01 KB

sql注入绕过之sqlmap的数据包换行问题.md

File metadata and controls

57 lines (48 loc) · 2.01 KB
created updated
2022-08-31 23:55:33 +0800
2022-09-02 08:42:15 +0800

sql注入绕过之sqlmap的数据包换行问题

#autoDecoder例

碰到个SQL注入,但是网站有防护,如图: 800 800 可以通过change body encoding解决 800 但是当我们放到sqlmap中跑注入,发现报500错误,后续可以通过autoDecoder来解决,详细如下:

数据包是Content-Type: multipart/form-data; 的注入 800 但是sqlmap不识别\r\n的符号,所以无法跑出注入 使用sqlmap --proxy=http://127.0.0.1:8080代理到burp查看请求 800 800 原因就在于\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插件配置如下: 800

即可识别 800 数据库正常跑出 800