標籤:javascript 安全 ctf
通過了Advanced部分( securityoverridehacking challenge 解題思路匯總——Advanced),下面就進入JavaScript了。總的來說,這個部分比較簡單,因為JavaScript是高度可控的東西。也就是說,安全形度而言,JavaScript是不可信的。
4 Javascript4.1 Login Bypass
這題比較容易讓人想多,逛了下hint,發現很簡單。觀察,首先請求了index.php,然後跳轉到了fail.php,並且伺服器沒有返回302跳轉,所以應當是javascript作了跳轉工作。於是想辦法屏蔽就好了,方法有兩種:1)下載一份index的源碼,把javascript注釋掉,linux下直接wget就可以。2)設定瀏覽器禁用javascript。改完後就可以看到index.php的內容了,直接通過。
4.2 Login Bypass
直接找到按鈕的源碼,<inputtype="button" value="" onclick="javascript:validate(text2.value,‘Admin‘,text1.value,‘75Vd346h‘)">。密碼都告訴你了,照著填就好了。
4.3 Login Bypass
進入頁面,會彈出對話方塊要求輸入密碼。直接找到源碼
<span style="font-size:14px;">var password= 'test';password=prompt('Please enter the Password!','');if (password=='4D3dchfa') {window.location.href=''+password+'.php';}</span>
輸入對應密碼即可。
4.4 Login Bypass
一樣的套路,換成了一個乘法,計算一下就好。
4.5 Extended Math
將乘法升級成代數式了,不過不管計算多麼複雜,作為程式員都是不需要擔心的,讓代碼去算就好了。直接將題中的代數式拿出來,寫成html即可。
<span style="font-size:14px;"><script language="JavaScript"type="text/javascript">var pass1= '451';var pass2= '502181';var pass3= pass1*pass2;var pass4= pass3-71088;var pass5= pass4%1472;alert(pass5+'175205');</script></span>
4.6 Potentially ‘Evil’ Scripting
觀察指令碼,發現有兩次驗證。如果第二次通過了,就會跳到666.php,然後返回404。於是嘗試第一次通過,第二次錯誤,就成功了。沒太懂這題什麼意思。
4.7 Login Bypass MD5 Style
使用MD5進行了加密,網上搜一個解密網站解密一下就可以了。對於弱秘鑰的雜湊解密現在基本還是不難了,不過如果是一個複雜秘鑰的話,解密的成功率就不一定了,尤其是使用了更進階的雜湊演算法。因此,Hash基本還是算安全的,只要秘鑰足夠複雜。
4.8 JavaScript with 448-bit Blowfish encryption
觀察源碼,發現提交後調用了password_submit這個方法。在decipher.js中找到這個方法,同時也找到了key。這題大致是說,“碰到加密不要怕,會有逗逼把密碼告訴你的”。
4.9 JavaScript with live encryption/decryption
這次用了SHA1加密,不過弱秘鑰還是可以解密出來的。同時,也嘗試了一下直接修改驗證邏輯的方法,但是行不通,不知道是怎麼回事,也許做保護了?不過總而言之,在用戶端的任何保護基本都是無效的,因為攻擊者可以很隨意的閱讀並修改。
PS:即時解密的動態效果非常酷炫
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
securityoverridehacking challenge 解題思路匯總——JavaScript