第二屆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