当前位置: 首页 > news >正文

sql注入工具升级:自动化时间盲注、布尔盲注

项目地址:https://github.com/iamnotamaster/sql-injecter

给我之前写的sql注入脚本进行了一些升级,此文章就是对升级内容的分析,升级内容如下:

  • 使用占位符foo来填充payload里需要经常修改的部分

  • 自动判断循环

  • 支持爆破和二分查找法来枚举一个字符

  • 显示枚举一个字符所需要的时间和数据包的数量

  • 二分查找的优点和缺点

使用占位符foo来填充payload里需要经常修改的部分

payload不在使用拼接的方式来替换其需要修改的字符,而是通过占位符foo的方式替换字符。

首先要定义一个payload_foo
​
payload_foo = "1' and substr(str_foo,int_foo,1)='char_foo' and '1'='1"
str_foo = "database()"
​
str_foo是用户输入的内容,如:database()
int_foo是程序需要从1开始循环遍历字符串的数字,不需要用户输入
char_foo是程序需要遍历的字符,不需要用户输入
​
以上内容输入给程序就是枚举出database的内容
自动判断循环
程序根据给定的payload_foo中的占位符foo的数量,判断是否需要嵌套循环
​
例如上面提过的例子,它同时给定了int_foo和char_foo,说明要枚举出一个字符串,需要两个循环语句
​
而以下这个例子,只需要一个循环语句:payload_foo2 = "1' and str_foo=int_foo and '1'='1"
​
给定str_foo = "database()"
payload_foo2的目的是枚举出database()的长度,因此只需要一个循环就能完成任务
支持爆破和二分查找法来枚举一个字符
爆破的话不用多说:
brute_list1 = ", 0123456789abcdefghijklmnopqrstuvwxyz"
一个一个发
​
二分法的布尔注入(整个过程像是猜数字游戏一样):
发送一个payload如下:
1' and int_foo>str_foo and '1'='1
​
给定str_foo = "length(database())"
程序会随机猜一个数字guess替换占位符int_foo
目标如果显示出期待的字符串,说明guess > target,然后程序不断判断并缩小guess的范围,直到找到正确答案
显示枚举一个字符所需要的时间和数据包的数量
这个没什么技术含量,但是非常有用
二分查找的优点和缺点
  • 优点:发送的数据包少且稳定,因为数据包少有利于规避

  • 缺点:爆破一个字符耗费的时间更长

我已经测试了时间盲注post的二分查找,和时间盲注post爆破对比如下:

二分查找时间盲注post:

爆破时间盲注post:

可以看到,爆破几乎1s就能爆出一个字符(设置sleep(1)),然而二分查找需要2~4秒
但是二分查找爆出一个字符,只需要5~8个数据包,而爆破最高时能到30个

理论上说,如果目标结果足够大,那么二分查找不论速度还是数据包的数量,都优于爆破

http://www.lryc.cn/news/449126.html

相关文章:

  • 字节C++抖音直播一面-面经总结
  • 浅谈stm32的GPIO引脚配置模式
  • Meta Orion 原型的生产成本约为 10,000 美元
  • MATLAB GUI设计原则与实践
  • 电脑桌面显示不完整
  • Spring Boot与观察者模式实现数据同步更新机制
  • 毕业设计选题:基于ssm+vue+uniapp的校园订餐小程序
  • 每日OJ题_牛客_HJ108求最小公倍数_C++_Java
  • 【项目总结】工程构建思路分析与分享
  • 3、AI测试辅助-测试计划编写(自动生成任务甘特图)
  • MySQL:进阶巩固-触发器
  • python获取百度地图路径规划
  • Spring Boot 进阶- Spring Boot 自定义拦截器详解
  • ACM第三次考核题解
  • 基于Vue3内置的lodash函数库实现防抖节流
  • ls -a有什么作用
  • LLM - 使用 RAG (检索增强生成) 多路召回 实现 精准知识问答 教程
  • 编程语言图书创作要注意的事情有哪些?
  • 主流高级编程语言的推出时间及年份
  • qt 模仿简易的软狗实现
  • 荣业食品销售费用每年上亿元:主要产品收入大降,电商占比过低
  • 数据结构:并查集
  • 微信小程序实战教程:轻松实现列表批量选择功能
  • 企业微信:开启客户联系和配置
  • Python发送邮件教程:如何实现自动化发信?
  • 一周热门|苏姿丰:芯片行业不能只盯着 GPU;Gartner:GenAI 即将越过期望膨胀期
  • Failed to load WebView provider: No WebView installed
  • java日志框架之Log4j
  • C++ bitset(位图)的模拟实现
  • Llama 3.2:利用开放、可定制的模型实现边缘人工智能和视觉革命