Web安全之XSS漏洞详解
一、概念
xss 中文名是“跨站脚本攻击”,英文名“Cross Site ”。为了不与网页中层叠样式表(css)混淆,故命名为xss
xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。
常见的危害有:窃取,劫持,钓鱼攻击,蠕虫,ddos等。
xss根据特性和利用方式可以分成三大类,反射性xss 、存储型xss、DOM型xss、
二、反射型xss
非持久化,一般需要欺骗客户去点击构造好的链接才能触发代码。
可以看到这个窗口将我填写的信息写到了浏览器页面中,那这个时候我将信息修改成,可以看到我嵌入的代码被执行了。
这个时候我们将构造好的url发给丽丽
然后开始侦听本地5555端口,在丽丽点击这个连接以后,我们就获取到了丽丽的信息。
三、存储型xss
存储型XSS又名持久型XSS,这种xss漏洞危害极大,因为它可以长久的保存在网页中,每个浏览过此网页的用户都会中招,很多xss蠕虫的爆发都是基于持久型xss,一般在留言板,评论区类位置容易出现此漏洞。
例:下面是一个有浏览板功能的网页,我们将我们的攻击代码留在页面中
这样我们每次访问这个页面都会接到hhh的弹窗,然后我们换一下, ,这样无论是那一个用户进入留言板这个页面,都会把自己的弹到我们的监听窗口上。
三、DOM型xss
关于DOM型xss首先要明白一个问题,一个网页是经过怎么样的步骤显示在浏览器上的?
首先肯定是要向目标服务器发出访问请求,服务器收到请求后,根据我们的请求内容返回网页源码,然后它在我们的浏览器上解析,渲染,最后呈现出一个完整的网页在我们的眼前。DOM型xss与上面两种最大的区别就是,dom型xss漏洞是基于文档对象模型( Model,DOM)的,它不需要经过后端,它是在浏览器解析渲染服务器源码的时候产生的,所以我们在抓包的过程中是看不到dom型xss有关的内容的。
例:我们构造如下url: 查看网页内容如下,如果我们将?hhh替换为相应的xss攻击代码,就会产生相应的效果。
然后我们在抓包工具查看服务器对刚刚请求的回包,我们发现构造的?hhh并没有记录到抓包工具中,证明服务器给我们返回的网页源码并没有出现xss,它是在浏览器渲染执行js的时候出现的,这就是dom型xss和其他两种xss的区别。
四、XSS的
XSS可以插在哪里?