第二届360杯全国大学生信息安全技术大赛比赛的题目如下:
加密解密第一题:
源码如下:
<div class="container"> <div class="question-container"> <div class="panel panel-default"> <div class="panel-body"><script language='javascript'>var qrivy = eval;NanylmrgurXrl="7D6A792B606E723629383D3B2B586A6D6E7F722B4864657F6E787F2B62782B4D7E6565722A296D7E65687F6264652B48636E68605B6A78782322707D6A792B6469615B6A7878366F64687E666E657F256C6E7F4E676E666E657F4972426F23297B6A787829227D6A792B7B6A7878366469615B6A7878257D6A677E6E2B626D2329606E722920606E7225787E69787F7962656C233B27382236367B6A787822706A676E797F2329606E722B62782B62652B7B6A787829222B766E67786E706A676E797F23295F79722B6A6C6A62652A29222B7676";ArrqrqSha="function Xrlzrgubq(){qnauhnatcnv=Math.PI;cnefrVag=parseInt;sov='length';jebat0=cnefrVag(~((qnauhnatcnv&qnauhnatcnv)|(~qnauhnatcnv&qnauhnatcnv)&(qnauhnatcnv&~qnauhnatcnv)|(~qnauhnatcnv&~qnauhnatcnv)));lhn3afh=cnefrVag(((jebat0&jebat0)|(~jebat0&jebat0)&(jebat0&~jebat0)|(~jebat0&~jebat0))&1);/*Where is the key?! rot13 is the key.*/rknz6znbm=lhn3afh<<lhn3afh;erf0hygVfabg=jebat0;LbhT0gvg='';jvxvqrp0qr=eval(unescape('%5'+'3%74%'+'72%69%6'+'E%67%2E%'+'66%72%'+'6F%6D%4'+'3%68%61'+'%72%4'+'3%6F'+'%64%65'));nccy2vf=qrivy;for(c3ffc0eg=jebat0;c3ffc0eg<ArrqrqSha[sov];c3ffc0eg-=-lhn3afh)erf0hygVfabg+=ArrqrqSha.charCodeAt(c3ffc0eg);erf0hygVfabg%=unescape(jebat0+unescape('x')+(1<<6));for(c3ffc0eg=jebat0;c3ffc0eg<NanylmrgurXrl[sov];c3ffc0eg+=rknz6znbm)LbhT0gvg+=jvxvqrp0qr(cnefrVag(jebat0+unescape('x')+NanylmrgurXrl.charAt(c3ffc0eg)+NanylmrgurXrl.charAt(c3ffc0eg+cnefrVag(lhn3afh)))^erf0hygVfabg);nccy2vf(LbhT0gvg);}"</script> <div class="alert alert-primary">欢迎来到360网络攻防实验室</div></div>
这道题目思路来源于之前比较流行的某款网马生成器,变量NanylmrgurXrl是某段js代码根据算法函数Xrlzrgubq()加密后的结果。选手调用Xrlzrgubq()函数即可将NanylmrgurXrl解出来。考察选手的js代码的阅读和动手能力。
首先将script标签中的内容拷贝到txt里,然后将function里内容拷贝出来放到script之间,然后将最后的nccy2vf(LbhT0gvg);换成alert(LbhT0gvg);保存为html,点击即可看到解密后的代码,分析代码得知key在key360目录下,打开key360目录后查看源码,发现rot13加密后的字符串,解密即可。
加密解密第二题:
下载后改后缀为rar,解压后打开如图:
然后google下搜索
intext:DBDAAAC4D524F0DF9B34CCC255D061B5
得到:
得到答案。
加密解密第三题:
打开题目链接后发现是一堆二进制。首先选手需要写个二进制转16进制的脚本,然后winhex打开后发现是压缩文件,再另存为rar或者zip。打开zip文件发现是360图标的jpg,拖到txt里即可发现base64加密后的key,两次base64解密即可。
加密解密第四题:
1.根据文字提示与图片搜索,得到古典算法 维尼吉亚密码
2.维尼吉亚密码可以理解为一个二维数组的映射,我们把维尼吉亚密码表想象为一个矩阵A[x,y]。
3.根据测试数据,我们可以得出我们修改后的映射关系为 A[x,y],y=3i+1,i为字符的位置
4.根据导出的映射关系结合通关信息推导出明文。
加密解密第五题:
1.选手需要下载Android SDK,加载启动题目提供的avd.zip中的Android虚拟设备(avd),该AVD对应的SDK是Android4.0。
2.通过adb
shell下载九宫格锁屏密码的密钥文件,密钥文件文件默认位置/data/system/gesture.keyadb pull /data/system/gesture.key gesture.key