博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CG-CTF WEB 解题记录 1-5
阅读量:4948 次
发布时间:2019-06-11

本文共 1259 字,大约阅读时间需要 4 分钟。

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

签到题

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

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

安安静静躺在源码里边

 

 

 

 

md5 collision

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

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的对比值:
 
输入a值flag就出来了
 

 

 

 

 

签到2

 

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

我们此时打开源代码查看

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

flag就爆出来了

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

 

 

这题不是WEB

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

 

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

 

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

 

flag安安静静的躺在哪里

 

 

 

层层递进

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

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

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

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

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

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

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

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

 

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

你可能感兴趣的文章