讓我進去(CTF)

題目鏈接:http://ctf5.shiyanbar.com/web/kzhan.php
開局根據提示,說明要抓包看看內容
這裏寫圖片描述
隨便填入一些數據,抓包發現cookie處有個hash值,以及source,嘗試修改了source得到了如下回顯的後臺代碼。
這裏寫圖片描述
這裏寫圖片描述

主要代碼如下:

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.\n";
            die ("The flag is ". $flag);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }

那麼也就是用戶名必須是admin,而密碼不能爲admin,而且用戶名與密碼與SECRET經過md5加密後與cookie中的hash值(571580b26c65f306376d4f64e53cb5c7)一致;那麼接下來要做的就是揭祕md5了,而secret是15長度的(回顯代碼頭部給的提示),用戶名admin是5長度的;所以代碼中的 加密函數形如hash(SECRET, message)的情況,其中 hash 最常見的就是 md5、hash1。我們可以在不知道$SECRET的情況下推算出另外一個匹配的值;也就是哈希長度擴展攻擊。
那麼目前我們知道的信息是:
1.secrect也就是密文的長度爲15。
2.Md5(serect,”adminadmin”)的哈希。
3.用戶名爲admin。
整理下我們知道的數據:
1.Serrect的長度爲15,再加上第一個admin就是20。
2.哈希值爲571580b26c65f306376d4f64e53cb5c7。
3.data爲第二個admin。
4.add數據爲任意。
利用hashpump網上有教程得到一個新的getmein,抓包寫入即可得到flag
這裏寫圖片描述

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