安全随笔之xss攻击

XSS攻击

什么是xss攻击

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容 

 

xss攻击的分类

从攻击代码的工作方式可以分为三个类型:
(1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
(2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

 

DOM型与反射型(非持久型)区别

 DOM型不经过服务器处理;反射型,持久型都经过服务器处理;持久型会把脚本落在数据库,造成更大危害;

 

利用dvwa演示xss攻击弹窗cookie

进入dvwa首页,设置 DVWA Security 等级为low

 

 

 

1. 反射型演示

选中反射型XSS,页面上输入test,点击提交查看页面展示,发现页面url变成 http://xxx.xxx.xxx.xxx/dvwa/vulnerabilities/xss_r/?name=test# 如图:

 

 

 可以猜测是依据url中给的参数做出了展示,那么开始演示XSS攻击,让浏览器展示当前登录用户的cookie;

第一步是准备js脚本:

<script>alert(document.cookie)</script>

第二步将url中的test,换成我们的脚本内容,刷新页面

 

 

 第三步查看是否弹出cookie

 

 

 

至此,low等级的xss攻击完成

2. 持久型演示

注意:测完持久型xss攻击,请reset db

选中持久型XSS

 

 

第一步是准备js脚本:

<script>alert(document.cookie)</script>

第二步,将脚本字符输入到message或者name中

 

 

此时发现name框的脚本内容不全,继续第三步

第三步,在html中将name的input框的输入长度改成足够大,这里我们改成50

 

 

 

 第四步,将脚本内容填入name的input框,点击提交;提交之后发现弹出了cookie

 

 

 

第五步,logout后重新登录,进入持久型XSS页面,发现还会一直弹cookie,这是因为已经把脚本写在了数据库中,每次打开这个页面都会触发脚本;所以持久型危害极大;

注意:测完持久型xss攻击,请reset db

 

3. DOM型演示

选中DOM型XSS

 

第一步是准备js脚本:

<script>alert(document.cookie)</script>

 

 

 第二步,选择english之后选择select,查看url,发现是 http://xxx.xxx.xxx.xxx/dvwa/vulnerabilities/xss_d/?default=English,如下图

 

 

第三步,将english替换成脚本,刷新url,发现弹出了cookie如图:

 

 总结

上面的演示都是基于low等级,不同等级注入脚本也不会一样,也不是所有网页都存在注入漏洞,主要是能看出注入的危害,如果执行的不是弹窗,而是将本机的cookie传递给不法分子,甚至在页面写上其他恶意脚本,危害就会无限扩大。

 

posted @ 2020-12-20 19:15  云烟三渺  阅读(180)  评论(0编辑  收藏  举报