渗透测试学习 十7、 XSS跨站脚本漏洞详解

 

通常用途:拿cookie进后台,将后台地址一块儿发送过来javascript

特色:挖掘困难,绕过困难 php

 大纲:html

XSS漏洞基础讲解java

XSS漏洞发掘与绕过web

XSS漏洞的综合利用express

XSS漏洞基础讲解浏览器

  XSS介绍:安全

    跨站脚本攻击(Cross Site Scripting),为了避免和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script服务器

代码会被执行,从而达到恶意攻击用户的目的。cookie

  特色:

    能注入恶意代码到用户的客户端浏览器的网页上,从而达到劫持用户会话的目的。

  什么是跨站脚本?

    介绍:跨站脚本(cross-site scripting,XSS)是一种安全攻击,其中,攻击者在看上去来源可靠的连接中恶意嵌入译码。它容许恶意用户将代码注入到网页上,其余用户在观看网页时就会受到影响。这类攻击一般包含了HTML以及用户

端脚本语言。

     XSS脚本示例:    

<html>
<head>xss test</head>
<body>
<script>alert(/xss/)</script>
</body>
</html>

 

    以上代码使用alert函数弹出来一个网页弹框,弹框内容就是/xss/,xss的输入也是能够是html代码,好比能让网站不停地刷新

    <meta http-equiv="refresh" content="0";>

    也能够嵌入其余网页连接

    <iframe src=http://xx.com with=0 height=0></iframe>

  XSS的危害

    窃取Cookies、蠕虫、钓鱼等等。

JavaScript基础知识

  简介:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,普遍用于客户端的脚本语言,最先是在HTML(标准通用标记语言下的一个应用)

网页上使用,用来给HTML网页增长动态功能。

  document对象

      它表明着当前的页面(文档),咱们调用它的write()方法就能向该对象中写入内容,即:document.write(),能够在HTML引用外部js代码<script src=x.js></script>,其中x.js的内容以下:

      document.write("hello xxx");

      在标签、属性、元素这三种地方可能会调用。

  JavaScript变量

    定义变量

      var [变量]

      e.g  var x;  var a=1;  var b="hello";  var c=ture;

  JavaScript流程控制

    if-else控制语句

      e.g 

var a=20; var b=10; if(a>b){ alert("b=20"); } else{ alert("b=10"); }

    switch控制语句

      e.g

var x=10; switch(x){ case 2: alert('1'); break; case 10: alert('10'); break; }

    for循环

      e.g

<script>
for(var i=0;i<100;i++){ alert(1); } </script>

    while循环

      e.g

<script>
var a=0; while(a<100){ alert(1); a++; } </script>

 

JavaScript函数

function x(a,b){ var c=a+b; return c; } var xx=x(1,2); conseole.log(xx);

 

JavaScript事件

  onclick属性,点击事件

  e.g

function x(){ alert(/xss/) } <h1 onclick="x()">hello</h1>

 

XSS分类

  反射型、DOM型、存储型

  反射型

    介绍:XSS反射型攻击,恶意代码并无保存在目标网站,经过引诱用户点击一个连接到目标网站的恶意连接来实施攻击的。

    e.g

http://www.xx.com/src.asp?key="><script>alert(/xss/)</script>

    通常使用的时候是将构造好的URL发送给目标者,诱使其点击连接后触发攻击,可是这种的只能使用一次,非持久化的。

  存储型XSS

    比反射性的XSS更具备威胁性,而且可能影响到web服务器是我自身安全,这种的不须要用户本身点击特定的连接就能够执行,攻击者将恶意代码上传到服务器中,或存储在漏洞服务中,只要浏览器包含有这个恶意代码的问题,就会受到攻击。

  攻击模型

 

XSS漏洞发掘和绕过

  火狐中经常使用的XSS调试插件

     hackbar、firebug、tamper data、live http headers、editor cookie(编辑cookie)

XSS漏洞挖掘:

  挖掘方式:

    手工挖掘、工具挖掘、标签闭合、AWVS

手工挖掘XSS漏洞

  站点:http://www.xx.com/xss.php?id=1

  将payload分别添加到id=1的地方进行测试

  常测试的地方是有输入的地方,文件上传的地方、flash、、

  闭合标签

 1  1 <script>alert(1)</script>
 2  2 "'><script>alert(1)</script>  3  3 <img/src=@onerror=alert(1)/>  4  4 "'><img/src=@onerrer=alert(1)/>  5  5 'omouseover=alert(1) x='
 6  6 "onmouseover=alert(1) x="  7  7 'onmousover=alert(1) x="
 8  8 javascript:alert(1)//  9  9 data:text/html;base64,PHNjcmludD5== 10 10 "';alert(1)// 11 11 </script><script>alert(1)// 12 12 }x:expression(alert(1)) 13 13 alert(1)//

 

 

 

工具挖掘XSS漏洞

  AWVS  netsparke  appscan  burp  xsser

  xsscrapy  bratexssr  OWASP Xemotix

   当插入的代码在标签的中间时,须要闭合标签

  当插入的代码在标签的属性时,e.g  <div value="123"><script>alert(1)</script>">

  要先找到位置,尝试闭合

  在留言的地方通常是找存在存储型的XSS必须挖的地方,在存储型的多个要输入内容的框时,咱们须要对每一个框都进行写入测试,二通常不留弹框的代码,防止管理员发现,通常都是打cookie的代码,

  注意:闭合标签的时候要闭合他加载后的标签,对于文本域的标签加载先后都要闭合</textarea>

  常见的防XSS的代码

1 $x=preg_replace("/script/","",$x); 2 $x=preg_replace("/script/i","",$x); 3 $x=preg_replace("/alert/","",$x); 4 $x=preg_replace("/script/","",$x); 5 这里面,i是表明不区分大小写 6 上述的代码是指将检测到的关键字用空格替换 7 对于区分大小写咱们能够对关键字进大小写的转换 8 对于替换成空格的咱们能够重复覆盖,如:<SCRSCRRTPIPT>他将里面的一个替换成空格后还会剩下一个

 

   XSS绕过限制

    当存在XSS但又有waf或过滤策略时,有如下几种绕过方法:

    一、绕过magic_quotes_gpc

    二、编码绕过

    三、改变大小写

    四、闭合标签

XSS漏洞的综合利用

  在网站上进行测试,通常就是寻找这种post型传递参数,进行交互的地方

  能够看到结果,这里是只接受数字型的参数,因此咱们就无法注入xss语句了,只能寻找其余的地方

  咱们在站内查找的地方输入代码,能够看到他弹框了,说明存在xss漏洞

  这个实验是要用低版本的浏览器进行测试的,在高版本的浏览器中会将这条语句检测出来,直接过滤拦截,报错没法显示。好比Google浏览器

 

 

留言成功后并不会当即显示出什么,可是等咱们登陆到后台的时候,点击待审留言,就会出现弹框,这就是存储型的XSS

   也可使用工具直接跑(BruteXSS)

  他会加载字典进行尝试

  注意:最好选择get类型的方式,若是是post会有很大的可能改变网站排版,致使网站页面扭曲等现象,危害很大;

  由于它是直接留存在服务器里面的,须要网站管理员进行恢复,更严重的可能追究你的刑事责任。

  在他的wordliet文件里面就是他的字典,在跑的时候就是加载的这个文件,里面的语句只能够本身再添加的

 

 

  平台:xss.fbisb.com

  建立一个项目

  填写相关信息

  选择默认模块,此次演示的是盗取管理员的cookie

   以下就时他给出的利用代码

  将XSS代码进行留言

  而后咱们登录管理员,看看审查元素能够发现,他将管理员的cookie发送到那个平台

 

 

   能够看到咱们的项目中已经得到了管理员的cookie

  cookie利用

  此时咱们用火狐的插件

  路径选择根,里面填写的内容就是在平台中给的cookie的内容

 

  而后去访问,登录后的链接,若是仍是登陆不了,九江cookie中的全部信息都添加如下,多添加几个就能够了

 

2019-05-13  23:38:55

相关文章
相关标签/搜索