标签:sqlmap __ autoDecoder data app param sql 数据包
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
插件配置如下:
即可识别
数据库正常跑出:
标签:sqlmap,__,autoDecoder,data,app,param,sql,数据包 来源: https://www.cnblogs.com/f0ng/p/16195103.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。