IT404过关游戏WP

春秋群里前两天风靡一个过关游戏,写一些简单的游戏心得。

第一关:http://www.it404.com/project/let.s.go.html

其实第一关没什么可说的,无论是什么问题,都得看看源码吧。本人很懒所以还是不贴图了。IE下F12或者Chrome下debug查看

源码可以找到content里面的隐藏信息。PASSWORD IS ....。这个信息就是密码的md5了。去md5网站解密一下就ok了。解密后会

得到JO,在function里面有几行看上去很吓人的script,其实没什么用。效果只是从字符数组里生成了IT404。

第二关:http://www.it404.com/project/JO.IT404.html

第一关输入JO成功就调到第二关了,密码告诉我们是IT404.com。源码中查看,发现有关输入密码的p标签属性设置为了隐藏,

使用chrome的话简单些,在debug模式下把hidden=“hidden“”那句删除掉,然后输入密码,发现输入的密码看不见,很难受。

原因是input标签有个属性color:white,这句也删除。ok,输入密码,进入第三关。

第三关:http://www.it404.com/project/IT404.html

查看第三关的源码有些唬人,很多的script,其实页面上的script实现的是Base64的decode和encode,base64是常用的数据格式,如果

你不知道请去查一下,在网络中这是相当重要的数据类型概念。ok,到这里贴张图吧。发现input标签的我要登录点击后调用了函数checkLogin(),

其实看到checkLogin()答案已经揭晓了。b=new Base64(),b.decode()中的就是加密后的信息了。拿到解密网站解密一下就ok了。解密的结果是:

hack.it.404.html。window.location.href就是当前窗口的url,重新被赋值后直接跳到下一关。这里我们手动输入更便捷些。


第四关:http://www.it404.com/project/hack.it.404.html

第四关什么也没有。一般来说数据的隐藏都会在源码,注释,http响应中。分析源码是第一步。


源码里这样的。http的response我看过,的确没什么可疑之处,能不贴图就尽量不贴图了。我们可以看到script里面的一句注释。

本站从事SEO,优化啥的。这是一个提示。SEO的优化会用到robots.txt,通过在robots.txt中的设置规范爬虫的行为。在路径中

输入http://www.it404.com/project/robots.txt。在最后一行的User-agent:*Disallow: seo.it404.html就拿到第五关的路径了。

第五关:http://www.it404.com/project/seo.it404.html

第五关一看就笑了。.-.-.-.-摩斯电码。一些常用的密码形式我们应该有所了解。类似摩斯电码,培根密码,猪圈密码,栅栏密码。

这一关的点和横解密后就是JOJOJO。

第六关:http://www.it404.com/project/6.php?pass=39916800

第六关的确有点麻烦的,最开始没思路,后来询问了朋友才得以解决。在此首先感谢朋友和i春秋。第六关按照以往的思路,分析源码和

http请求。源码里面没有什么可用的信息。但是在http的Request里面发现了有关通关密码的信息。


Cookie里面有关于password的提示。JO_QQ_number_IS_PASSWORD=NUMBER;分析了一下并没有发现什么NUMBER,其实对于这一关我仍然

存在很大的疑问,不知道QQ_NUMBER是如何得来的。所以在此我只说方法不做评论。方法:浏览器使用burpsuit代理,拦截http请求,修改报头

参数,JO_QQ_number_IS_PASSWORD=1799090981。foward后网页会重定向到7_JO.php。也就是第七关。事实上这个1799090981真的是JO的

QQ号,我不知道那群家伙怎么把他QQ号翻出来的,大概是社工吧,但我在社工这方面并不是很擅长。JO就是写这个游戏的大神,大家来加他QQ啊哈哈哈~~


第七关:http://www.it404.com/project/7_JO.php


第七关看到界面就知道是隐写了。连源码也没看,直接保存图片使用binwalk分析。果然别有洞天。


图片里面隐藏了一个it404.password的文件。使用命令binwalk -e 3.jpg剥离出来,

打开it404.password,二层隐藏,用base64加密过的信息。将里面的信息放到base64网站解密。

观察结构知道是图片信息,这种格式是将图片数据直接存放在标签数据里面,data:image/png,base64,后面紧跟的就是图片的

数据了,解码工作浏览器会自动完成,直接存为html格式。打开就知道第八关的url了。


第八关:http://www.it404.com/project/8.local.php

其实感觉第八关的趣味性并不大。还是看了下源码。

username和password都藏在注释里面了。还有一个外加的code,上面的提示0.00909090对我并没有帮助。表单的提交方式是

get,那么方法也就有了。url里手动提交。在url里面加参数?username=JO&password=1799090981&code=1,code是在变化的,

设个数多猜几次就出来了。出现概率比较高的有4,7,9等。猜对了就是下面这个样子了。点击go next进入下一关。

值得一提password是JO的QQ,第六关用到过还记得么。

第九关:http://www.it404.com/project/9_1.php

这一关猜了一些指令没猜对,后来朋友提示才知道是关闭防火墙的指令。原理不是很懂毕竟经验不足,跟据cgi和protection可以猜出一二。

口令:service iptables stop

第十关:http://www.it404.com/project/10_it404.php

第十关我有必要多费些口舌的。虽然到现在没破解出来。但是我可以提供一些思路。因为这个关卡我想好好吐槽一下。

模式,非常困难(看上去好像挺简单?)。这个关卡的实现(个人观点)是在php后服务器返回的随机数,然后猜解下一个将出现的

随机数。因为这个我在电脑上装了PHP并且生成了两个多G的字典跑了好多次,但还是没跑出来。这个题目乍一看很无厘头。其实这涉及

到了随机数的生成机制。我们都知道在C++中,每次生成的随机数列是相同的,然后使用相同的种子设置的随机数生成也是相同的,在php中

这也不例外。也就是srand相同,rand也是相同的。这样安全性的问题就暴露了。既然随机数序列相同,我们便可以猜解下面出现的数字了,这是唯一的

突破口。如果想用暴力破解的方式可行度并不高,数的范围在1亿到10亿之间,而且这个网站有ddos检测系统,频繁提交可能会被拦截。解决这个问题

的核心是获得随机数的种子。但是这个种子总是在变化的。如果有生成随机数的源码那么破解会变得相对容易,但是我们能拿到的只有返回的随机数而已。

在php4.2之后mt_srand并不需要手动设置种子,如果这个题目是手动设置的种子,那么每次新的session随机数列一定是相同的,要注意的一点,

每次session的种子应该是相同的,但是我们不确定这个序列是从第一个数开始的我猜想过服务器端的mt_srand的设置方法,

一是使用默认的mt_srand()让系统自动设置,二是根据系统时间动态设置。php源码中有一点介绍mt_srand的自动

设置实现还是通过了microtime函数的值。如此如果我们知道服务器的系统时间,可以确定一个大致的种子范围。在http的response我找到了近似的时间,值得

注意的是这个服务器使用了格林威治时间(GMT,伦敦时间)。此后我生成了一个字典,其中的一些随机数在字典中可以查到,但是下一个随机数的值并不正确。

由此可见,还是生成和设置种子的算法是关键。或许在php的mt_srand默认种子的源码中可以获得帮助。到此不多说了,,,累。


 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值