Document Properties Scheme
location.protocol
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
location.hostname
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
location.pathname
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
location.search
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
previousSibling.nodeValue, document.body.textContent*
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
tagName, nodeName
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
outerHTML
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
innerHTML**, textContent**, nextSibling.nodeValue**, firstChild.nodeValue**, lastChild.nodeValue**
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
location.hash
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
URL, documentURI
protocol://domain/path/page?p= text1 <tag handler=code> text2 # text3
—– x —–
To make it easy to replace one property by another in case of blacklist or something, here we have them grouped by position:
Before
previousSibling.nodeValue, document.body.textContent*
Itself
location.search, tagName, nodeName, outerHTML
After**
textContent, nextSibling.nodeValue, firstChild.nodeValue, lastChild.nodeValue, innerHTML
Hash
location.hash
* comes with source content (body)
** may need to close the injected tag
So when building a location based payload using document properties to avoid filtered chars and/or in filtered sequences (like after on*=), this may help to choose the right ones for the injection.
#hack2learn

本文探讨了如何使用Document属性构建location-based有效载荷,以规避常见的字符过滤和序列注入问题,如'on*'。通过合理选择不同位置的属性,如before、itself和after,可以实现更高效的注入策略。
2349

被折叠的 条评论
为什么被折叠?



