CTF训练营之web篇

  

不难不易的js加密

  解题地址:here

  过程:打开源码页面,开始分析js代码

 

           技术分享 

  可以看到好多>.<    而且乱七八糟的感觉(好吧,大神就忽略这句吧)

  首先将网站另存为到本地,其实网上有关于这方面解码的方法,这里我使用的document.write(blablablabla.....) ,改完之后在本地打开文件,就不贴图了,将页面上的代码复制下来替换原来的js代码,调整一下格式,得到如图结果:

    

技术分享
<script type="text/javascript">
var a=prompt("\u8f93\u5165\u4f60\u7684\x66\x6c\x61\x67\u5427\uff0c\u5c11\u5e74\uff01","");
var b="\x66\x33\x33\x37\x33\x65\x33\x36\x63\x36\x37\x37\x37\x35\x30\x37\x37\x39\x66\x35\x64\x30\x34\x66\x66\x37\x38\x38\x35\x62\x33\x65";
var c=/.+_.+_.+/gi;//  g匹配所有  i对大小写不敏感
var d=0x0;
var e=a.substr(0x8,0x5);//
//d = 0
if($.md5(e)==b.replace(/7/ig,++d).replace(/8/ig,d*0x2)){// 8-12  jiami
    //d = 1
    
    var f=a.substr(0x0/d,0x7);
    if(f.substr(0x5,0x2)=="\x6a\x73"&&$.md5(f.substr(0x0/d,d+0x3))=="\x64\x30\x31\x35\x34\x64\x35\x30\x34\x38\x62\x35\x61\x35\x65\x62\x31\x30\x65\x66\x31\x36\x34\x36\x34\x30\x30\x37\x31\x39\x66\x31"){//5-6js 0-3wctf
        //d = 1
        document.write("2:"+d+"\n");
        document.write("a:"+a+"\n");
        r=a.substr(0xd);//Oxd=>13
        //0xd = 1
        document.write("rr:"+r+"\n");
       // d = 0x1;
        if(r.charCodeAt(d)-0x19==r.charCodeAt(++d)-0x19&&r.charCodeAt(--d)-0x19==r.charCodeAt(--d)){//charCodeAt() 返回指定位置的unicode值
            //d = 3
            document.write("3:"+d+"\n");
            var g=String.fromCharCode(0x4f);
            g=g.toLowerCase()+g.toLowerCase();//g =>oo
            document.write(r.substr((++d)*0x3,0x6)==g.concat("\x65\x61\x73\x79")+" ");
            //document.write("g:"+g.concat("\x65\x61\x73\x79")+"\n");
            document.write(c.test(a));
            if(c.test(a)){//easy
                document.write("4:"+d+"\n");
                d=String(0x1)+String(a.length);
                document.write("5:"+d+"\n");
            }
        }
    }
};
if(a.substr(0x4,0x1)!=String.fromCharCode(d)||a.substr(0x4,0x1)=="\x7a"){
    alert("\u989d\uff0c\u518d\u53bb\u60f3\u60f3\u3002\u3002")
}else{
    alert("\u606d\u559c\u606d\u559c\uff01")
}

</script>
View Code

 

  好吧,接下来分析代码==>ok   wctf{js_jiami_xxooeasy}

COOKIE欺骗

  这道题目花了好几天(技术太渣T^T)

    

  解题地址:here

  过程:

    面对页面一大串的乱码,第一反应就是去解码,结果大概都知道了...

    查看url   /index.php?line=&file=ZmxhZy50eHQ

    传了2个值,其中file参数值有点加密的感觉,那就再来吧!通常url用的是base64加密,所以解之,附上在线解密网站:here

    解出来该值为flag.txt,好吧看样子该目录下应该还有其他的文件等着我们来访问,那就随便试试几个常用的文件名吧,最后试出来是index.php的base64密文aW5kZXgucGhw,接下来就是使用line这个参数了,随便改了改1,2,3,4,5..... 我们可以发现页面有php代码出现,好吧,那就写个脚本来拿这个文件吧

 

技术分享
import urllib

url1 = "http://ctf.idf.cn/game/web/40/index.php?line="
url2 = "&file=aW5kZXgucGhw"

result = ""

for i in range(200):
    url = url1 + str(i) + url2
    #print url
    wp = urllib.urlopen(url)
    content = wp.read()
    print content
    result += content

print result
View Code

 

得到该php文件后,分析,cookie中如果有key并且对应idf,则加入flag.php   base64加密后放入url,cookie中加入key:idf   ok    wctf{idf_c00kie}

技术分享
<?php


    error_reporting(0);


    $file=base64_decode(isset($_GET[‘file‘])?$_GET[‘file‘]:"");


    $line=isset($_GET[‘line‘])?intval($_GET[‘line‘]):0;


    if($file==‘‘) header("location:index.php?line=&file=ZmxhZy50eHQ");


    $file_list = array(


        ‘0‘ =>‘flag.txt‘, 


        ‘1‘ =>‘index.php‘,


    );





    if(isset($_COOKIE[‘key‘]) && $_COOKIE[‘key‘]==‘idf‘){


        $file_list[2]=‘flag.php‘;


    }





    if(in_array($file, $file_list)){


        $fa = file($file);


        echo $fa[$line];


    }


?>
View Code

古老的邮件编码

  uuencode编码,随便找个网站解一下   

超简单的js题

  纯粹的解码

简单的js解密

  好吧,还没做出来,待续...   求大牛针对本题

一种编码而已

  复制贴到控制台,答案就出来了,可以查查  jsfuck

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。