今天我回彰化阿嬤家
看到綠油油的稻田,騎腳踏車涼風吹拂以及蟬鳴聲嘰嘰叫,落日相伴
有種周杰倫-稻香MV的即視感,覺得幸福
這篇文是我回程在火車上顛頗生出來的
區間車車廂微晃寫的我頭都暈
今天我們要解的題目是
Can you break into this super secure portal? https://jupiter.challenges.picoctf.org/problem/37821/ (link) or http://jupiter.challenges.picoctf.org:37821
Never trust the client
一打開就有個登入頁面
我密碼打123tty,隨便打都行
他會彈出一個密碼錯誤的通知
老方法,右鍵查看原始碼,要謹記在心喔
<html>
<head>
<title>Secure Login Portal</title>
</head>
<body bgcolor=blue>
<!-- standard MD5 implementation -->
<script type="text/javascript" src="md5.js"></script>
<script type="text/javascript">
function verify() {
checkpass = document.getElementById("pass").value;
split = 4;
if (checkpass.substring(0, split) == 'pico') {
if (checkpass.substring(split*6, split*7) == 'a3c8') {
if (checkpass.substring(split, split*2) == 'CTF{') {
if (checkpass.substring(split*4, split*5) == 'ts_p') {
if (checkpass.substring(split*3, split*4) == 'lien') {
if (checkpass.substring(split*5, split*6) == 'lz_1') {
if (checkpass.substring(split*2, split*3) == 'no_c') {
if (checkpass.substring(split*7, split*8) == '9}') {
alert("Password Verified")
}
}
}
}
}
}
}
}
else {
alert("Incorrect password");
}
}
</script>
<div style="position:relative; padding:5px;top:50px; left:38%; width:350px; height:140px; background-color:yellow">
<div style="text-align:center">
<p>This is the secure login portal</p>
<p>Enter valid credentials to proceed</p>
<form action="index.html" method="post">
<input type="password" id="pass" size="8" />
<br/>
<input type="submit" value="verify" onclick="verify(); return false;" />
</form>
</div>
</div>
</body>
</html>
這扣是用前端 JavaScript寫的,他把順序排錯了
我們把他重組排回來
我說他打亂是指 (0,split)--->pico
(6,7)--->a3c8
可以理解成第0,1位置字串是pico
第6,7位置字串是a3c8
所以我們要做的就是
找出0~1, 1~2, 2~3 以此類推,重組出原來的字串
有2個解法,可以手動重組或者寫 python
好啦,我有點累了
100分題再次解鎖
晚安