首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实验吧-因缺思汀的绕过

实验吧-因缺思汀的绕过

题目链接:http://www.shiyanbar.com/ctf/1940

查看源码,可以看到注释里提示了源码的位置,访问source.txt得到源码,然后开始审计吧!先把源码贴出来

通读源码可以发现,我们输入的username与password都使用了黑名单过滤,这也告诉我们是有机会的,毕竟黑名单存在绕过的可能性。黑名单如下:

过滤了之后,执行了一条sql语句:

这条语句拼接了我们输入的uname,也就是说注入点只可能存在于uname字段,接下来判断了sql语句的查询结果是否只有一条数据,如果成立就把我们post过去的密码与数据库中存储的密码进行比对,如果相同就打印flag!

mark

这儿也就是我们需要绕过的地方,其中最主要的又是绕过密码的比较。我一开始的思路是使用union语句构造一个类似于下面的语句:

然后密码输入123,就可以绕过了。但是发现绕不过它的过滤条件,搞了半天结果还是自己sql语句玩的不够熟练,,这里是巧妙地用了select过程中用group by with rollup这个统计的方法进行查询。group by with rollup会在统计后的产生一条null信息,然后在pwd里不写值,if就为true了。

所以只要我们用户名输入如下语句:

(该数据表中只有两条信息)

然后密码部分保持为空就可以得到flag。

mark关注web安全

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G1IPP700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券