Writeup Blinded by the lighter

题目提示:

1. Again your mission is to extract an md5 password hash out of the database.

需要获取数据库中的密码信息,而密码是经过MD5加密的。

2. This time your limit for this blind sql injection are 33 queries.

最多可以注入33次。

3. Also you have to accomplish this task 3 times consecutively, to prove you have solved the challenge.

居然要连做三次才算成功,为什么。。。为什么。。。为什么。。。

4. 可以查看部分关键源代码,注入点居然还是这一句:

$query = "SELECT 1 FROM (SELECT password FROM blight WHERE sessid=$sessid) b WHERE password=‘$password‘";

居然还有时间限制:

/** * Check if you were too slow. 
    * @return true|false 
    */
function blightTimeout(){
        if (false === ($start = GWF_Session::getOrDefault(‘BLIGHT2_TIME_START‘, false))){                
            return true;
         }
         else{
             return (time() - $start) > BLIGHT2_TIME;
         }
}

实际做起来确实如此,时间稍微长一点就提示说太慢了,只好重来。。。

解题:

看别人的writeup提到可以通过sleep函数然后根据响应时间来判断

‘ or sleep(ord(substr(password,1,1)))

经过试验取ascii码来判断影响时间太长,由于本次字符限定在0-9,A-F之间因此将上面的判断语句改为如下,后面发现时间还是不够用于是除了个2,至于这里为什么减的是46各位自己思考吧,哈哈,个人感觉46最合适:

‘ or sleep((ord(substr(password,1,1))-46)/2)  #

OK,注入成功,那怎么判断延时的时间呢,这时候就需要通过firefox的firebug插件了,F12打开furebug,选择网络选项卡,选中HTML和保持两个选项,选择保持是为了把历史记录保存下来后统一查看,这样可以提高速度,清除选项就是清除历史记录。

好,现在开始了:

1. 重置题目execute a reset

2. 清除firebug历史记录

3. 从第一个字符开始注入直到第三十二个

4. 依次查看firebug中每次注入后响应时间,注意要把鼠标移动到时间线上在弹出的小窗上看最后一项接受数据的时间,时间小数位怎么取舍呢?以0.5为单位,超过部分舍去,比如0.76则认为是0.5

5. 提前准备好excel表格,计算char(x*2+46),x即为响应时间

6. OK,整理好数据提交吧,是不是提示成功了,再重复两次步骤这题就搞定了。

时间: 2024-10-03 08:19:07

Writeup Blinded by the lighter的相关文章

Writeup Blinded by the light

题目提示: 1. Your mission is to extract an md5 password hash out of a database. 需要获取数据库中的密码信息,而密码是经过MD5加密的. 2. Your limit for this blind sql injection are 128 queries. 最多可以注入128次,通过查看源代码可以看到超过了就会重新生成密码. 3. 可以查看部分关键源代码 $query = "SELECT 1 FROM (SELECT pass

2016第七季极客大挑战Writeup

第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{We1c0m3_To_G33k_2O!6} 并且可以知道后边的题的Flag格式为 SYC{} 2.xiao彩蛋 题目提示关注微博,从Syclover Team 博客(http://blog.sycsec.com)可获取到三叶草小组微博,私信发送flag后即可得到. 3.闪的好快 一开始拖进PS分帧数

Jarvis OJ - class10 -Writeup

Jarvis OJ - class10 -Writeup 转载请注明出处:http://www.cnblogs.com/WangAoBo/p/7552266.html 题目: Jarivs OJ的一道misc,记录这道题的Writeup主要是想记录解题的脚本 分析: 文件下载后是纯数据,binwalk发现为两段zlib压缩后的数据,其中第2段为default compression,这是信息1:strings查看字符串,发现IHDR, RGB, IDAT等和图像相关的字符,这是信息2: 步骤:

Jarvis OJ Pwn writeup

Jarvis OJ Pwn writeup1.[XMAN]level02.[XMAN]level13.[XMAN]level2(简单64位栈溢出)4.[XMAN]level2(x64)5.[XMAN]level3(32位下两次溢出拿shell)6.[XMAN]level3_x64(基本64位栈溢出,简单ROP)7.[XMAN]level4(DynELF泄露system地址)8.[XMAN]level5(mprotect函数)9.Test Your Memory(简单栈溢出,覆盖返回地址)10.S

Redtiger Hackit Writeup

RedTiger's Hackit Level 1 Welcome to level 1 Lets start with a simple injection. Target: Get the login for the user Hornoxe Hint: You really need one? omg -_- Tablename: level1_users 通过http://redtiger.labs.overthewire.org/level1.php?cat=1 and 1=1 发现c

2017 redhat web writeup

2017 RedHat Web writeup1.thinkseeker2.PHPMyWIND3.后台 2017 RedHat Web writeup 1.thinkseeker 这题考两个点 1.用with rollup过前面两个if 2.用盲注找到flag 关于第一点在实验吧有原题:http://www.shiyanbar.com/ctf/1940 过滤方法稍有不同,用操作符代替关键字即可.token使用变量覆盖就可以. 第二点就是infoid这个参数有盲注,跑脚本可以拿到flag. 这是脚

2017年陕西省网络空间安全技术大赛——人民的名义-抓捕赵德汉2——Writeup

下载下来的文件是一个jar包,用die和binwalk检查,确实是一个纯正的jar包 java -jar FileName运行jar包,观察文件的外部特征,发现也是判断password的题目 ? 用查看jar包的工具jd-gui查看反编译的代码 大致浏览打码,发现UnitTests中的main函数很可疑,该段代码如下: public static void main(String[] args) { JFrame frame = new JFrame("Key check"); JBu

0ops CTF/0CTF writeup

0×00 0CTF『第一届0ops信息安全技术挑战赛,即0ops Capture The Flag,以下简称0CTF. 0CTF由上海交通大学网络信息中心和上海市信息安全行业协会指导,由上海交通大学信息网络安全协会承办,是2014信息安全技能竞赛校园赛首站.0CTF注册与参赛地址为http://ctf.0ops.net. 比赛时间为北京时间2014年3月1日至2日,每天7时至23时,共32小时.』 看官方微博,这个比赛本来是面向上交校内的,就是校外可以做题但是不发奖,后来也给校外发奖了,整体感觉

南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup

南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup 题目描述 文件下载地址 很明显,文件之间进行亦或就可得到flag,不再多说,直接上脚本 1 #coding:utf-8 2 file_a = open('密文.txt', 'rb') 3 file_b = open('明文.txt', 'rb') 4 ? 5 str_a = ''.join(file_a.readlines()) 6 str_b = ''.join(file_b.readlines()) 7 ? 8 ans =