寫在前面

今年終於有時間 (?) 參加 AIS3 了

最後的 final exam 也拿了一個還算可以的成績,
就把我解掉的題目寫個筆記吧

最後名次以及盤解題畫面


Web 部分

感覺這次 Web 的部分比 pre-exam 還要簡單一點

1 分題

看原始碼後會找到一個叫做 db.js 的檔案

1
2
3
db = [
{username: "admin", password: "36d3e1bc65f8b67935ae60f542abef3e55c5bbbd547854966400cc4f022566cb"}
];

然後前面的 js 有說這是 sha256 ,就拿去線上加解密的網頁,就會得到 admin 的密碼了 !@#$%^&*()_+

2 分題

這題我想了比較久一點,一開始看 js 的時候不知道為什麼看著 ret 想到的是老鼠 ( 我承認我累了 )

觀察了一下 login.php 的部分,會看到他是用 json 去判斷的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
include "db.php";

session_start();

function success()
{
echo json_encode(array("ret"=> "1", "msg" => "Success"));
exit();
}

function err($s, $hint = "")
{
if ($hint)
echo json_encode(array("ret"=> "0", "msg" => $s, "hint" => $hint));
else
echo json_encode(array("ret"=> "0", "msg" => $s));
exit();
}

function check_form($data)
{
return is_array($data) && isset($data["username"]) && isset($data["password"]);
}

if ($_SERVER["REQUEST_METHOD"] === "POST")
{
$data = json_decode(file_get_contents("php://input"), true);
if (check_form($data))
{
// $db is defined in db.php
foreach ($db as $user)
{
if($data["username"] == $user["username"] && $data["password"] == $user["password"])
{
$_SESSION["login"] = true;
$_SESSION["level"] = 2;
$_SESSION["username"] = $user["username"];
success();
break;
}
}
err("Username or Password error");
}
else
err("Invalid form", "Don't know what to do next? Get the source of login.php via sendding GET request to this page");
}
else
{
echo "Don't know what to do next?</br></br> Read source of <code>login.php</code> here: </br>";
show_source(__FILE__);
}
?>

總之,修改傳送出去的資料,原本會是 { "username" : "admin", "password" : "password"}

改成 { "username" : "admin", "password" : true}

你就可以成功以 admin 的身分登入了

3 分題

感覺 AIS3 很喜歡這招 XD

/?p=php://filter/convert.base64-encode/resource=index

拿去 base64 decode 之後,會得到 index.php 的原始碼
發現會對一些特殊單字做過濾,像是 flagselectunion 之類的

結果這題只要改成

/?p=php://filter/convert.base64-encode/resource=%66lag

就可以得到 flag.php 的原始碼了,我覺得 pre-exam 的麻煩多了 XDD


Misc 部分

1 分題

打開 misc1.txt 會發現 begin 644 quiz 的文字
或是拿去 file 一下就會發現他是 Uuencoding ,於是拿去線上 decode 網站
然後你會得到一個壓縮檔,解壓縮兩次可以得到兩張圖

根據題目 Throw the ball to the pokemon!
將兩張圖疊在一起,調高對比度就可以看見 flag 了

2 分題

把題目給的 skype.apk 拿去反組譯,根據題目說明 What is the IP address where the malware sends data?
搜尋一下 address 這個單字就會得到 IP 了

3 分題

這題超通靈的 (誤)

首先你要先把 lime.dump 用 volatility 掛起來,看有哪些奇怪的 process
會得到題是說跟網頁有關

再根據題目 What is a suspicious string in the Android memory dump (18 characters including English letters and punctuation)?
你會得到看到有個奇怪的 domain name ,算算長度剛剛好 18 個字

不用懷疑,就是他,我當初為什麼要懷疑我自己呢 QQ
這題我當下沒有解出來,是最後跟老師求證了一下答案,確定是這樣沒有錯 QQ

ais3{stealyourmoney.com}


Misc + Crypto 部分

1 分題

根據題目敘述 What is the email account of the facebook user?
把檔案下載下來直接 grep 關鍵字,我個人是搜尋 @facebook.com 啦

總之,就會得到 user 的 FB 帳號了


寫在後面

剩下的題目有些真的來不及看啊 QQ
後來拿了名次扣除掉助教隊伍後是全區第二北區第二,感謝隊友!

這幾天真的滿好玩的,各種有趣的主題,
也吃了人生第一次的鼎泰豐!還有第一次的永康街冰沙!XD
可是幾乎天天通勤好累啊 QwQ
整個人的身體差點出狀況,還好這幾天有睡飽,比較好一點了

感謝隊友跟助教願意讓我一直問一些笨問題
感謝 TDoH 給我一個多的便當跟飲料,會給我食物的都是神!
感謝天大地大台科大讓我得到快龍 XD
感謝網路組提供的超快網路,一排一條光纖耶,有錢真好 QQ
對了 wifi 密碼超宅 XDD
感謝這一個禮拜以來每一個講師,當學生真的好幸福啊

題外,終於看見 Charles Yang 本人惹 XDDD

2016-08-29

⬆︎TOP