软件安全测试-Web安全测试详解-XSS攻击

软件安全测试-Web安全测试详解-XSS攻击_第1张图片

目录

1. XSS攻击

1.1 XSS攻击原理

1.2 XSS能做什么

1.3 XSS三种类型

1.4 XSS三种途径

1.5 XSS测试方法

1.5.1 查看代码

1.5.2 准备测试脚本

1.5.3 自动化测试XSS漏洞

1.5.4 XSS注入常用语句

1.6 XSS漏洞防范h3

1.6.1 对输入和URL参数进行过滤(白名单和黑名单)

1.6.2 HTML实体编码

1.6 3 对输出内容进行编码

1.6.4 浏览器中的XSS过滤器


1. XSS攻击

1.1 XSS攻击原理

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

1.2 XSS能做什么

  • 窃取用户Cookie
  • 后台增删改文章
  • XSS钓鱼攻击
  • 利用XSS漏洞进行传播和修改网页代码
  • XSS蠕虫攻击
  • 网站重定向
  • 获取键盘记录
  • 获取用户信息等

1.3 XSS三种类型

1.反射型XSS

反射型XSS,又称非持久型XSS。也就是攻击相当于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行响应的脚本。

2.存储型XSS

存储型XSS,也就是持久型XSS。攻击者上传的包含恶意js脚本的留言等信息被Web应用程序保存到数据库中,Web应用程序在生成新的页面的时候如果包含了该恶意js脚本,这样会导致所有访问该网页的浏览器解析执行该恶意脚本。这种攻击类型一般常见在博客、论坛等网站中。

3.DOM型XSS

1.4 XSS三种途径

第一种:对普通的用户输入,页面原样输出,用户通过对JSCODE的伪装,经过一些操作就会跳出一个木马界面,取得登录用户的Cookie.


第二种:在代码区里有用户输入的内容
原则就是,代码区中,绝对不应含有用户输入的东西。


第三种:允许用户输入HTML标签的页面。
用户可以提交一些自定义的HTML代码,这种情况是最危险的。因为,IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,又可以使用”/”连接16进制字符串来写,使得过滤变得异常复杂,如下面的四个例子,都可以在IE中运行。

1.5 XSS测试方法

1.5.1 查看代码

查找关键的变量,   客户端将数据传送给Web 服务端一般通过三种方式 Querystring, Form表单,以及cookie.  例如在ASP的程序中,通过Request对象获取客户端的变量

  1. <%

  2. strUserCode = Request.QueryString(“code”);

  3. strUser = Request.Form(“USER”);

  4. strID = Request.Cookies(“ID”);

  5. %>

假如变量没有经过htmlEncode处理, 那么这个变量就存在一个XSS漏洞

 1.5.2 准备测试脚本

  1. "/>

你可能感兴趣的:(计算机基础知识,软件测试知识,笔记,web安全,安全)