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

Webug4.0靶场通关笔记19- 第24关邮箱轰炸

目录

第24关 邮箱轰炸

1.配置环境

2.打开靶场

3.源码分析

4.邮箱轰炸

(1)注册界面bp抓包

(2)发送到intruder

(3)配置position

(4)配置payload

(5)开始轰炸

5.防范措施


第24关 邮箱轰炸

本文通过《webug4靶场第24关 邮箱轰炸》来进行邮箱轰炸攻击渗透实战。

邮箱轰炸是一种网络攻击手段,攻击者利用特殊的软件或工具,向目标邮箱发送大量的电子邮件,从而使目标邮箱服务器不堪重负,导致系统瘫痪或影响用户正常使用邮箱。通常邮箱注册界面都会向其发送邮件,邮箱轰炸攻击主要是利用网站注册功能不对邮箱真实性验证(验证码)和同一机器请求频次验证(验证码发送间隔)造成的漏洞,实现利用网站邮件服务对其他目标邮箱发动轰炸。

  • 攻击者通常会使用邮件群发软件或脚本,这些工具可以自动生成大量的邮件,并以较高甚至极高的频率发送到目标邮箱。邮件的内容可能是随机的,也可能包含恶意信息。有些攻击还会利用邮件服务器的脆弱性,绕过验证机制,进一步增加攻击的强度。

1.配置环境

本靶场要求php版本号大于5.4,需要将靶场的PHP服务版本更新,以phpstudy为例,具体操作方法为“网站-管理-php版本-选择php5.4以上的版本”,具体如下所示。

2.打开靶场

打开webug4靶场,进入第24关邮箱轰炸,完整UR如下所示L。

http://192.168.71.1/webug4/control/auth_cross/email.php

进入24关后是一个会员登录的页面,需要输入用户名和密码,猜测是邮件的登录页面。 

3.源码分析

然后我们找到24关卡对应的源码对其进行代码审计,具体如下所示。

<?phprequire_once "../../common/common.php";
require_once("../email.class.php");if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_POST['username'])) {if (!empty($_POST['username'])) {$email_addr = $_POST['username'];$smtpServer="smtp.126.com";$smtpServerPort="25";$smtpUserMail="webug226@126.com";$mailTo=$email_addr;$user="webug226";$mailPwd="wangai123";$mailTitle="hello world";$mailContent='<h1>测试邮件</h1>';$mailType="HTML";// true表示是否身份验证$smtp=new \smtp($smtpServer,$smtpServerPort,true,$user,$mailPwd);// 是否显示调试信息$smtp->debug=false;// 返回 bool$state=$smtp->sendmail($mailTo,$smtpUserMail,$mailTitle,$mailContent,$mailType);}
}require_once TPMELATE."/email.html";

接下来对如上代码进行详细的注释,具体效果如下所示。

// 检查是否提交了username参数
if (isset($_POST['username'])) {// 检查username参数是否非空if (!empty($_POST['username'])) {// 获取用户输入的邮箱地址(未做任何验证)$email_addr = $_POST['username'];// SMTP服务器配置(硬编码敏感信息)$smtpServer="smtp.126.com";       // SMTP服务器地址$smtpServerPort="25";              // SMTP端口$smtpUserMail="webug226@126.com";  // 发件邮箱(暴露在代码中)$mailTo=$email_addr;               // 收件人(用户输入直接使用)$user="webug226";                  // SMTP用户名(硬编码)$mailPwd="wangai123";              // SMTP密码(明文硬编码,严重安全问题)$mailTitle="hello world";          // 邮件标题$mailContent='<h1>测试邮件</h1>';  // 邮件内容$mailType="HTML";                  // 邮件类型// 创建SMTP实例(开启认证)$smtp=new \smtp($smtpServer,$smtpServerPort,true,$user,$mailPwd);$smtp->debug=false;  // 关闭调试信息// 发送邮件(无频率限制)$state=$smtp->sendmail($mailTo,$smtpUserMail,$mailTitle,$mailContent,$mailType);}
}

 如上所示,确实没有对注册用户的邮件等参数进行过滤,比如说如下语句

$email_addr = $_POST['username'];

另外就是关于发送邮件的账户信息要配置正确,否则无法成功发送邮件

邮箱轰炸攻击存在的原因如下所示。

  • 无收件人验证:直接使用用户输入的username作为收件地址,未验证是否为合法邮箱格式

  • 无发送频率限制:可无限次触发邮件发送

  • 敏感信息硬编码:SMTP账号密码明文存储在代码中

  • 无CAPTCHA验证:缺少人机验证机制

4.邮箱轰炸

(1)注册界面bp抓包

如下所示输入注册邮箱和密码后点击注册,使用bp抓包

(2)发送到intruder

(3)配置position

如下所示配置为sniper模式,清空所有参数

(4)配置payload

配置为Null Payloads模式,由于是示例这里只轰炸十次,故而生成次数添加10,之后选择攻击

(5)开始轰炸

如下所示轰炸了10次,当然这里只是举个例子,实际上要求邮箱服务器配置正确真正可以发送邮件才可以,不过我们的目的是掌握暴力轰炸的原理,故而这一关卡做到此程度即可。

 

5.防范措施

  • 使用邮件过滤系统:大多数邮箱服务提供商都提供了一定程度的邮件过滤功能,可以设置规则来过滤掉来自特定发件人、包含特定关键词或具有异常特征的邮件。用户也可以安装第三方的邮件过滤软件,进一步增强过滤效果。
  • 限制邮件接收频率:一些邮箱服务器可以设置限制,例如每分钟或每小时允许接收的最大邮件数量。这样可以防止短时间内大量邮件的涌入,减轻服务器的负担。
  • 提高安全意识:用户要保持警惕,不随意在不可信的网站上留下自己的邮箱地址,避免成为攻击目标。同时,对于来源不明的邮件要谨慎处理,不要轻易点击邮件中的链接或下载附件。
  • 及时更新邮箱系统和相关软件:软件开发者会不断修复系统漏_洞,用户及时更新邮箱系统和相关软件,能够确保系统具有最新的安全防护功能,降低被攻击的风险。
http://www.xdnf.cn/news/319285.html

相关文章:

  • 《Python星球日记》 第42天:综合练习与数学建模
  • MVCC机制
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.3 动态报表生成(Jupyter Notebook/ReportLab)
  • 面试题 03.06 动物收容所
  • 如何高效实现「LeetCode25. K 个一组翻转链表」?Java 详细解决方案
  • SENSE2020BSI sCMOS科学级相机主要参数及应用场景
  • Azure OpenAI 聊天功能全解析:Java 开发者指南
  • 本地部署 MySQL + Qwen3-1.5B + Flask + Dify 工作流
  • 滑动窗口——长度最小子数组
  • var、let、const的区别
  • 高并发内存池(一):项目简介+定长内存池的实现
  • ACE-Step - 20秒生成4分钟完整歌曲,音乐界的Stable Diffusion,支持50系显卡 本地一键整合包下载
  • MySQL 8.0 OCP(1Z0-908)英文题库(1-10)
  • PyTorch常用命令(可快速上手PyTorch的核心功能,涵盖从数据预处理到模型训练的全流程)
  • 【RabbitMQ可靠性原理】
  • 亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比
  • YOLOv8的Python基础--函数篇2
  • WordPress:Locoy.php火车头采集
  • 【HTTP】《HTTP 全原理解析:从请求到响应的奇妙之旅》
  • 【MongoDB篇】MongoDB的副本集操作!
  • 数据清洗-电商双11美妆数据分析(二)
  • 5G赋能农业物联网:智能化种植的新纪元
  • JavaWeb:MySQL进阶
  • 趣味编程:梦幻万花筒
  • DBa作业
  • MCP认证全解析:从零到微软认证专家
  • (eNSP)策略路由实验配置
  • Selenium Web自动化测试学习笔记(二)--八大元素定位
  • 详细剖析传输层协议(TCP和UDP)
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机(C++)