刚接触安全的时候偶然间发现了这个小游戏,当时凭自己一点点的基础知识闯过了4、5关这样子,然后就一头雾水了。这个游戏也一直躺在我的收藏夹里。不想前几天偶然打开发现和ctf题目很类似。于是又捡了起来并通了关,见证了自己的成长很开心。这里做一下解题思路的记录吧。
游戏网址:http://monyer.com/game/game1/
第一感觉和第1关一样,想查看源代码时发现右键被禁用了,改用F12查看源代码,发现一段js脚本
分析脚本得知,第一行是禁用右键的函数,下面是一系列的计算最后得到a,然后输入a过关。
直接复制代码到控制台下运行得到答案
老套路,查看源代码,发现js脚本,拖到控制台下面,不过要注意的是eval函数是执行的意思,直接执行控制台上是不会显示任何信息的,可以直接把eval去掉这样就显示出原本的js代码了,按提示输入密码过关。
没错我没放错图,第3关输入密码后,第4关的界面一闪而过,然后就跳回来了-_-
考验手速的时候到了,趁界面还没跳转时按下esc,成功定格 ↓(这里直接用view-source:也行)
查看源代码,发现两段js函数,在控制台下调试得知上面的js输出密码“3bhe”,下面的js对密码进一步加密,加密方式为转化为大写然后+1(字符串加就是直接连接).所以最终的密码是“3BHE1”。输入密码过关。
根据提示分析了一波源代码,将其中可疑字符串都试了一遍,没有结果。因为页面结构很简单,内容也不多。后来想到了能藏东西的地方应该是在http请求和响应里面,抓包看响应头发现密码。
仔细观察图片,被黑雾挡住的地方应该就是答案。这题考验我们的搜索能力。根据没有被挡住的地方获得信息:
Get the latest fashion,beauty,dating,and health tips.Plus,win freebies,take quizzes,and check your daily horoscope!
然后下面还可以看出,答案是一个杂志的名字:
把那句信息复制到谷歌搜索(无法使用谷歌的可以使用必应)。得到答案,这里演示使用必应搜索:
直接SOMD5,得到过关密码,这里要注意的是根据提示2,输入密码后那个404页面实际是正确的
还记得第7关的提示2吗,没错这就是第8关的页面。查看源代码:
根据提示访问文件,首先要计算10000以内所有质数和,这里可以写一个C程序或者脚本来计算。去网上搜索也可以找到现成的代码。
基本的隐写术,在jpg图片的结束标志后写入信息不会影响图片的正常解析。下载图片到本机,然后用notepad打开图片,拉到文件最下面发现信息
一般用户身份都是用cookie或session来记录,查看请求头发现标识身份的cookie
在F12控制台中用js改变cookie中username的值
然后刷新页面
session可不能改了哦,因为它是存储在服务端的,不过在url中发现一个可疑参数
尝试把false改成true,然后回车
原理……应该是客户端发的不同请求会让服务端设置不同的session吧
一串奇怪的字符串,根据打ctf比赛的直觉,先用base64解码
看到%,想到URL解码
再base64解码
再URL解码……
直接在地址栏输入url访问文件是不行的:
在第12关输入框输入sobeautiful,看到这样的画面
防盗链技术就是检测用户是从哪个页面跳转到当前页面的,如果不是内部页面跳过来的就拦住。看来第13关要从第12关的页面跳转过去才行。
而由上图可见,用户的输入会显示在页面上,这是构造xss的好机会,我们构造一个a标签跳转链接
点击链接进入第13关
先用PEid查壳,发现UPX壳
kali下执行 upx -d crackme.exe 脱壳
然后拖出来用OD逆向分析,先用OD运行程序,然后右键查找,所有参考文本字串
一下子就看到两个可疑字符串,先试第一个去注册
注册成功,下面显示另一个字符串,看来是密码了。提交后404,考虑到之前后台技术都是php,所以去掉.asp后提交