【ctf初学者】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

大概内容:这是我的第一篇博客,是一位学长发给我练习ctf的小游戏,我会一直更新直到通关(希望我能通关)。游戏在这里。


以下是本篇文章正文内容`

一、准备阶段

作者并没有直接把第一关的链接给我们,需要我们右键或者是f12查看源代码

二、解题经历

1.第一关

在这里插入图片描述

代码如下:如果输入的不是两个空格就会错误

function check(){
        if(document.getElementById('txt').value=="  "){
            window.location.href="hello.php";
        }else{
            alert("密码错误");
        }
    }

输入两个空格直接下一关

2.第二关

第二关这里右键被禁用了,使用f12打开网页源代码
在这里插入图片描述

代码如下:

var a,b,c,d,e,f,g;
    a = 3.14;
    b = a * 2;
    c = a + b;
    d = c / b + a;
    e = c - d * b + a;
    f = e + d /c -b * a;
    g = f * e - d + c * b + a;
    a = g * g;
    a = Math.floor(a);

    function check(){
        if(document.getElementById("txt").value==a){
            window.location.href=a + ".php";
        }else{
            alert("密码错误");
            return false;
        }
    }

这里我是通过计算机计算得出的,但是发现有别的解法是控制台输入a可以得到密码424178但是我一开始用的是Safari浏览器不会在控制台输入,接下来我会使用火狐浏览器。

3.第三关

script type="text/javascript">
    eval(String.fromCharCode(102,117,110,99,116,105,111,110,32,99,104,101,99,107,40,41,123,13,10,09,118,97,114,32,97,32,61,32,39,100,52,103,39,59,13,10,09,105,102,40,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,39,116,120,116,39,41,46,118,97,108,117,101,61,61,97,41,123,13,10,09,09,119,105,110,100,111,119,46,108,111,99,97,116,105,111,110,46,104,114,101,102,61,97,43,34,46,112,104,112,34,59,13,10,09,125,101,108,115,101,123,13,10,09,09,97,108,101,114,116,40,34,23494,30721,38169,35823,34,41,59,13,10,09,125,13,10,125));

有一串很长的代码,eval是一段执行函数,把它替换成输出函数可以了,用alert替换eval在控制台输入可以得到密码
在这里插入图片描述

4.第四关

这里刚进去的时候愣了一下,因为进去马上退出,前段时间学了点html,应该是把页面刷新时间设得很短,然后跳回原网页。可以直接使用view-source来查看页面源代码
在这里插入图片描述

 eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--)d[c.toString(a)]=k[c]||c.toString(a);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('a="e";d c(){b(9.8(\'7\').6==a){5.4.3=a+".2"}1{0("密码错误")}}',15,15,'alert|else|php|href|location|window|value|txt|getElementById|document||if|check|function|3bhe'.split('|'),0,{}))

先有两段eval函数先执行第一段,再执行第二段就可以得到答案,但是这里我比较谨慎用老方法alert替换了eval,提示是将第一次的a全部换成大写并加上1也可以得到答案。
在这里插入图片描述

5.第五关

第五关说把密码藏在了页面里,先查看源代码,然后点击然后点击网络刷新一下查看返回包。因为monyer是梦之光芒的意思,所以这个就是提示。在这里插入图片描述得到密码asdf进入第六关

6.第六关

第六关进去是一个图片,说起来很尬,我开始并不知道考察的是什么,直接搜了露出来的字。有点社会工程学的感觉,查看源代码会看到作者给的提示。看后缀可以知道这是域名在南非的一个杂志。打开谷歌一搜可以得到答案seventeen在这里插入图片描述这题还有一个别的思路,是我从学长那里听来的,是将图片曝光到合适的亮度,也可以读出答案。提交时记得小写。

7.第七关

在这里插入图片描述

其实我也不明白这个提示二写的什么意思。但是不影响我写出来,这个时候需要给大家普及一下什么是MD5:这是百度上MD5的解释,说一点之外的东西,与base64做对比,它与base64不同,base64如果只改变一个字节,加密后的密码变化不大,但是MD5改变一个字节会是截然不同的密文,并非线性关系,安全性相对于base64大大提升。但是它并不是完美的,给大家介绍CMD5这个平台,里面收录了很多MD5的加密。直接复制密文得到密码eighteen8在这里插入图片描述

8.第八关

刚进来作者给我们开了一个小小的玩笑,给了个假的404页面,打开源代码一看可以看到作者留下的提示。在这里插入图片描述问题就来到了求10000以内的质数和。可以用python也可以上网查一查也可以用c用java
我使用的是c语言。得到答案:5736396

#include <stdio.h>
int main()
{
    int i,j,k;
    int sum=0;
    for (i=2; i<10000; i++) {
        k=sqrt(i);
        for (j=2; j<=k; j++)
            if (i%j==0)
                break;
        if (j>=k+1)
                sum=sum+i;
    
   }
    printf("质数和为:%d\n",sum);
}

在这里插入图片描述

9.第九关

明天再写吧今天有点累了

总结

还没完结捏

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值