XSS - 漏洞

我需要的爱就在我的心里,其他人只是让我记得那份早已存在于内心的爱,一个去谈恋爱的人就像一个水槽里面有水,这个水就是你爱自己的程度,我爱你是因为我跟你在一起我的样子,就是你把我激发起来你让我变得更好了,但是前提是我也很爱我自己

真相不重要,结果是怎样才最重要。死不死不是别人说了算的,要看你自己愿不愿意。-----大上海2012

跨站脚本漏洞概述:

跨站脚本漏洞类型及测试流程:

1、在目标站点上找到输入点,比如查询接口,留言板等;

2、输入一组 特殊字符 + 唯一识别字符,点击提交后,查看返回得源码,是否有做对应的处理;或者看提交的数据是否有被过滤掉;

3、通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行 js 的条件 (构造闭合)

4、提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;

TIPS:

1.一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS

2.由于后台可能存在过滤措施,构造的 js 可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器);

3.通过变化不同的 script 尝试绕过后台过滤机制;

反射型XSS(get&post)的原理分析:

从反射型的XSS (get)弹窗开始认识xss漏洞;如果表单限制了长度,有时候可以在 F12 查看元素 把长度改掉;get 的XSS漏洞利用起来是比较容易的。

存储型XSS原理分析:

存储型xss是会被存到数据库的,而反射型不会存放到数据库;危害性会更加大因为是存到到了数据库 或者 配置文件中的;

Dom型XSS原理分析:

XSS纯前端的操作,会在表单获取输入的字符;还有一个 XSS-S 这个是在 url 获取输入的字符;

  XSS的危害-获取cookie 的原理

    get、post;;如何获取 cookie ,攻击者搭建xss平台手机cookie;

    GET型XSS利用:获取cookie,GET型的参数是在 URL 里面的

    1.用户访问 XSS 页面,触发脚本,服务端返回 带恶意JS 的页面

    2.用户执行脚本,发送窃取数据 cookie 给攻击者后台,

    3.攻击者伪造用户登录,造成破坏

    POST型XSS利用:

    1.Requset伪造页面,触发表单

    2.页面 JS 自动 POST 表单数据,触发XSS

    3.执行 JS ,窃取cookie;;;当用户访问我们的表单后就等于攻击完成,访问表单是因为表单有恶意代码,恶意代码就是 docment.cookie 这样获取用户的cookie;这个表单帮用户请求了一个请求这个表单就是存在XSS漏洞的页面 去提交以个js恶意代码 这个恶意代码就是获取本地的 cookie  发送给我的攻击者的xss后台; ;post的这样漏洞就是要自己搭建一个表单页面自动提交页面;让用户访问;

  XSS危害-XSS进行钓鱼原理

    用jis写一个src访问xss后台的一个页面 页面会弹出来需要你登录才能查看,然后我们这个链接在重定向另一个代码保存刚刚的用户和密码;

    <script src="http://ip/xxx/xxx/xxx/xxx.html"></script>

    

  XSS危害-XSS获取键盘记录原理

    跨域情况 端口 子域名 协议 不同都是跨域;;

    跨域 - 同源策略:为了安全考虑,所有浏览器都约定了 同源策略,同源策略规定,两个不同域名之间不能使用 JS 进行交互操作;比如:x.com 域名下的 JS 并不能操作 y.com域名下的对象;

    如果想要跨域操作,需要管理员进行特殊的配置;

    Tips:下面这些标签跨域加载资源是不受同源策略限制的。

    <script src="">  // JS,加载到本地执行

    <img src="">    // 图片

    <link href="">   // css

    <iframe src="">  // 任意资源

    如果没有同源策略 攻击者向 A 发送一个恶意链接 urlb:www.盗取你的cookie.com (这个链接嵌入很多恶意的 JS 代码)这个代码可以直接盗取你的淘宝cookie 这样子的话 不同xss 也不同其他漏洞,这样子只要发一个代码恶意JS 的代码就可以读取 cookie ,这样子的话前端就乱了,所以所有浏览器都有同源策略;

    event.keyCode 方法 用来获取用户键盘的方法 然后可以调用异步POST请求发送到后台 

    ajxs 默认是不可以跨域的;;大概------------ 

    

    header("Access-Control-Allow-Origin:*");  加了一个这样的东西就可以了;;

  

    XSS盲打原理:

      盲打主要说的是一种场景;盲打的话 在前端显示不了的,输入后  后台保存了下来 然后在后台执行了;如果我们输入了一段恶意代码获取cookie,当后台管理员登录的时候就会获取它的cookie;

      XSS的过滤和绕过

      XSS输出在 hrep 和 js 中的案例分析

      XSS常见防范措施

百度 OWASP 有一些相关学习的东西;;;

XSS是一种发生在 Web 前端的漏洞,所以其危害的对象也主要是前端用户。

XSS漏洞可以用来进行钓鱼攻击、前端 js 挖矿、用户 cookie 获取,甚至可以结合浏览器自身漏洞对用户进行远程控制等;

XSS大概攻击流程:略

跨站脚本漏洞常见类型:危害:存储型 > 反射型 > DOM型

反射型:交互的数据一般不会被存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等;

存储型:交互得数据会被存在在数据库里面,永久性存储,一般出现在留言板,注册等页面;

DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出得时候产生得问题,一次性也属于反射型;

XSS漏洞得主要原因是程序对 输入 和 输出得控制不够严格,导致 精心构造 得脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害;

XSS 绕过 - 过滤 - 转换

1.前端限制绕过,直接抓包重放,或者修改HTML 前端代码;

2.大小写,比如:<SCRIPT>aLeRT(111)</sCRIpt>

3.拼凑:<scri<script>pt>alert(111)<scri<script>pt>

4.使用注释进行干扰:<scri<!--test-->pt>alert(111)</sc<!--test-->ript>

XSS 绕过 - 过滤 - 编码

后台过滤了特殊字符,比如<script> 标签,当该标签可以被各种编码,后台不一定会过滤,当浏览器对该编码进行识别时,会翻译成正常的标签,从而执行;

使用编码时 需要注意编码在输出点是否会被正常识别和翻译;;

alert('xss') 进行URL编码 可以执行吗?

alert%28%27xss%27%29  并不会执行,因为这些属性标签并不会正常解析这些编码;;

但可以进行 HTML 编码就可以了

XSS绕过的方法有很多,取决于思路和对前端技术的掌握程度;;

<ScRipT>alert(111)</ScRipT>

<img src= x onerror="alert(aaa)">

XSS还是比较灵活的,主要看自己够不够风骚;

XSS  ---  htmlspecialchars 是一个 php 的函数 默认对  “  过滤不对  ‘  guolv

XSS 常见防范措施:输入做过滤,输出做转义;

 过滤::比如输入手机号,那么只允许输入手机格式的数字

转义:所有输出到前端的数据根据输出点进行转义,比如输出到 html 中进行 html 实体转义,输入到 JS 就进行 JS 转义;

 XSS之hrep:a 标签 href :javascript:alert(111) 有可能有输出;href 做输出,一般 href是做超链接的,所以在输入的时候只允许 http https 才允许在这里输出;

XSS之JS :如何去构造闭合 把前面的变量闭合掉 

<script>

  $dd='x' </script> <script>alert(‘xss’)</script>

在中间 加入一个 </script> 去闭合前面的 <script>

如果进行了HTML实体编码,虽然解决XSS的问题,但是实体编码后,在JS里面不会进行翻译,所以在JS的输出点应该使用 \ 对特殊字符进行转义;

学习所用;写得乱七八糟;觉得自己看回来都有点难看懂;

猜你喜欢

转载自www.cnblogs.com/H-hy/p/11531086.html