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

DVWA靶场之十六:未验证的重定向漏洞(Open HTTP Redirect)

DVWA靶场之十六:未验证的重定向漏洞(Open HTTP Redirect)


当 Web 应用程序接受不受信任的输入时,可能会发生未经验证的重定向和转发,这可能导致 Web 应用程序将请求重定向到包含在不受信任输入中的 URL。通过将不受信任的 URL 输入修改为恶意网站,攻击者可以成功发起网络钓鱼诈骗并窃取用户凭据。

如上所述,这种攻击的常见用途是创建一个 URL,该 URL 最初指向真实网站,然后重定向受害者到攻击者控制的网站。该网站可能是目标登录页面的克隆版本以窃取凭据,也可能是请求信用卡信息以支付目标网站上的服务费用,或者只是一个充满广告的垃圾页面。

目标:

重定向页面,将用户从 DVWA 网站移出或移至网站上与预期不同的页面。


1. Low:直接重定向

<?phpif (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {header ("location: " . $_GET['redirect']);exit;
}http_response_code (500);
?>
<p>Missing redirect target.</p>
<?php
exit;
?>

redirect 参数作为 location的值。可以重定向到任何网站:
比如127.0.0.1/vulnerabilities/open_redirect/source/low.php?redirect=https://www.baidu.com
就可以重定向到百度


2. Medium:过滤了协议名

<?phpif (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {if (preg_match ("/http:\/\/|https:\/\//i", $_GET['redirect'])) {http_response_code (500);?><p>Absolute URLs not allowed.</p><?phpexit;} else {header ("location: " . $_GET['redirect']);exit;}
}http_response_code (500);
?>
<p>Missing redirect target.</p>
<?php
exit;
?>

意义不大,去掉协议名字即可。
比如127.0.0.1/vulnerabilities/open_redirect/source/medium.php?redirect=//www.baidu.com


3. High:必须包含子串

<?phpif (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {if (strpos($_GET['redirect'], "info.php") !== false) {header ("location: " . $_GET['redirect']);exit;} else {http_response_code (500);?><p>You can only redirect to the info page.</p><?phpexit;}
}http_response_code (500);
?>
<p>Missing redirect target.</p>
<?php
exit;
?>

只允许重定向到包含 “info.php” 的路径
要简洁地绕过此限制,只需附加一个无效参数即可。原URL中的 info.php 会被新参数截断,从而实现跳转:
http://127.0.0.1/vulnerabilities/open_redirect/source/high.php?redirect=https://www.baidu.com?a=info.php


4. impossible 白名单

<?php$target = "";if (array_key_exists ("redirect", $_GET) && is_numeric($_GET['redirect'])) {switch (intval ($_GET['redirect'])) {case 1:$target = "info.php?id=1";break;case 2:$target = "info.php?id=2";break;case 99:$target = "https://digi.ninja";break;}if ($target != "") {header ("location: " . $target);exit;} else {?>Unknown redirect target.<?phpexit;}
}?>
Missing redirect target.

只接受数字参数,完全避免字符串注入。这一等级直接判断目标是 info.php?id=1 或者 info.php?id=2 或者 info.php?id=99,其他一概拒绝。

http://www.dtcms.com/a/457017.html

相关文章:

  • 上海网站建设免费推做网站的软件 简单易学
  • 面部情绪识别数据集的介绍和下载
  • Golang中的HTTP请求凝聚器
  • 网站建设多少钱一平米中铁建设集团门户网登陆
  • Linux shell学习(更新中....)
  • 自动生成API文档与故障排查决策树的NLP应用
  • 手机怎么制作钓鱼网站建设文明网 联盟网站的
  • Rust 的类型自动解引用:隐藏在人体工学设计中的魔法
  • AVX-512深度实现分析:从原理到LLaMA.cpp的性能优化艺术
  • 前端玩转大模型,DeepSeek-R1 蒸馏 Llama 模型的 Bedrock 部署
  • 计算机网络-运输层
  • OSPF协议详解5:实验 - 计时器、度量值与其他高级配置
  • OpenCV(五):鼠标控制
  • Linux中权限系统
  • 网站域名到期后果四川人力资源考试官网二建
  • python爬虫(五) ---- Pyinstaller打包Python程序为exe文件及遇到的问题
  • 沈阳做网站价格自己做网站要学什么
  • 深入浅出ArkTS:HarmonyOS应用开发的现代化语法解析
  • UVa 204 Robot Crash
  • 2025 完整指南:Gemini 2.5 Computer Use 模型 - AI Agent 界面控制的革命性突破
  • 云南网站建设专业品牌网站域名怎么转
  • Vue项目中如何实现表格选中数据的 Excel 导出
  • 【多模态学习】QA7: GRPO算法?KL散度指的是什么?什么叫做长思维连冷启动?模型退火是什么意思?
  • 无人机_鲁棒性
  • 用自己的计算机做服务器建网站海外模板网站有哪些
  • 检测MODBUS通讯连接 (MODBUS POLL)
  • 数据结构(陈越,何钦铭)期末考试
  • 接口测试-Postman的关联
  • 重庆网站建设快忻科技国外h5汇总网站
  • 解决 LÖVE 引擎 liblua.so.5.4 库缺失问题