网络安全从入门到精通 (第六章-3) Dom Based XSS

本文内容:

  • 什么是DOM Based XSS
  • Dom型XSS核心
  • DOM Based XSS

 

1,什么是Dom Based XSS

  Dom Based XSS漏洞是基于文档对象模型的一种漏洞。

  Dom是一个平台,编程语言无关的接口,它允许程序或脚本动态地访问更新文档内容,结构和样式,处理后的结果能够成为现实页面的一部分。

  Dom中有很多对象,其中一些使用户 可以操纵的。如URL,location,refelTer等。

  简单来说:

    Dom的核心就是操纵document,document的核心就是操纵浏览器。

    每个载入浏览器的HTML文档都会成为document对象,所以注意一件事:

    Dom型攻击与服务器基本没关系,document是一个JS语句

    浏览器F12控制台运行的一般都是JS

2,Dom型XSS核心:

  原本 不应该出现XSS的地方,但是经过javascript的操作之后产生XSS。

  举例:

    script=>后端过滤了这个代码

    <script> <= javascript 它会自动的把+号变为为P

    <script> 就变成了<scri+t> 然后这样后端就不认识它了,就会输出,然后经过js的渲染之后,它就产生了漏洞。

3,Dom Baesd XSS

  每个载入浏览器的HTML文档都会成为Document。

  Document对象使我们可以从脚本中HTML页面中的所有元素进行访问。

  Document对象是可以被操作的,它操作室当前网页,可以被JS操作。

  Document对象属性:

    body:提供对<body>元素直接访问,对于定义了框架集的文档,该属性引用最外层的<frameset>。

    cookie:设置或返回与当前文档有关的所有cookie。

    domain:返回当前文档的域名。

    lastModified:返回文档被最后修改的日期和时间,可以通过它判断页面是不是伪静态。

    referer:返回载入当前文档的文档URL。

    title:返回当前文档的标题。

    URL:返回当前文档的URL。

  注意:

    XSS窃取COOKIE其实XSS平台就实用累洗浴Document.cookie这样的东西,来获取页面的Cookie值。

    js是在客户端运行的,是不占用服务器资源的。

    纯静态页面是没有办法做SQL注入的。

    伪静态页面可以做SQL注入,伪静态注入其实与动态注入没有一丝一毫的区别。

  Document对象方法:

    close():关闭用document.open()方法打开的输出流,并显示选定的数据。

    getElementsByid():返回对拥有指定ID的第一个对象的引用。

    getElementsByName():返回带有指定名称的对象集合。

    getElementsByTagName():返回带有指定标签名的对象集合。

    open():打开一个流,以收集来自任何document.write()或documnet.writeln()方法的输出。

    write():向文档写HTML表达式或JavaScript代码。

    writeln():等同于write()方法,不同的是在每个表达式之后写一个换行符。

    docum.write():核心在于输出,它可以接收native编码值。它是js语句,js语句会解码某些编码。

    转码地址:http://tool.oschina.net/encode?type=3

  注意:

    在做XSS的时候,建议使用Burp。

    因为有些时候前端某些地方做了输入限制。  

    反射型XSS,因为js的参与就变成了反射Dom型xss

    存储型XSS,因为js的参与就变成了存储Dom型xss

    js中两种操纵浏览器的两种方法:

      Document:核心控制页面,文档对象模型

      window:核心控制浏览器,浏览器对象模型使javascript有能力与浏览器"对话"

  防御XSS核心:

    说了很多次了,应该可以记住了吧,嘿嘿!!!

    1.过滤参数:单引号、双引号、尖括号

    2.HTML实体编码。

  补充:

    SQL注入防御核心:过滤,不允许输入其他数据,强转数字型,就一点办法没有了。

  

    
    

 

posted @ 2020-04-18 10:36  TheHIde  阅读(253)  评论(0编辑  收藏  举报