您当前的位置: 首页 > 

yu22x

暂无认证

  • 3浏览

    0关注

    109博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CTF show WEB10

yu22x 发布时间:2020-02-17 17:07:50 ,浏览量:3

题目地址:https://ctf.show

打开页面点击取消按钮,出现源码。 $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i"; 从源码中可以得知几乎把注入用到的关键词过滤的差不多了。 如果只有这一条现在可以采用双写绕过,但是下面这条限制,使得无法双写绕过

if(strlen($username)!=strlen(replaceSpecialChar($username))){
			die("sql inject error");
		}

这里介绍两个mysql语句 ①group by(将结果集中的数据行根据选择列的值进行逻辑分组) 不加group by时的输出如下: 在这里插入图片描述 在使用group by以后会按照password中的值进行排列: 在这里插入图片描述 ②with rollup (group by 后可以跟with rollup,表示在进行分组统计的基础上再次进行汇总统计) 来看实例: 在这里插入图片描述结果中将会多出一行,其中password列为null,count(*)为统计和。 这里我们就可以通过骚姿势绕过了。 其中/**/是为了绕过空格过滤 payload:username=admin'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup#&password= 因为加入with rollup后 password有一行为NULL,我们只要输入空密码使得(NULL==NULL)即可满足$password==$row['password']的限制成功登陆。 登录成功即可显示flag。

关注
打赏
1617522777
查看更多评论
立即登录/注册

微信扫码登录

0.0689s