xss攻击详解

XSS 介绍

XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheets,CSS)重名了,所以取名为 XSS。

XSS 攻击,一般是指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。

XSS 危害
窃取用户Cookie,获取用户隐私,盗取用户账号。
劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等。
强制弹出广告页面,刷流量等。
传播跨站脚本蠕虫,网页挂马等。
结合其他漏洞,如 CSRF 漏洞,实施进一步的攻击。

XSS攻击方式

XSS 攻击按是否把攻击数据存进服务器端,攻击行为是否伴随着攻击数据一直存在,可分为 非持久型 XSS 攻击 和 持久型 XSS 攻击 。

XSS 攻击按攻击方式又可分为 反射型 XSS 、 DOM 型 XSS 、 存储型 XSS ,其中 反射型 XSS 和 DOM 型 XSS 算是 非持久型 XSS 攻击,而 存储型 XSS 算是 持久型 XSS 攻击。

反射型 XSS(Reflected XSS)
攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击。

因为这个过程就像一次反射,故称为反射型 XSS。

攻击步骤:

1、攻击构造出特殊的 URL ,其中包含恶意代码。

2、用户被诱导打开带有恶意代码的 URL,服务器端将恶意代码从 URL 中取出当做参数处理,然后返回给用户带有恶意代码的数据。

3、用户浏览器接收到响应解析执行,混在其中的恶意代码也被执行。

4、恶意代码窃取用户敏感数据发送给攻击者,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

反射型 XSS攻击方式如下(构建非法url)

某个网站上,搜索字段,将搜索字段进行替换 <script>alert("xss")</script> 

https://www.kkkk1000.com/xss/Reflected/searchResult.html?kw=%E6%98%8E%E6%9C%9D%E9%82%A3%E4%BA%9B%E4%BA%8B

替换如下:https://www.kkkk1000.com/xss/Reflected/searchResult.html?kw=<script>alert("xss")</script>   如有弹窗出现,则存在反射性xss漏洞,如果将攻击代码换做获取cookie的document.cookie,则用户会被冒充,非常危险

 

 


DOM 型 XSS(DOM-based XSS)
DOM 型 XSS 形成原因是通过修改页面的 DOM 节点形成的 XSS。
DOM 型 XSS 攻击中,取出和执行恶意代码都由浏览器端完成,属于前端自身的安全漏洞。

攻击步骤:

1、攻击者构造出特殊的 URL,其中包含恶意代码。

2、用户被诱导打开带有恶意代码的 URL。

3、用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。

4、恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

举例
下面是一个物流详情的页面,在 URL 上有快递编号这个参数,通过这个参数来获取数据。

https://www.kkkk1000.com/xss/dom/index.html?serialNumber=YT40359134268305

 

因为在源码中可以看到,页面上显示的快递编号,是直接取的 URL 上的参数显示的。所以我们构造这样一个网址:

https://www.kkkk1000.com/xss/dom/index.html?serialNumber=<script>alert("xss")</script>

然后诱导他人点击这个 链接 ),就可以完成一次 DOM 型 XSS 攻击

 

 

存储型 XSS(Stored XSS)
存储型 XSS 跟 反射型 XSS 的区别是:存储型 XSS 的恶意代码存在服务器上,反射型 XSS 的恶意代码存在 URL 里。

存储型 XSS 攻击时恶意脚本会存储在目标服务器上。当浏览器请求数据时,脚本从服务器传回并执行。它是最危险的一种跨站脚本,比反射性 XSS 和 DOM 型 XSS 都更有隐蔽性,因为它不需要用户手动触发。任何允许用户存储数据的 Web 程序都可能存在存储型 XSS 漏洞。若某个页面遭受存储型 XSS 攻击,所有访问该页面的用户都会被 XSS 攻击。

攻击步骤:

1、攻击者把恶意代码提交到目标网站的服务器中。

2、用户打开目标网站,网站服务器端把带有恶意代码的数据取出,当做正常数据返回给用户。

3、用户浏览器接收到响应解析执行,混在其中的恶意代码也被执行。

4、恶意代码窃取用户敏感数据发送给攻击者,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

举例:

这是一个可以评论的文章的页面

https://www.kkkk1000.com/xss/Stored/index.html

 

 

但是,评论的内容是没有处理过的,所以我们如果输入这样的内容:

<script>alert("xss")</script> 同样是可以作为评论的。

我们用这样的内容作为评论后,所有打开这篇文章的用户都会遭到存储型 XSS 攻击。

 

参照文档:https://blog.csdn.net/kali_Ma/article/details/117753171

 

posted @   Rain009  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示