光棍节程序员闯关秀过关攻略

第1关

查看源代码,发现a标签的颜色和背景色一样,导致了我们看不到a过关地址,方法很简单,直接复制源代码中的key即可,或者ctrl+a然后单击进入下一关即可

http://1111.segmentfault.com/?k=91f546c97235a8f199b50731ded6d4e2

或者将color的属性改为#fff,让其显示为白色。

第2关

查看源代码,发现key:1a434a0eacab73b208320061809d46c9,填入表单,然后回车即可过关。

这个是将key写在代码注释里面。

http://1111.segmentfault.com/?k=1a434a0eacab73b208320061809d46c9

第3关

使用live header等工具抓包,即可在http请求头中发现The-Key-Is: a87ff679a2f3e71d9181a67b7542122c

或者用Chrome审查调试工具,查看Network下面的请求头文件,发现如上代码。

http://1111.segmentfault.com/?k=a87ff679a2f3e71d9181a67b7542122c

第4关

提示"观察你密码的规律",看一下第4关的地址k=a87ff679a2f3e71d9181a67b7542122c,应该是md5加密,去cmd5解密得到4,那么下一关应该是5,再用cmd5加密“5”得到:e4da3b7fbbce2345d7772b0674a318d5

http://1111.segmentfault.com/?k=e4da3b7fbbce2345d7772b0674a318d5

第5关

看上去是一个二维码图片,但是对于安全人员来说肯定要下载回来看看图片里面内容了,果然密码在图片中隐藏着。将图片下载下来,并改为TXT文本文件,打开发现如下内容:

http://1111.segmentfault.com/?k=bdbf46a337ac08e6b4677c2826519542

第6关

过关tips:f4de502e58723e6252e8856d4dc8fc3b,百度搜索之,即可发现制作者发了个微博,里面就有key:1573402aa6086d9ce42cfd5991027022

http://1111.segmentfault.com/?k=1573402aa6086d9ce42cfd5991027022

第7关

搜索了一下,没有结果,把f8442620d3516e05066e7c792dcc41fe放入url中,秒过。。。。不要相信制作者的鬼话。

http://1111.segmentfault.com/?k=f8442620d3516e05066e7c792dcc41fe

第8关

其实已经给出了答案,复制key却发现走不通。这里有个input框,但是没有提交按钮,这个可以很好绕过,直接回车提交,不成功,也许是提交方法问题,果断改GET为POST提交,或者改type属性为submit,再点击按钮。

http://1111.segmentfault.com/?k=f8442620d3516e05066e7c792dcc41fe

第9关

这一关是最难的,我也是花了好长时间才过的,看到0110____,大家肯定知道是要补全0或者1才可以的,到底要怎么补呢,既然是双11,肯定全补1,最后证明,是对的。。

解密思路:

替换所有的____为1111,然后再把2进制转换为10进制,然后把10进制转换为char编码,会得到一段Base64密文,再把此密文解密为一个tar.gz的文件即可。

那么问题来了,怎么实现这个思路。下面带来两种解密方法:

一、基于PHP的解密:

直接上代码,保存为PHP文件再运行。这里需要将网页的所有0101的代码复制到一个文本文件,并命名为1.txt,和PHP文件放在同一个目录下。

<!DOCTYPE html> 
<html> 
<body> 
<?php 
$file = '1.txt';      //文件地址
$content = file_get_contents($file);   //读取文件内容
//echo $content;
$content=str_replace("_","1",$content); //把_替换成关棍节的1
$content=str_replace("\r\n"," ",$content); //把换行替换成空格,因为下面以空格取字符串
$array = explode(" ", $content);   //以空格为间隔变成数组存储字符串
 
//print_r($array);
 
for($i=0; $i<count($array); $i++)
{
//echo $array[$i]."<br>";
$con10=bindec($array[$i]);   //把二进制转为十进制
//echo $con10."<br>";
$baseii.=chr($con10);        //把十进制转为ascii,由于chr函数不支持二进制
}
//echo chr(52);
//echo $baseii;
 $base64=base64_decode($baseii);    //解码base64函数
 $file2='2.txt';
 if($k=fopen($file2,"w"))            //打开文件
 echo "open file success"."<br>";
 fwrite($k,$base64);
 fclose($k);
  if(rename($file2,"targe.tar.gz"))  //修改后缀为tar.gz
 echo "rename success"."<br>";
?> 
</body> 
</html>

二、基于Python的解密

这里需要预处理一下网页中的0101,需要将_这个字符全部换为1.放在bin后面的引号中。

import base64
bin = '''这里填写那一大段0101代码'''
binTochar = [chr(int(x, 2)) for x in bin.strip().split()]
print ''.join(binTochar)
keyFile = open('key.tar.gz', 'wb')
keyFile.write(base64.b64decode(''.join(binTochar)))
keyFile.close()

打开最终生成的压缩文件,发现里面有个图。

这个图上面的代码,就是最终的key啦。

http://1111.segmentfault.com/?k=e4a4a96a69a1b2b530b3bec6734cdf52

制作者还不忘打一波广告。

最后这只是我ctf生涯的第一步,以后有什么好玩的还会写出自己的见解。

CTF——Capture The Flag.

除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/code/ctf/424.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件开发

前端MVC学习总结(三)——AngularJS服务、路由、内置API、jQueryLite

AngularJS功能最基本的组件之一是服务(Service)。服务为你的应用提供基于任务的功能。服务可以被视为重复使用的执行一个或多个相关任务的代码块。

15030
来自专栏Albert陈凯

Hadoop数据分析平台实战——250JSSDK数据收集引擎编写离线数据分析平台实战——250JSSDK数据收集引擎编写

离线数据分析平台实战——250JSSDK数据收集引擎编写 JsSDK设计规则 在js sdk中我们需要收集launch、pageview、chargeReque...

37380
来自专栏林德熙的博客

win2d 图片水印

首先需要使用 Nuget 安装 win2d ,安装参见win10 uwp win2d

9920
来自专栏酷玩时刻

支付宝Wap支付你了解多少?

为了方便开发者生成一对RSA密钥支付宝提供一键生成工具,具体如何生成与配置密钥详见签名专区。

40920
来自专栏落影的专栏

编译与链接过程的思考

前言 最近遇到一个错误,如下 ? 在解决过程中,回顾了很多知识,于是有了这篇文章。 关键词:预处理、编译、汇编、链接、动态链接库、静态链接库、真机调...

53090
来自专栏章鱼的慢慢技术路

使用Go语言+Protobuf协议完成一个多人聊天室

之前用纯逻辑垒完了一个可登入登出的在线多人聊天室(代码仓库地址),这次学习了Protobuf协议,于是想试着更新下聊天室的版本。

14030
来自专栏软件开发

前端MVC学习总结(三)——AngularJS服务、路由、内置API、jQueryLite

一、服务 AngularJS功能最基本的组件之一是服务(Service)。服务为你的应用提供基于任务的功能。服务可以被视为重复使用的执行一个或多个相关任务的代码...

22850
来自专栏刘望舒

Android开发的几个插件和工具,提升你的开发效率

对于一个Android开发,面对以下问题会非常痛苦。 重复的findById。 将复杂的Json字符串,解析成javaBean。 调试接口的时候打断点十分麻烦。...

33690
来自专栏程序员八阿哥

Python从入门到摔门(6):Python Web服务器Tornado使用小结

举例来说,假设某个银行网站有这样的 URL: http://bank.example.com/withdraw?amount=1000000&for=Eve ...

23020
来自专栏王二麻子IT技术交流园地

《跟我学IDEA》四、配置模板(提高代码编写效率)

上一篇博文,我们学习了idea的一些实用配置,相信大家也对idea这个开发工具有了一个大概的了解。今天我们来学习模板的配置,idea提供很多模板从而提高编写代码...

97270

扫码关注云+社区

领取腾讯云代金券