第二屆360杯全國大學生信息安全技術大賽部分解題思路(加密解密題)

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

3.gesture.key密鑰文件解密方法

九宮格個點分別對應於0-8這9個數字,然後將連接的路徑轉換爲這9個數字,並按9個數字的16進制對其進行SHA1加密存儲爲gesture.key。

如按順序從0到8的九位原始密碼是

0    1    2

3    4    5

6    7    8

通過SHA1算法對原始密碼000102050403060708進行sha1加密後得到密文是“333d9f31c209ce1217bc165c5baa7307b06bbf87”

安卓九宮格默認得有 4個數的密碼:

4個數的密碼可能個數爲9*8*7*6=3024

5個數的密碼可能個數爲9*8*7*6*5=15120

6個數的密碼可能個數爲9*8*7*6*5*4=60480

7個數的密碼可能個數爲9*8*7*6*5*4*3=181440

8個數的密碼可能個數爲9*8*7*6*5*3*2*1=362880

9個數的密碼可能個數爲9*8*7*6*5*4*3*2*1=362880

一共有985824個可能的密碼。

選手可以自己寫程序用sha1算法加密出這985824個密碼的sha1密文,然後對gesture.key中的sha1密文進行碰撞得到正確密碼。

答案:

gesture.key密文是246a7b3b3bddc73c84d534c4d985d09d0037ae3f

原始密碼是010403000205080706

對應九宮格的劃鎖順序爲

4    1    5

3    2    6

9    8    7

參考文獻:第二屆360杯全國大學生信息安全技術大賽官方解題思路



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章