基于DOM的JavaScript注入如何利用以下代码?

问题描述

以下代码可用于基于Dom的XSS注入。

 <script>
    function loadobj(){
        var cc=eval('('+aMess+')');
        document.getElementById('mess').textContent=cc.message;
    }

    if(window.location.hash.indexOf('message')==-1)
        var aMess="({\"message\":\"Hello User!\"})";
    else
        var aMess=location.hash.substr(window.location.hash.indexOf('message=')+8);
    </script>

URL http://www.domxss.com/domxss/01_Basics/04_eval.html。我正在努力了解如何控制aMess参数。

如果我使用http://www.domxss.com/domxss/01_Basics/04_eval.html?aMess=(在此处插入javascript)

例如,脚本不执行也不反映在页面响应中。有人可以指出我正确的方向吗?

解决方法

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" version="3.0" exclude-result-prefixes="soapenv" xmlns:old="random.com/system/i/Modify/1.0/" xmlns:gcp="http://random.com/G/Modify" xmlns:ogcph="http://random.com/2/MsgHeader/" xmlns:hgcph="http://random.com/3/MsgHeader/" xmlns:ogcpb="http://random.com/2/MsgBody/" xmlns:hgcpb="http://random.com/3/MsgBody/"> <xsl:namespace-alias stylesheet-prefix="soapenv" result-prefix="#default"/> <xsl:namespace-alias stylesheet-prefix="old" result-prefix="gcp"/> <xsl:namespace-alias stylesheet-prefix="ogcph" result-prefix="hgcph"/> <xsl:namespace-alias stylesheet-prefix="ogcpb" result-prefix="hgcpb"/> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="*"> <gcp:Modifys> <gcp:Modify> <xsl:copy-of copy-namespaces="no" select="/*:Envelope/*:Body/*:Modifys/*:Modify/*"/> </gcp:Modify> </gcp:Modifys> </xsl:template> </xsl:stylesheet> 指向URL中location.hash之后的位置。 因此,您将不得不使用#来代替https://some/url#message=(insert javascript here)