CG-CTF WEB 解题记录 1-5

写了一部分的web题,算是把它最基础的一部分做了一遍,以后的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每五道题的题解以一篇文章的形式发表,感谢大家一直以来的支持和理解,共勉~~~

签到题

CG-CTF WEB 解题记录 1-5_第1张图片

打开链接,里边问,key在哪里??

哈哈哈,我们打开查看源码就知道了,

安安静静躺在源码里边

CG-CTF WEB 解题记录 1-5_第2张图片

 

 

 

 

md5 collision

CG-CTF WEB 解题记录 1-5_第3张图片

打开题目是这样的一串代码

 1 $md51 = md5('QNKCDZO');
 2 $a = @$_GET['a'];
 3 $md52 = @md5($a);
 4 if(isset($a)){
 5 if ($a != 'QNKCDZO' && $md51 == $md52) {
 6     echo "nctf{*****************}";
 7 } else {
 8     echo "false!!!";
 9 }}
10 else{echo "please input a";}

 在PHP中md5()和sha1()函数都存在一个漏洞,当像函数中传入数组时会无法处理返回同一值,即不同的数组通过md5(),sha1()处理后结果是一样的。

同时PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,

其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

首先我们使用工具将QNKCDZO转码为MD5:0e830400451993494058024219903391

百度查询一下,oe开头的MD5的对比值

我们试一试传输一个 a的值比如?a=240610708
常见的0e开头MD5的对比值: 0e开头MD5值小结
 
输入a值flag就出来了
 

 

 

 

 

签到2

CG-CTF WEB 解题记录 1-5_第4张图片

 

这个题打开网页出现一个输入窗口,我们按照提示输入指令,但均提示指令错误

我们此时打开源代码查看

<input type="password" value="" name="text1" maxlength="10">

发现有最大输入字节限制,我们将10改为20或者更大,回去重新输入zhimakaimen

CG-CTF WEB 解题记录 1-5_第5张图片

flag就爆出来了

PS:也可以使用BP进行抓取数据包更改实现传输

 

 

这题不是WEB

CG-CTF WEB 解题记录 1-5_第6张图片

打开网页是一个图片,我们下载下来

 

打开图片,并没有什么发现,我们试一试用文本格式打开

 

发现都是乱码,并没有我们想要的信息,下拉至最后一行

 

flag安安静静的躺在哪里

 

 

 

层层递进

CG-CTF WEB 解题记录 1-5_第7张图片

这个题稍微有点考虑思考能力,也有点技巧性

打开网页,看半天也没发现什么东西,这不就是一个简单的网页嘛???

无奈的我们烦不胜烦的右键不断看源码,突然点进了源码最后几行的一个链接

CG-CTF WEB 解题记录 1-5_第8张图片

哇!!!这个链接竟然可以打开,我们继续联想题目层层递进,继续查看源码,看还能不能继续进入网页

咦!又能打开,看来这应该就是flag的所在了

我们重复打开源码的链接直到我们看到以下网页

打开这个页面,还是没flag,我们继续查看源码

CG-CTF WEB 解题记录 1-5_第9张图片

哈哈哈,发现没,竖着排列的就是flag

 

转载于:https://www.cnblogs.com/Anser-dabao-982480259/p/9451621.html

你可能感兴趣的:(CG-CTF WEB 解题记录 1-5)