蓝队第三次

1.了解什么是盲注

盲注(Blind SQL Injection)是SQL注入的一种形式,攻击者无法直接通过页面回显或错误信息获取数据,而是通过观察页面的布尔状态(真/假)或时间延迟来间接推断数据库信息。例如,通过构造条件语句,根据页面是否加载成功或响应时间差异,逐字符猜测数据内容。

2.什么是时间/布尔盲注

时间盲注:通过时间延迟判断注入条件是否为真。攻击者根据页面响应时间的长短,推断数据库信息。

函数:SLEEP(seconds)

布尔盲注:通过页面布尔状态(真/假)的差异推断数据。例如:页面内容、HTTP状态码或错误消息的变化。

函数:

**字符截取:**SUBSTRING(str, pos, len) LEFT(str, len)

**长度判断:**LENGTH(str)

逻辑:=, >, <, LIKE

3.时间盲注会用到哪些函数

**sleep(N)函数:**即如果写入到数据库被执行了,sleep(N)可以让此语句运行N秒钟

**if()函数:**if(a,b,c),如果a的值为true,则返回b的值,如果a的值为false,则返回c的值

4.布尔盲注会用到哪些函数

字符串截取: SUBSTRING(str, pos, len)、MID()、LEFT()。

字符转ASCII: ASCII(char)。

长度判断: LENGTH(str)、CHAR_LENGTH()。

逻辑判断: LIKE、=, >, <。

5.时间盲注的数据库代码通常长什么样子

SELECT IF(1=1, SLEEP(5), 0); -- 条件为真时触发延迟

6.如何构造时间盲注

  1. 触发条件判断:通过IF或CASE语句绑定条件。
  2. 引入延迟函数:如SLEEP(5)。
  3. 逐字符推断:通过二分法或遍历猜测字符。

7.如何构造布尔盲注

  1. 构造真/假条件:如' AND 1=1 -- (真)、' AND 1=2 -- (假)。
  2. 观察页面差异:如内容显示、HTTP状态码、错误消息等。
  3. 逐字符判断:通过比较ASCII值缩小范围。

8.什么情况下会用时间盲注

页面无回显:无论注入条件真假,页面内容无变化。

无错误信息:服务器屏蔽了数据库报错。

需隐蔽攻击:通过延迟间接获取数据,不易被日志检测。

9.什么情况下会使用布尔盲注。

页面存在布尔状态:如登录成功/失败、搜索结果有无。

可观察的差异:例如真条件返回正常页面,假条件返回404或空白。

10.sqli的类型有哪些,请举例,并给出实际sql语句案例。

**联合查询注入:**UNION SELECT 1,2,password FROM users --

**布尔盲注:**AND (SELECT COUNT(*) FROM users) > 0 --

**时间盲注:**IF (1=1) WAITFOR DELAY '0:0:5' --

11.什么是sql注入,思考一下sql注入的灵魂是什么

通过用户输入将恶意SQL代码插入到应用程序的数据库查询中,从而操纵数据库执行非预期命令。

**灵魂:**数据与代码的混合执行。根本原因是程序未对用户输入做严格过滤,使得输入数据被当作SQL代码解析。

相关推荐
噼里啪啦啦.27 分钟前
Spring事务和事务传播机制
数据库·sql·spring
李少兄1 小时前
解决 idea提示`SQL dialect is not configured` 问题
java·sql·intellij-idea
珹洺1 小时前
数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
java·数据库·sql·安全·oracle
我科绝伦(Huanhuan Zhou)10 小时前
深入解析Oracle SQL调优健康检查工具(SQLHC):从原理到实战优化
数据库·sql·oracle
神奇侠202414 小时前
Hive SQL常见操作
hive·hadoop·sql
一只叫煤球的猫14 小时前
MySQL 8.0 SQL优化黑科技,面试官都不一定知道!
后端·sql·mysql
多多*14 小时前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
deriva15 小时前
某水表量每15分钟一报,然后某天示数清0了,重新报示值了 ,如何写sql 计算每日水量
数据库·sql
云之兕16 小时前
MyBatis 的动态 SQL
数据库·sql·mybatis
圈圈编码20 小时前
悲观锁和乐观锁
java·开发语言·sql·mysql