CTF (Cature The Flag) 起源於1996年 Global Hacking Conference
是較量網路安全知識與能力的競賽
CTF 涉及的領域與知識繁多, 隨著資安技術發展的加速
題目也越來越難, 入門門檻越來越高
雖然沒有參賽過, 但有幸聽過有經驗的參賽者分享
才知道台灣這方面挺強的, 也了解到相關知識不但有趣而且重要
在這邊記錄講者提供的3個體驗題目與解題資訊
目標: cature the flag, 也就是要想辦法取得 flag 的值
假設題目放在 10.20.104.3 這台機器
[Q1] yoyoadmin
<?php
highlight_file(__FILE__);
//get ip
$ip = 'unknown';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else if ( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
if ($ip === '127.0.0.1') {
require_once 'flag.php';
echo $flag;
}
else {
echo 'hi normal user';
}
?>
[Q2] test connection
<?php
highlight_file(__FILE__);
$url = isset($_POST['url']) ? $_POST['url'] : "";
if ($url != "" ) {
$pu = parse_url($url);
if (isset($pu["host"]) && isset($pu["scheme"])) {
if ($pu["host"] === "10.20.104.1"
&& ($pu["scheme"] === "http" || $pu["scheme"] === "https")
) {
require("flag.php");
exec("curl