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