zoukankan      html  css  js  c++  java
  • 安全随笔之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传递给不法分子,甚至在页面写上其他恶意脚本,危害就会无限扩大。

  • 相关阅读:
    前端了解即可:postman(接口测试)的使用
    ES6——TDZ(暂时性死区)
    Centos自动安装openssh及openssl脚本并隐藏版本号
    ELK学习链接
    Centos7 中使用搭建devpi并且使用Supervisor守护进程
    ansible系列
    iperf3网络测试工具
    Centos6.9下PXE安装centos 7
    CentOS 6.9下PXE+Kickstart无人值守安装操作系统
    django学习篇
  • 原文地址:https://www.cnblogs.com/wlyhy/p/14164605.html
Copyright © 2011-2022 走看看