美文网首页CTF
[实验吧](web)因缺思厅的绕过 源码审计绕过

[实验吧](web)因缺思厅的绕过 源码审计绕过

作者: _Deen | 来源:发表于2017-07-08 10:38 被阅读208次

    0x00 直接看源码吧


    早上写了个注入fuzz的脚本,无聊回到实验吧的题目进行测试,发现了这道题

    地址:http://ctf5.shiyanbar.com/web/pcat/index.php

    分析如下:

    1. 看过滤,过滤了一些查询关键词,明注是不可能了,过滤括号,通常的盲注也是实现不了。

    2. 看要得到flag的条件,我们输入的密码和查询的密码要一致,而且查询结果只能有一条。

    0x01 正确姿势


    懒得写思路流程了,这里直接给出两种解题姿势,一种是盲注出密码,一种是使用with rollup 再加php弱类型。

    1. 先看盲注吧:

    payload: ' or pwd like 's%' limit 1#

    解释: 要使查询语句正常而且出结果,必须要有一个为真,这里是根据pwd进行判断的,若此时查询出来的结果中的pwd 的值是以s开头,则返回true ,若不是,则返回false。

    我是看人家writeup学到的,不得不承认,要是在知道列名的情况下,这种盲注手段简单方便很多,让我对 like的印象加深了许多。

    那剩下来就是脚本的事情了。

    2. with rollup

    这是我的一个知识盲区,出题人估计一开始的出发点也是这个吧,所以我也想记录一下。

    个人下面通俗解释一下 with rollup:   要配合 group by 一起使用,"group by username with rollup",简单说一下,就是使用with rollup 查询之后,查询结果集合里面会多一条NULL 记录,这一题利用NULL 和空字符相等,然后得到flag。测试如下图:

    所以这题的绕过的正确姿势是

    提交 username=' or 1 group by pwd with rollup limit 1 offset 2 # 

    0x01 小结


    偏向于盲注的我对like的印象分蹭蹭往上涨,不仅仅停留在绕过“=” 的过滤了

    with rollup 也是一种不错的姿势 除非是某些题目故意设定 要不然一般或许有更好的选择吧

    相关文章

      网友评论

        本文标题:[实验吧](web)因缺思厅的绕过 源码审计绕过

        本文链接:https://www.haomeiwen.com/subject/yhpdhxtx.html