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>
好吧,接下来分析代码==>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
得到该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]; } ?>
古老的邮件编码
uuencode编码,随便找个网站解一下
超简单的js题
纯粹的解码
简单的js解密
好吧,还没做出来,待续... 求大牛针对本题
一种编码而已
复制贴到控制台,答案就出来了,可以查查 jsfuck
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。