CTF-Bugku-分析-信息提取

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 最近刷题的时候看到了这道比较有趣的题。而且网上也没找到wp,所以分享一下我的思路。

 

   信息提取;

   题目链接:http://ctf.bugku.com/challenges#信息提取

  CTF-Bugku-分析-信息提取 Safe 第1张

  下载文件CTF-Bugku-分析-信息提取 Safe 第2张

先用wireshark打开流量包看看是什么。

CTF-Bugku-分析-信息提取 Safe 第3张

只有http和tcp的包,我们只关心http包,所以我们在过滤中输入http,只显示http内容。

CTF-Bugku-分析-信息提取 Safe 第4张

粗略的看一下,结合题目的提示“sqlmap用过吗”,可以看出这是一个布尔盲注的过程,从sql注入检测,猜解数据库,表名...

一位一位的猜取flag,然后用二分法判断其ascii码的范围并最终确定这一位的值。

第806个包是读取flag第一位的数据包。

CTF-Bugku-分析-信息提取 Safe 第5张

为了更明了的查看语句,可以导出对象查看

CTF-Bugku-分析-信息提取 Safe 第6张

将其payload解码一下是这样的,判断其ascii码是否大于64

CTF-Bugku-分析-信息提取 Safe 第7张

我们可以以64这个ascii码为一个字符的分界线,我们不需要看返回值,只需要往下看到下一个64就能判断ascii码是什么,我们以第一个字符为例,可以看到第一个字符判断的时候,先判断其是否大于64,后面又判断了是否大于96,说明这个字符肯定大于64,所以此时作比较的ascii码增加64的二分之一,即96,接着向下看,作比较的ascii码变成了80,说明这个字符小于96,所以大于64又小于96,继续向下分32的二分之一,即80,在接着向下看,作比较的ascii码变为了72,说明这个字符依然小于80,继续向下分16的二分之一,即72,继续向下看,作比较的ascii码变为了76,说明这个ascii码大于72,所以向上分8的二分之一,即76,继续向下看,作比较的ascii码变为了74,说明这个ascii码小于76,所以向下分4的二分之一,即74,继续向下看,作比较的ascii码变成了73,且下一个包变为了64,说明已经判断结束,因此大于72又不大于73,这个ascii码为73,对应的字符为I。这就是二分法

以此类推,其flag为ISG{BLind_SQl_InJEcTi0N_DeTEc***}(我建议还是自己做一下的好,哈哈)。本题需要一定的耐心和SQL注入基础,虽然没很绕,但是也是个体力活。

 原创文章,转载请标明出处:https://www.cnblogs.com/pureqh

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄