拿到靶场二话不说先去扫一波ip地址
图片.png
或者也可以用nmap去跑一波
nmap -sP 192.168.133.0/24
找到对应的ip的时候再用nmap对其进行详细的探测
图片.png然后用dirb或者dirsearch爆破web目录
图片.png
发现有robots.txt,结果是个空的
图片.png
访问development目录
图片.png要求输入用户名密码,作罢,然后还剩下一个8011端口,看了一下没什么用估计是个静态页面,只能继续爆破看看还有什么目录
只找到一个api的目录
图片.png只剩下一个还好用,别的都已经G了
图片.png说“没有参数调用文件传递给我”
- 它给了我们一个提示,我们必须传递一个名为file的参数。
GET方式传递
图片.pngPOST方式传递(显示为空)
图片.png通过POST模式传递进去的文件可以被包含进来
图片.png既然这个地方有文件包含,肯定第一步就是通过伪协议,读源码
图片.png解密获得源码如下
<head>
<title>franks website | simple website browser API</title>
</head>
<?php
$file = $_POST['file'];
include($file);
$get_file = $_GET['file'];
if(isset($get_file)){
echo "<b>********* HACKER DETECTED *********</b>";
echo "<p>YOUR IP IS : ".$_SERVER['REMOTE_ADDR'];
echo "</p><p>WRONG INPUT !!</p>";
break;
}
if(!isset($file)){
echo "<p>No parameter called file passed to me</p>";
echo "<p>* Note : this API don't use json , so send the file name in raw format</p>";
}
/**
else{
echo strcmp($file,"/etc/passwd");
echo strlen($file);
echo strlen("/etc/passwd");
if($file == "/etc/passwd"){
"HACKER DETECTED ..";
}
}
**/
?>
本来想用file_put_contents()函数写文件,结果访问的时候显示not found估计是不行,然后就卡住了一段时间,没别的思路,只能拿出我终极字典爆破。。虽然等的时间长了一点,能跑出来还是比较值的
图片.png发现了一个index.html.bak文件,打开看看,里面有一个hash值
图片.png然后进行解密,得到密码
图片.png然后回到之前需要登录的网页
图片.png 图片.png然后按照提示去找上传界面
图片.png经过测试检测的是文件头和后缀名,所以需要在php文件头上加上对应的文件头
传是传上出去,问题是路径在哪?
现在已知信息如下
- 网站名称:FRANK TOPE
- 上传名字:Frank uploader
- 网页上的第一条信息: I love patterns
尝试了多次许多排列,例如:Frankupload,frankUploads,franksuploads等之后FRANKuploads返回的是200 ok(被深深地恶心到了)
图片.png这个时候只是把shell传上去了,并不能解析这个文件,所以我们需要用到之前用到的文件包含漏洞,把图片中的文件内容给执行出来,反弹shell
图片.png成功建立连接,发现是2.6的内核
图片.png- 可以使用脏牛提权
- 可以使用Linux Kernel 2.6.36-rc8 - 'RDS Protocol' Pri提权
第一种方法:
提权的exp传到目标靶机
执行成功之后,当前目录下生成了一个dirty的文件
图片.png执行之后,会让你输入密码,然后就可以通过ssh登陆进去,
图片.png 图片.png第二种方法
图片.png 图片.png执行成功,就可以获得root权限
图片.png
网友评论