<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soroush Dalili - Computer Security Is My Interest!</title>
	<atom:link href="http://soroush.secproject.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://soroush.secproject.com/blog</link>
	<description>Soroush Dalili&#039;s blog - بلاگ سروش دلیلی</description>
	<lastBuildDate>Tue, 10 Jan 2012 22:54:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Drag and Drop XSS in Firefox by HTML5 (Cross Domain in frames)</title>
		<link>http://soroush.secproject.com/blog/2011/12/drag-and-drop-xss-in-firefox-by-html5-cross-domain-in-frames/</link>
		<comments>http://soroush.secproject.com/blog/2011/12/drag-and-drop-xss-in-firefox-by-html5-cross-domain-in-frames/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 03:23:24 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[My Advisories]]></category>
		<category><![CDATA[Security Articles]]></category>
		<category><![CDATA[drag and drop XSS]]></category>
		<category><![CDATA[Drag Drop HTML5 XSS]]></category>
		<category><![CDATA[Firefox Javascript Protocol Bypass]]></category>
		<category><![CDATA[XSS by Feed Protocol]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=446</guid>
		<description><![CDATA[Bug has been reported/NoScript users are safe First of all, this vulnerability and the related techniques have already been reported to Mozilla on 21st Nov 2011, without having any specific result till the date of this report (issue ID 704354 – works on all the latest versions which support HTML5). I had raised this bug [...]]]></description>
			<content:encoded><![CDATA[<h4 style="text-align: justify;">Bug has been reported/NoScript users are safe</h4>
<p style="text-align: justify;">First of all, this vulnerability and the related techniques have already been reported to Mozilla on 21st Nov 2011, without having any specific result till the date of this report (issue ID 704354 – works on all the latest versions which support HTML5). I had raised this bug as a major issue, but it seems it was not important from Mozilla Firefox point of view and its risk is not high at all.</p>
<p style="text-align: justify;">However, <strong>NoScript can protect the users against it from version 2.2.3</strong> [released about three weeks ago] (<a href="http://noscript.net/changelog">http://noscript.net/changelog</a>) &#8211; thanks to Giorgio Maone for the fast response and quick fix.</p>
<p style="text-align: justify;">As there is already a solution for this issue and its impact is not high, I am going to publish my research results as they belong to 2011!</p>
<h4 style="text-align: justify;">Introduction</h4>
<p style="text-align: justify;">As you may have noticed, most of the modern browsers are recently protecting their users from running unwanted JavaScript by copying and pasting it in the address bar or even by dragging and dropping it into a web page. In this research, I have found a technique to bypass Drag/Drop protection in Mozilla Firefox to run a JavaScript. As a final result, it is possible to drag and drop a hidden JavaScript into a predefined HTML5 box and run the Javascript code. Unfortunately, if you put this page in an IFrame, the Javascript code can be run on the context of the main site that includes the IFrame. For instance, When Facebook opens any URL in a frame, it is possible to run a JavaScript code on Facebook website by drag and drop jacking.</p>
<h4 style="text-align: justify;">The current protection</h4>
<p style="text-align: justify;">In order to understand the Mozilla Firefox protection against JavaScript Drag and Drop, follow these steps:</p>
<p style="text-align: justify;">1- Go to Mozilla Firefox address bar and type &#8220;javascript:alert(1)&#8221; without pressing Enter.</p>
<p style="text-align: justify;">2- Select all the string that you have just typed (&#8220;javascript:alert(1)&#8221; without quote signs).</p>
<p style="text-align: justify;">3- Drag and drop it on a new tab or on the context of the same tab that you currently have. You will not receive any alert message.</p>
<h4 style="text-align: justify;">First bypass method- Letter Capitalization</h4>
<p style="text-align: justify;">Now, in previous steps, capitalize one or more letters in the &#8220;javascript:&#8221; string (for instance &#8220;jAvAscript:&#8221;) and drag/drop it into the page. You should be able to see an alert message as you have bypassed the Mozilla Firefox protection!</p>
<h4 style="text-align: justify;">Second bypass method- XSS by Feed Protocol</h4>
<p style="text-align: justify;">I have also found another interesting protocol in Mozilla Firefox that can lead to running a JavaScript. This protocol can be used as follows to bypass the Mozilla Firefox prevention method:</p>
<p style="text-align: justify;">&#8220;feed:javascript:alert(1)&#8221;</p>
<p style="text-align: justify;">&#8220;feed:feed:feed:javascript:alert(1)&#8221;</p>
<p style="text-align: justify;">&#8220;feed:javascript:javascript:feed:alert(1)&#8221;</p>
<p style="text-align: justify;">&#8220;feed:feed:javascript:javascript:feed:alert(1)&#8221;</p>
<p style="text-align: justify;">&#8221; feed:feed:feed:javascript:alert(1)&#8221;</p>
<h4 style="text-align: justify;">A possible exploitation method – HTML5 drag/drop functionality</h4>
<p style="text-align: justify;">In this step, I had to find a way to use the issue and exploit the system to prove that it can be an important security risk; however, there are two facts that made it a bit difficult:</p>
<p style="text-align: justify;">1- There is no point if we cannot run the JS code on the context of another site.</p>
<p style="text-align: justify;">2- We need the user interaction to d/d a JS code. And it is not easy to deceive the users to d/d a JavaScript code when it is visible.</p>
<p style="text-align: justify;">The first problem has been solved by using HTML5 D/D functionality that I have found from the following URL: &#8220;<a href="http://html5demos.com/drag">http://html5demos.com/drag</a>&#8220;; I found out, if I drag and drop the &#8220;feed:javascript:alert(1)&#8221; to the drop location, the JavaScript will run due to the redirection. And interestingly, if this drop location is inside an IFrame, the main page will be redirected and therefore we can conduct an XSS attack on the context of the main website.</p>
<p style="text-align: justify;">The second problem was also solved by using a hidden &#8220;textarea&#8221; tag that I found during my tests! In Mozilla Firefox, if you select a text with a hidden textarea, all the texts in that hidden textarea will be selected as well.</p>
<p style="text-align: justify;">I have created a proof of concept which can be found in the following link:</p>
<p style="text-align: justify;"><strong>PoC:</strong> <a href="http://soroush.secproject.com/downloadable/demo/FF_DragDrop_XSSHost_simp.html">http://soroush.secproject.com/downloadable/demo/FF_DragDrop_XSSHost_simp.html</a></p>
<h4 style="text-align: justify;">Conclusion</h4>
<p style="text-align: justify;">In this research, I was able to bypass Mozilla Firefox &#8211; Javascript Drag and Drop by using capitalization and Feed protocol. Then I was able to exploit this issue to run a JavaScript code in the context of another website which can accept an external frame by using the HTML5 drag and drop functionality.</p>
<h4 style="text-align: justify;">Future Works</h4>
<p style="text-align: justify;">It is still possible to bypass Mozilla Firefox prevention method by finding another protocol or maybe by using the encoding techniques.</p>
<p style="text-align: justify;">If someone drags and drops a JavaScript into a page with &#8220;chrome://&#8221; protocol, it can lead to a local code execution; however, this protocol is highly protected by Mozilla Firefox and I was not able to find a way to make it possible. As a PoC, drag and drop the following Javascript code into the &#8220;chrome://global/content/config.js&#8221; page to run the local Windows Calculator:</p>
<p style="text-align: justify;"><em>&#8220;feed:jAvAscript:file=Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);file.initWithPath(&#8216;c:\\windows\\system32\\calc.exe&#8217;);process=Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);process.init(file);process.run(true,[],0);void(0);&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2011/12/drag-and-drop-xss-in-firefox-by-html5-cross-domain-in-frames/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;Advisories&#8221; has been updated</title>
		<link>http://soroush.secproject.com/blog/2011/05/advisories-has-been-updated/</link>
		<comments>http://soroush.secproject.com/blog/2011/05/advisories-has-been-updated/#comments</comments>
		<pubDate>Tue, 17 May 2011 20:42:48 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Normal Posts]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=443</guid>
		<description><![CDATA[I am quite busy these days and I cannot finish my articles or even write about the vulnerabilities in details. Moreover, I need to update my “Excel Advanced Search” Add-In to be compatible with Office 2010, and also I need to put my “Secure Text Steganography Techniques by using Markov Chain” in this blog in [...]]]></description>
			<content:encoded><![CDATA[<p>I am quite busy these days and I cannot finish my articles or even write about the vulnerabilities in details. Moreover, I need to update my “<a href="http://soroush.secproject.com/blog/projects/exceladvancedsearchapplication/">Excel Advanced Search</a>” Add-In to be compatible with Office 2010, and also I need to put my “<strong>Secure Text Steganography Techniques by using Markov Chain</strong>” in this blog in near future [this project is actually from summer 2008].</p>
<p>However, I have updated the “<a href="http://soroush.secproject.com/blog/my-advisories/">Advisories</a>” section with my new reported issues in <strong>Some Mozilla Products</strong>, <strong>IIS</strong>, and <strong>Adobe Reader/Acrobat</strong>.</p>
<p>I hope I can find more free time soon :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2011/05/advisories-has-been-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash ExternalInterface.call() JavaScript Injection – can make the websites vulnerable to XSS</title>
		<link>http://soroush.secproject.com/blog/2011/03/flash-externalinterface-call-javascript-injection-%e2%80%93-can-make-the-websites-vulnerable-to-xss/</link>
		<comments>http://soroush.secproject.com/blog/2011/03/flash-externalinterface-call-javascript-injection-%e2%80%93-can-make-the-websites-vulnerable-to-xss/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 22:11:10 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[ExternalInterface]]></category>
		<category><![CDATA[ExternalInterface.call]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash xss]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=437</guid>
		<description><![CDATA[Introduction: This post is a result of reading the following useful report: The other reason to beware ExternalInterface.call() (http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html) The issue that I want to discuss here is not something different; however, I want to add something to the current materials. Description: According to the Adobe website, ExternalInterface.call() can accept a JavaScript function name as [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Introduction:</strong></p>
<p style="text-align: justify;">This post is a result of reading the following useful report:</p>
<p style="text-align: justify;"><a href="http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html">The other reason to beware ExternalInterface.call()</a> (<a href="http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html">http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html</a>)</p>
<p style="text-align: justify;">The issue that I want to discuss here is not something different; however, I want to add something to the current materials.</p>
<p style="text-align: justify;"><strong>Description:</strong></p>
<p style="text-align: justify;">According to the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html#call()">Adobe website</a>, ExternalInterface.call() can accept a JavaScript function name as the first argument and a string which would be sent to that JavaScript function. Adobe says “When the call is to a JavaScript function, the ActionScript types are automatically converted into JavaScript types; when the call is to some other ActiveX container, the parameters are encoded in the request message.”. Therefore, in our case, the string would be converted into JavaScript type.</p>
<p style="text-align: justify;">All we are trying to say is that it is possible to inject a specific parameter to an input and change the way of running the JavaScript. I should say it is very similar to the current <a href="http://en.wikipedia.org/wiki/Code_injection">code Injection</a> methods in which we actively change the queries/requests to run whatever we want!</p>
<p style="text-align: justify;"><strong>Proof of Concepts:</strong></p>
<p style="text-align: justify;">I want to explain it by using the example that Adobe has put in its <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html#includeExamplesSummary">document</a>. I have put all the files in the following URL: <a href="http://0me.me/demo/adobeflash/ExternalInterface.call/">http://0me.me/demo/adobeflash/ExternalInterface.call/</a> . Please use Mozilla Firefox if you want to see the same error messages as this PoC.</p>
<p style="text-align: justify;">Now follow these steps:</p>
<p style="text-align: justify;">1- Open this link: <a href="http://0me.me/demo/adobeflash/ExternalInterface.call/demo.html">http://0me.me/demo/adobeflash/ExternalInterface.call/demo.html</a></p>
<p style="text-align: justify;">2- Enter “\&#8221;” in the flash box (dark box) and press the gray button in front of it:</p>
<p><img src="http://soroush.secproject.com/downloadable/images/flashExternalInterface.call/image001.jpg" border="1" alt="" /></p>
<p style="text-align: justify;">3- Now, you should be able to see this error in Error Console:</p>
<p><img src="http://soroush.secproject.com/downloadable/images/flashExternalInterface.call/image002.jpg" border="1" alt="" /></p>
<p style="text-align: justify;">As you can see, we could escape the slash character “\” which was for escaping the double quotation character. Therefore, we are able to inject our JavaScript here now.</p>
<p style="text-align: justify;">4- Now, try to enter “\&#8221;));alert(/XSS/)}catch(e){}//” in that box and press the gray button. You should be able to see the alert message:</p>
<p><img src="http://soroush.secproject.com/downloadable/images/flashExternalInterface.call/image003.jpg" border="1" alt="" /></p>
<p style="text-align: justify;">It is because of the fact that we could complete the main functions and comment the remaining bits which is the method of code injection.</p>
<p style="text-align: justify;">Now, you may think that we need to have a valid JavaScript function in the page or you may even think we always need to have a HTML file. I will explain this in the next section and I will prove that you can execute a JavaScript code even by running the SWF file directly without using any HTML file or JavaScript function.</p>
<p style="text-align: justify;"><strong>Run the flash file directly now:</strong></p>
<p style="text-align: justify;">Now I want to add this bit that we do not need to have a real JavaScript function or a HTML page to execute a JavaScript code under the website content. In this case we only need to put the JavaScript code inside the “catch” section. This is the PoC:</p>
<p style="text-align: justify;">1- Open this URL: <a href="http://0me.me/demo/adobeflash/ExternalInterface.call/ExternalInterfaceExample.swf">http://0me.me/demo/adobeflash/ExternalInterface.call/ExternalInterfaceExample.swf</a></p>
<p style="text-align: justify;">2- Now, enter the following text in the box and press the button:</p>
<p style="text-align: justify;">“\&#8221;));alert(/XSSThis/);}catch(e){alert(/XSSOr/)}//”</p>
<p style="text-align: justify;">3- You should be able to see this message now:</p>
<p><img src="http://soroush.secproject.com/downloadable/images/flashExternalInterface.call/image004.jpg" border="1" alt="" /></p>
<p style="text-align: justify;">As a result, we can do a XSS attack just by opening a vulnerable or malicious/uploaded SWF file.</p>
<p style="text-align: justify;">Note: you may have problem with closing the alert window in some browsers.</p>
<p style="text-align: justify;"><strong>Why can this be a risk?</strong></p>
<p style="text-align: justify;">The websites which are using ExternalInterface.call() with the user’s provided input -without having input validation- can be in risk of having XSS vulnerability. Besides, an attacker can upload a malicious SWF file when a website lets him/her do so in order to make the website vulnerable to XSS attack – in this case I should say, an attacker might be able to do more than a XSS by uploading a SWF file.</p>
<p style="text-align: justify;"><strong>Solution(s):</strong></p>
<p style="text-align: justify;">If we think about this code injection, it is really another input validation issue. It again says that the developers must not trust the provided inputs and we certainly need to have <a href="http://www.owasp.org/index.php/Data_Validation">input validation</a> when we receive the user’s input.</p>
<p style="text-align: justify;">Note: Regarding the <a href="http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html">main reference</a> of this text, Adobe has not accepted this as an issue to fix it fundamentally yet.</p>
<p style="text-align: justify;"><strong>References:</strong></p>
<p>- The other reason to beware ExternalInterface.call() <a href="http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html">http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html</a></p>
<p>- Agora 3.0.0 RC1 Rev.4 XSS Vulnerability <a href="http://jeffchannell.com/Joomla/agora-300-rc1-rev4-xss-vulnerability.html">http://jeffchannell.com/Joomla/agora-300-rc1-rev4-xss-vulnerability.html</a></p>
<p>- Finding Vulnerabilities in Flash Applications <a href="http://www.owasp.org/images/d/d8/OWASP-WASCAppSec2007SanJose_FindingVulnsinFlashApps.ppt">http://www.owasp.org/images/d/d8/OWASP-WASCAppSec2007SanJose_FindingVulnsinFlashApps.ppt</a></p>
<p>- Cross-Site Scripting through Flash in Gmail Based Services <a href="http://blog.watchfire.com/wfblog/2010/03/cross-site-scripting-through-flash-in-gmail-based-services.html">http://blog.watchfire.com/wfblog/2010/03/cross-site-scripting-through-flash-in-gmail-based-services.html</a></p>
<p>- ActionScript 3.0 Language and Components Reference <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html">http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html</a></p>
<p>- Code Injection <a href="http://en.wikipedia.org/wiki/Code_injection">http://en.wikipedia.org/wiki/Code_injection</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2011/03/flash-externalinterface-call-javascript-injection-%e2%80%93-can-make-the-websites-vulnerable-to-xss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Travian Game Patch – Finally!</title>
		<link>http://soroush.secproject.com/blog/2011/01/travian-game-patch-%e2%80%93-finally/</link>
		<comments>http://soroush.secproject.com/blog/2011/01/travian-game-patch-%e2%80%93-finally/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 19:46:21 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[logical flaw]]></category>
		<category><![CDATA[Travian Cross Site Scripting]]></category>
		<category><![CDATA[travian game]]></category>
		<category><![CDATA[travian hack]]></category>
		<category><![CDATA[travian online game]]></category>
		<category><![CDATA[Travian Patch]]></category>
		<category><![CDATA[Travian Security]]></category>
		<category><![CDATA[Travian XSS]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=432</guid>
		<description><![CDATA[Here are the details of recent security patch of Travian game: http://forum.travian.com/showthread.php?p=1728991 There was a Cross Site Scripting (XSS) vulnerability in hero’s mansion rename section. This issue was because of using “id” and “gid” input parameters at the same time. “gid” was used for loading the hero’s mansion, and “id” was used to insert a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Here are the details of recent security patch of Travian game: <a href="http://forum.travian.com/showthread.php?p=1728991">http://forum.travian.com/showthread.php?p=1728991</a></p>
<p style="text-align: justify;">There was a Cross Site Scripting (XSS) vulnerability in hero’s mansion rename section. This issue was because of using “id” and “gid” input parameters at the same time. “gid” was used for loading the hero’s mansion, and “id” was used to insert a Javascript code. You can only see one of them as an input for a single file at the same time. However, I used them together and found this vulnerability:</p>
<p style="text-align: justify;">http://sN.travian.EXT/build.php?gid=37&amp;id=&lt;script here&gt;&amp;rename</p>
<p style="text-align: justify;">As there was a “httponly” flag for the cookies, it was not possible to hijack the sessions. However, we could still use it to do several things. The simplest one was to hijack the saved username/password from the browser. I should say that there was another issue with the login page last year based on which someone could create the Travian cookie and log into the system by the victims session.</p>
<p style="text-align: justify;">There was also another issue with validation of unique email addresses by which a user could create several accounts with the same email address. It was sufficient to enter a “comma” in front of the email address to have a new valid email address. For example someone could register several times without having any problem in receiving the confirmation code by using “test@secproject.com”, “,test@secproject.com” , “,,test@secproject.com”, and so on.</p>
<p style="text-align: justify;">Fortunately these issues have been patched after more than a year. This delay was only because of not having a direct reference to contact as no one/source was publicly responsible for the security issues.</p>
<p style="text-align: justify;">These issues go back to June 2009. Related Link: <a href="http://soroush.secproject.com/blog/2009/11/travian-game-vulnerabilities-in-progress/">http://soroush.secproject.com/blog/2009/11/travian-game-vulnerabilities-in-progress/</a></p>
<p style="text-align: justify;"><strong><span style="color: #008000;"><span style="color: #ff0000;">Note:</span> I highly suggest the providers to put at least one email address in their contact page for normal bugs and security issues. They should also have a process to fix a security issue and give its credit to the finder(s) somehow (by putting the finder’s name in the website news, release notes, …) if they do not want to pay for their vulnerabilities! It is a pain when the security researchers can only see sale and marketing email addresses in many of the providers’ contact pages; and that’s why too many of these security issues are being published before having any patch every day.</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2011/01/travian-game-patch-%e2%80%93-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unrestricted File Download V1.0 – Windows Server</title>
		<link>http://soroush.secproject.com/blog/2011/01/unrestricted_file_download_v1_0/</link>
		<comments>http://soroush.secproject.com/blog/2011/01/unrestricted_file_download_v1_0/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 16:42:48 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Articles]]></category>
		<category><![CDATA[Unrestricted File Download]]></category>
		<category><![CDATA[Unrestricted File Upload]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=421</guid>
		<description><![CDATA[Downlaod the PDF file: http://soroush.secproject.com/downloadable/Unrestricted_File_Download_V1.0.pdf Unrestricted File Download V1.0 – Windows Server I do not want to talk about Insecure Direct Object References without any protection as they are obviously exploitable; Instead, I want to talk about bypassing the protected ones! The problem that I want to explain here is how hard it is to [...]]]></description>
			<content:encoded><![CDATA[<p>Downlaod the PDF file: <a href="http://soroush.secproject.com/downloadable/Unrestricted_File_Download_V1.0.pdf">http://soroush.secproject.com/downloadable/Unrestricted_File_Download_V1.0.pdf</a></p>
<h2>Unrestricted File Download V1.0 – Windows Server</h2>
<p>I do not want to talk about Insecure Direct Object References without any protection as they are obviously exploitable; Instead, I want to talk about bypassing the protected ones! The problem that I want to explain here is how hard it is to protect a system that uses Insecure Direct Object References by using black-list technique.</p>
<p>Whenever penetration testers see a website which accepts a path as an input, they think about these questions:</p>
<p>1- Can I have access to the secret files?</p>
<p>2- Can I do directory traversal?</p>
<p>3- Can I modify another file?</p>
<p>4- Can I do race condition?</p>
<p>And so on.</p>
<p>The answer from programming point of view is: “it depends!”:</p>
<p>1- If they have no protection in-place: “Yes. Yay!”</p>
<p>2- If they are using black-list method: “Think about a bypass now! There should be a way and I just need to find it! Think about encodings, decoding, effective characters, behaviour of the system against special characters, and so on.”</p>
<p>3- If they are using white-list method: “Is there anything on the list that can be misused? Can I stick some of them together to make another character or change the behaviour of the system?”</p>
<p>My point is that there is often a way to bypass a black-list. However, it is not the same for white-list if you do it correctly.</p>
<h2>Let’s Bypass a Blacklist Method</h2>
<p>Now, I want to use a case to show an example of using black-list, and methods of bypass.</p>
<p>Assume we have “www.vulnerable.com/download.aspx” which accepts a file path as an input and reads it and loads it into the output. (To make it easier, “/upload” folder is on the root of the website)</p>
<p>For example: “/download.aspx?file=/upload/document.doc”</p>
<p>Now, if you try the following inputs, you will receive an “access denied” error from the page:</p>
<p>“/download.aspx?file=web.config”</p>
<p>“/download.aspx?file=download.aspx”</p>
<p>“/download.aspx?file=/download.aspx”</p>
<p>But, if you try the following inputs, you will receive a “file not found” error or a blank-page from the page:</p>
<p>“/download.aspx?file=test.doc”</p>
<p>“/download.aspx?file=/upload/../test.txt”</p>
<p>“/download.aspx?file=/test.f0ob4r”</p>
<p>According to the response of the page, obviously, it is using a black-list method.</p>
<p>These are the first things that I can think about (my pre-test-cases):</p>
<p>0- Use uppercase, lowercase, and Unicode in the extension. For ex: “/download.aspx?file=/wEB.CoNfiG” and so on.</p>
<p>1- As you might know, there are some characters after the filename that will be ignored by Windows.  So, I should try something like “/download.aspx?file=/web.config.” or “/download.aspx?file=/web.config&#8230; ..”</p>
<p>2- Using short filename format of the file: “/download.aspx?file=/web~1.con”</p>
<p>3- Using null character: “/download.aspx?file=/web.config%00.txt”</p>
<p>4- Using another extension in the path: “/download.aspx?file=/test.txt/../web.config”</p>
<p>5- Using different space characters in the path: “/download.aspx?file=/web.config%09”, “/download.aspx?file=/web.config%0a”, “/download.aspx?file=/web.config%0b”, “/download.aspx?file=/web.config%0c”, “/download.aspx?file=/web.config%0d”, “/download.aspx?file=/web.config%20”, and so on (similar to 1).</p>
<p>6- Finding a character that is removed by the web application automatically before loading a file to put it in the extension and bypass the black-list protection.</p>
<p> 7- Try alternate data stream to read the files: “/download.aspx?file=/web.config::$Data”</p>
<p>8- Try to use direct path and share path. Ex: “/download.aspx?file=c:\\windows\\win.ini”, “/download.aspx?file=\\?\c:\\windows\\win.ini”, or “/download.aspx?file=\\127.0.0.1\c$\WINDOWS\\win.ini”</p>
<p>9- Try to do directory traversal. Ex: “/download.aspx?file=../../../../../../../../../../../boot.ini”</p>
<p>10- Try other file-system understandable vectors. Ex: “/download.aspx?file=web.config/.”, “/download.aspx?file=web.config\.”, and so on (similar to 1).</p>
<p>And combination of the above solutions to create more complicated test cases!</p>
<p>What do you think? Please let me know if you know any other interesting test case. This is the result:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="60" valign="top">0</td>
<td width="543" valign="top">Successful: Web.config was downloaded</td>
</tr>
<tr>
<td width="60" valign="top">1,2</td>
<td width="543" valign="top">Failed: Show the source code in error message. Error: “Failed to map the path”</td>
</tr>
<tr>
<td width="60" valign="top">3,7,8</td>
<td width="543" valign="top">Failed: Show the source code in error message. Error: “is not a valid virtual path”</td>
</tr>
<tr>
<td width="60" valign="top">4</td>
<td width="543" valign="top">Failed: Access Denied</td>
</tr>
<tr>
<td width="60" valign="top">5</td>
<td width="543" valign="top">Successful: Web.config was downloaded</td>
</tr>
<tr>
<td width="60" valign="top">6</td>
<td width="543" valign="top">Failed: No character was found</td>
</tr>
<tr>
<td width="60" valign="top">9</td>
<td width="543" valign="top">Failed: Show the source code in error message. Error: “Cannot use a leading .. to exit above the top directory”</td>
</tr>
<tr>
<td width="60" valign="top">10</td>
<td width="543" valign="top">Successful: Web.config was downloaded. Some new vectors were found: “?file=\.”, “?file=/.”, “?file=/\./\.”</td>
</tr>
</tbody>
</table>
<p>Each of the above vectors could lead to bypassing the protection. Now, I can tell you that the actual vulnerable source code of the page was:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="603" valign="top">10    string fileName = Request.Params["File"];20    if (ForbidenExtentions.Contains(fileName.Substring(fileName.LastIndexOf(&#8220;.&#8221;))))</p>
<p>30    {</p>
<p>40        HttpContext.Current.Response.Redirect(&#8220;~/CustomError.aspx?msg=ForbidenFileDownload&#8221;);</p>
<p>50    }</p>
<p>60    if((fileName != null) &amp;&amp; (fileName != &#8220;&#8221;))</p>
<p>70    {</p>
<p>80        string strPath = Server.MapPath(&#8220;/&#8221; + fileName);</p>
<p>90        if(System.IO.File.Exists(strPath))</p>
<p>100     { …</td>
</tr>
</tbody>
</table>
<p>And, we can download the confidential files with different vectors (see number 0, 5, and 10 on the table above). Now, an attacker can download the entire website and look for the credentials, hidden files and folders, and find any other vulnerability such as SQL Injection by having the source code.</p>
<h2>Secure and Effective Solution</h2>
<p>Now, what can we do to stop this attack? These are the general solutions:</p>
<p>1- Do not use direct object references when it is possible:</p>
<p>For indirect references, use something random, hard to guess, and meaningless such as GUIDs. You need to implement more functions and invest more time on programming and debugging. However, your achievements are:</p>
<p>1.1- Increasing the Security by using strong random pointers such as GUIDs</p>
<p>1.2- Easier asset managing and have different access controls</p>
<p>2- Force yourself to always use white-lists:</p>
<p>It is very rare that you have to only use a black-list for an input! If an input is random and unpredictable, you may need to redesign that input. Write down the input purpose(s) and do whatever you can to restrict it to a range of characters. Now, think about this range and review the characters one by one. Is there anything in the list which can cause an issue? Do you need to allow any other characters besides [a-zA-Z0-9]? Why? Think about it and follow the best security practices.</p>
<p>Sometimes you need to use blacklist after passing the input from a white-list to have more security. For example: an input can contain a file path. Therefore, we should allow dot “.” character. However, we should not allow any double dot “..” as it can cause directory traversal.</p>
<p>If you are designing a system, look for the vulnerabilities which have been reported on the similar systems in Internet. You may find something that you had not had any knowledge about it before! Do not think that you know everything! Even a semi-colon or colon can compromise your system sometimes.</p>
<p>Talk about your system with the security people; with experts (not script kiddies). You can ask your questions in different security forums to find a clue. Ask them to break your protection to improve the security.</p>
<p><strong>Note 1</strong>: a bad implementation is worse than not having any implementation! When you don’t have any protection, at least you know you do not have anything to protect yourself and the system is unsafe!!! However, when you have an insecure/bad implementation, you think the system is safe enough but it is not, and attackers will find this out – trust me!</p>
<p><strong>Note 2</strong>: If you are putting different inputs next to each other, it is better to pass them at least through a black-list protection after concatenation.</p>
<p>Now, without using an indirect reference, two solutions for our vulnerable example (“www.vulnerable.com/download.aspx”) can be:</p>
<h2>Solution 1 (More White-list – more restricted):</h2>
<p>1- Replace all the “/” with “\” character in order to make the validation easier (for Windows OS).  (Black-List)</p>
<p>2- Replace all the dot characters before the backslash character (“.\”) with a single “\” character in order to make the validation easier. (Black-List)</p>
<p>3- Only accept limited characters as an input: RegEx: (([a-zA-Z0-9][\.]{1})|[a-zA-Z0-9\\])*</p>
<p>4- File name should start with: RegEx: ^[a-zA-Z0-9\\] (White-list)</p>
<p>5- File name should end with: RegEx: [a-zA-Z0-9]$ (White-list)</p>
<p>Then a general ReGex will be (include 3, 4, and 5):  ^([a-zA-Z0-9\\]{1})(([a-zA-Z0-9][\.]{1})|[a-zA-Z0-9\\])*([a-zA-Z0-9])$ (White-list)</p>
<p>6- Find the file extension by using the last dot “.” character of the file. This extension should be in the list of allowed extensions such as “gif”, “jpg”, “doc”, “docx”, “pdf”, “rtf”, and so on. (White-List)</p>
<p><strong>Limitation:</strong> It is not possible to use Unicode or special characters in the file or the directory name.</p>
<h2>Solution 2 (More Black-List – less restricted):</h2>
<p>1- Trim the input to remove unnecessary spaces (Black-List)</p>
<p>2- Replace all the “/” with “\” character in order to make the validation easier (for Windows OS).  (Black-List)</p>
<p>3- Replace all the “..” with “.” character in a loop till you cannot find any “..” anymore. (Black-List)</p>
<p>4- Replace all the space and dot characters before and after the “\” character with a single “\” character in order to make the validation easier. (Black-List)</p>
<p>5- Replace all the “\\” with “\” character in order to make the validation easier. (Black-List)</p>
<p>6- Path should not contain these characters:  RegEx: [^:*?"&lt;&gt;|;~]  &#8211; (for Windows OS)</p>
<p>7- Find the file extension by using the last dot “.” character of the file. This extension should be in the list of allowed extensions such as “gif”, “jpg”, “doc”, “docx”, “pdf”, “rtf”, and so on. (White-List)</p>
<h2>Quick Conclusion:</h2>
<p>Stop using blacklist protections for direct object references if you cannot use indirect ones. Moreover, do not forget to talk to the specialists to implement it correctly.</p>
<h2>Final Words</h2>
<p>Please send me your feedbacks via my email address (irsdl at yahoo dot com) to improve this white-paper. You can use whole or part of this document by putting a reference to the author (Soroush Dalili) and link of the main document.</p>
<p>Currently just by using Google, a lot of vulnerable websites and Content Management Systems (CMS) can be found. If you find an issue based on the content/idea of this paper in a permitted system (such as your website CMS), please report it to its legal authority to patch the system as soon as possible; and I would be thankful if you put a link to this document as a reference in your advisory.</p>
<p>However, please do not use this knowledge against any website or system without having a legal permission. And, I do not accept any responsibility for any usage from this white-paper and its content/idea.</p>
<h2>Reference(s):</h2>
<p>- OWASP, Unrestricted File Upload: <a href="http://www.owasp.org/index.php/Unrestricted_File_Upload">http://www.owasp.org/index.php/Unrestricted_File_Upload</a></p>
<p>&#8212;<br />
Downlaod the PDF file: <a href="http://soroush.secproject.com/downloadable/Unrestricted_File_Download_V1.0.pdf">http://soroush.secproject.com/downloadable/Unrestricted_File_Download_V1.0.pdf</a><br />
&#8212;<br />
Backup link is also available: <a href="http://0me.me/files/soroush.secproject.com/Unrestricted_File_Download_V1.0.pdf" target="_blank">http://0me.me/files/soroush.secproject.com/Unrestricted_File_Download_V1.0.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2011/01/unrestricted_file_download_v1_0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook Redirect Link &#8211; New Bypass Method – “:/” after the domain name</title>
		<link>http://soroush.secproject.com/blog/2010/12/facebook-redirect-link-new-bypass-method-%e2%80%93-%e2%80%9c%e2%80%9d-after-the-domain-name/</link>
		<comments>http://soroush.secproject.com/blog/2010/12/facebook-redirect-link-new-bypass-method-%e2%80%93-%e2%80%9c%e2%80%9d-after-the-domain-name/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 23:36:29 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook url redirect]]></category>
		<category><![CDATA[facebook url redirect flaw]]></category>
		<category><![CDATA[facebook url redirect issue]]></category>
		<category><![CDATA[url redirec bypass in facebook]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=409</guid>
		<description><![CDATA[Facebook is using “facebook.com/l.php?u=THE_External_URL” whenever you click on an external link; and as a result: 1- Your current page won’t be sent via the “Referer” section of the HTTP header. So, it is useful for the privacy. 2- It is possible to stop malicious or unwanted links by using a single point (“l.php” page). Now, [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook is using “facebook.com/l.php?u=THE_External_URL” whenever you click on an external link; and as a result:<br />
1- Your current page won’t be sent via the “Referer” section of the HTTP header. So, it is useful for the privacy.<br />
2- It is possible to stop malicious or unwanted links by using a single point (“l.php” page).</p>
<p>Now, I want to show a flaw in this process in which by clicking on an external URL in Facebook, users can go directly to the destination URL without passing the “facebook.com/l.php” page:</p>
<p><strong>Add a “:/” at the end of the domain name! That’s it!</strong><br />
<strong>PoC:<br />
</strong>Put these links in a comment section on your Facebook page and click on them too see the result (If you know how to work with local proxy tools such as burp suite, you can directly post a link on your wall [not just in comment section] with “:/” in the URL to exploit this flaw):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-  <u><em>https://fp.auburn.edu<strong>:/</strong>oit/show_server_variables.asp</em></u><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-  <u><em>http://soroush.secproject.com:80<strong>:/</strong></em></u></p>
<p><strong>Now, do not click on the links which have &#8220;:/&#8221; after the domain name with or without port number! (18 Dec. 2010)</strong></p>
<p>NOTE: This issue had been reported to Facebook at least twice more than 1 month ago without having any response.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/12/facebook-redirect-link-new-bypass-method-%e2%80%93-%e2%80%9c%e2%80%9d-after-the-domain-name/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JSReg Bypasses &#8211; OLD</title>
		<link>http://soroush.secproject.com/blog/2010/12/jsreg-bypasses-old/</link>
		<comments>http://soroush.secproject.com/blog/2010/12/jsreg-bypasses-old/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 23:11:48 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[Hackvertor]]></category>
		<category><![CDATA[JSReg]]></category>
		<category><![CDATA[Sadbox Bypass]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=404</guid>
		<description><![CDATA[Sorry for the delay as I am/was too busy. Some of my friends had asked me to write about bypassing the JSReg in Hackvertor.com based on a challenge which was on sla.ckers.org forum by Gareth Heyes. However, Gareth Heyes has already written great things about it that I can just refer you to the pages [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Sorry for the delay as I am/was too busy. Some of my friends had asked me to write about bypassing the <a href="http://hackvertor.co.uk/public">JSReg in Hackvertor.com</a> based on a challenge which was on <a href="http://sla.ckers.org/forum/read.php?2,35810">sla.ckers.org forum</a> by <a href="http://www.thespanner.co.uk/">Gareth Heyes</a>.</p>
<p style="text-align: justify;">However, Gareth Heyes has already written great things about it that I can just refer you to the pages (instead of writing it again):</p>
<p style="text-align: justify;"><a href="http://www.thespanner.co.uk/2010/10/31/jsreg-bypasses/">http://www.thespanner.co.uk/2010/10/31/jsreg-bypasses/</a><br />
<a href="http://rgaucher.info/planet/The_Spanner/2010/11/07/Soroush_Dalili_breaks_JSReg_again">http://rgaucher.info/planet/The_Spanner/2010/11/07/Soroush_Dalili_breaks_JSReg_again</a></p>
<p style="text-align: justify;">Gareth is writing these functions alone, so if you have any great idea please let him know. He is a nice and clever guy; so, do not miss your chance to have a great friend!</p>
<p style="text-align: justify;">Again, thanks Gareth.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/12/jsreg-bypasses-old/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Dotty Salty Directory: A Secret Place in NTFS for Secret Files!</title>
		<link>http://soroush.secproject.com/blog/2010/12/a-dotty-salty-directory-a-secret-place-in-ntfs-for-secret-files/</link>
		<comments>http://soroush.secproject.com/blog/2010/12/a-dotty-salty-directory-a-secret-place-in-ntfs-for-secret-files/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 23:36:54 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Articles]]></category>
		<category><![CDATA[$Data]]></category>
		<category><![CDATA[$Index_Allocation]]></category>
		<category><![CDATA[ADS]]></category>
		<category><![CDATA[Alternate Data Stream]]></category>
		<category><![CDATA[Directory by Dot]]></category>
		<category><![CDATA[File By Dot]]></category>
		<category><![CDATA[Hidden Folders in NTFS]]></category>
		<category><![CDATA[Hide files in NTFS]]></category>
		<category><![CDATA[NTFS]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=398</guid>
		<description><![CDATA[I was playing with “::$Index_allocation” and “:$I30:$Index_Allocation” in an NTFS partition to make a directory which ends with some dot characters (“.”) or just includes some dots! The result was a bit interesting and scary! I could find a secret place that important data can be hidden in as well as the malwares! I want [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I was playing with “::$Index_allocation” and “:$I30:$Index_Allocation” in an NTFS partition to make a directory which ends with some dot characters (“.”) or just includes some dots!</p>
<p style="text-align: justify;">The result was a bit interesting and scary! I could find a secret place that important data can be hidden in as well as the malwares! I want to share it with you as some malware writers might already know about this. It is actually another Microsoft weird feature!</p>
<p style="text-align: justify;">In order to create a dotty directory and monitor its behavior, follow me:<br />
1- Open the Windows Command Line (cmd.exe).<br />
2- Go to a test directory.<br />
3.0- Now, insert the following commands and hit Enter:<br />
          md ..::$index_allocation &#8211;&gt; (Tested in Win XP)<br />
          md &#8230;::$index_allocation<br />
          md &#8230;.::$index_allocation<br />
          md irsdl<br />
          md irsdl.::$index_allocation<br />
          md irsdl..::$index_allocation<br />
3.1- You can use “echo test &gt; ” instead of “MD” if you have any problem.<br />
4- Now get a directory list from the folder that you are currently in (by using “Dir”)<br />
5- In order to open each of these directories use “CD DirName::$Index_Allocation”.<br />
          cd &#8230;::$index_allocation<br />
6- You can create some files inside these directories as well.<br />
7- Now use Windows Explorer to see these directories.</p>
<p style="text-align: justify;">The result in <strong>Windows XP:<br />
</strong>- The double dot (“..”) directory is hidden and you cannot see it.<br />
- In windows explorer, directories with a single dot at the end show the files which are inside a directory with same name but without any dot. For example: “irsdl.” shows content of “irsdl”. Directories with a double dot at the end show the files which are inside a directory with the same name but with a single dot. For example: “irsdl..” shows content of “irsdl.”. And so on.<br />
- In Windows Explorer, if you modify a directory with some dots at the end, the modification will be applied on a directory with a dot lesser than the modified directory. Therefore, if you delete “irsdl.”, “irsdl” folder will be deleted instead!<br />
- It is not possible to delete these directories by Windows Explorer. (use “del DirName::$Index_Allocation\*.* &amp; RD DirName::$Index_Allocation” instead)</p>
<p style="text-align: justify;"><strong>In Windows 7:<br />
</strong>- It is very similar to Windows XP. However, if you click on the directories by Windows Explorer, it may show you the content of a specific directory for all the Dotty ones.<br />
- It is not also possible to create a folder with only double dots “..”.<br />
The directories which only contain several dots such as “…”, show the content of their root directory although it is not so real!</p>
<p style="text-align: justify;"><strong>Result:<br />
</strong>Dotty directories are very good places to hide some files and data! It is not easy to be detected and it is not easy to be deleted! As malwares can use the same technique to hide themselves inside an NTFS partition, we should be very careful about it.</p>
<p style="text-align: justify;"><strong>Notes:<br />
</strong>Note 0: I might miss some other interesting points. Please let me know when you find one.<br />
Note 1: some of these directories might be accessible by IIS.<br />
Note 2: I experienced a crash in Windows Explorer in Win7 during playing with these directories.<br />
Note 3: Norton Internet Security 2011 in Win 7 could find and delete the EICAR virus inside these folders. It’s not tested on the other things.<br />
Note 4: Windows XP did checkdisk after a restart.<br />
Note 5: You can do the same to create a file by using “echo &gt; …::$Data”. And delete it by “del *.*”.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/12/a-dotty-salty-directory-a-secret-place-in-ntfs-for-secret-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Skype Privacy Concern: It sends detected numbers + URLs to its server!</title>
		<link>http://soroush.secproject.com/blog/2010/12/skype-privacy-concern-it-sends-detected-numbers-urls-to-its-server/</link>
		<comments>http://soroush.secproject.com/blog/2010/12/skype-privacy-concern-it-sends-detected-numbers-urls-to-its-server/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 12:24:38 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[skype add-on]]></category>
		<category><![CDATA[skype number detection]]></category>
		<category><![CDATA[skype plug-in]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=389</guid>
		<description><![CDATA[Default installation of the Skype installs Skype Add-On (Plug-In) on the browsers. After that, if you browse a page, most of the telephone numbers will be detected. For example: And look at this if you currently have installed a Skype on your computer: 0044-7987654321 Now the problem is: Skype always sends all of these selected [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Default installation of the Skype installs Skype Add-On (Plug-In) on the browsers. After that, if you browse a page, most of the telephone numbers will be detected.</p>
<p style="text-align: justify;">For example:</p>
<p><img style="border: black 1px solid;" src="http://soroush.secproject.com/downloadable/images/skype/skypeprivacy0.png" border="0" alt="" /></p>
<p style="text-align: justify;">And look at this if you currently have installed a Skype on your computer: 0044-7987654321</p>
<p style="text-align: justify;">Now the problem is: Skype always sends all of these selected numbers to one of its servers “pnrws.skype.com”. The worst thing is that they are actually sending the page URL in “referrer” section of the header as well. As a result, Skype server can log all of this information with IP address of the user to track a user or to identify a person. And the question is why Skype needs this information?</p>
<p style="text-align: justify;">For proof of concept, I will put a phone number in a Facebook page and monitor the HTTP requests by using Fiddler. The result has been shown in the following images (if you cannot see the images, your ISP has been blocked by GoDaddy):</p>
<p style="text-align: justify;">Facebook page:</p>
<p><img style="border: black 1px solid;" src="http://soroush.secproject.com/downloadable/images/skype/skypeprivacy1.png" border="1" alt="" width="572" height="250" /></p>
<p style="text-align: justify;">In Fiddler:</p>
<p><img style="border: black 1px solid;" src="http://soroush.secproject.com/downloadable/images/skype/skypeprivacy2.png" border="1" alt="" width="572" height="132" /></p>
<p style="text-align: justify;">As you can see, my Facebook URL and the phone number are sent to the Skype server.</p>
<p style="text-align: justify;">However, I think number detection of Skype Add-On does not send more important information such as credit card numbers!</p>
<p style="text-align: justify;">Now, if you are a bit concern about your privacy, just disable the Skype Add-Ons (Plug-Ins) in your browsers.</p>
<p style="text-align: justify;">Please let us know if you know how Skype uses this information and why Skype needs this information.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/12/skype-privacy-concern-it-sends-detected-numbers-urls-to-its-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Secunia PSI put the privacy in danger</title>
		<link>http://soroush.secproject.com/blog/2010/12/how-secunia-psi-put-the-privacy-in-danger/</link>
		<comments>http://soroush.secproject.com/blog/2010/12/how-secunia-psi-put-the-privacy-in-danger/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 00:10:13 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Secunia PSI]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=378</guid>
		<description><![CDATA[“The Secunia PSI software is a free security tool designed to detect vulnerable and out-dated programs.” Although this application is very useful to secure a computer by keeping it up to date, unfortunately it will put the user’s or company’s privacy in danger. Based on the latest post in the following URL, user’s information “is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">“The Secunia PSI software is a free security tool designed to detect vulnerable and out-dated programs.” Although this application is very useful to secure a computer by keeping it up to date, unfortunately it will put the user’s or company’s privacy in danger. Based on the latest post in the following URL, user’s information “<strong>is never passed on with personally identifiable information (such as the usernames in path names)</strong>”:</p>
<p style="text-align: justify;"><a href="http://secunia.com/community/forum/thread/show/4951/secunia_psi_how_to_delete_information">http://secunia.com/community/forum/thread/show/4951/secunia_psi_how_to_delete_information</a></p>
<p style="text-align: justify;"> I want to prove that the Secunia PSI actually passes the following information which can be treated as a confidential data for a company or causes privacy issues for a real person:</p>
<p style="text-align: justify;">1- <strong>Domain Name</strong> or <strong>Workgroup Name</strong> (“langgourp”)</p>
<p style="text-align: justify;">2- <strong>Computer Name</strong> (“hostname”)</p>
<p style="text-align: justify;">3- <strong>Username</strong> (as there are special files on &#8220;Application Data&#8221; directory such as Mozilla Firefox &#8220;extensions&#8221; folder which should be listed by using Secunia PSI)</p>
<p style="text-align: justify;">4- List of directories of the hard disk which contain some special name with extensions such as &#8220;exe&#8221;, &#8220;dll&#8221;, &#8220;ocx&#8221;, and so on. Some of these directories can contain important information such as the <strong>personal names, project names,</strong> <strong>company names, and so on</strong>.</p>
<p style="text-align: justify;">My proof is very simple and you can do it yourself. As Secunia PSI is based on a Web Application, all of its messages to its server can be monitored by using Fiddler HTTP Debugging Proxy which is absolutely free: <a href="http://www.fiddler2.com/Fiddler2/version.asp">http://www.fiddler2.com/Fiddler2/version.asp</a></p>
<p style="text-align: justify;">Now follow these steps:</p>
<p style="text-align: justify;">- Scanning the computer once by using the Secunia PSI (If it is the first time)</p>
<p style="text-align: justify;">- Close the Secunia PSI application completely from the task manager</p>
<p style="text-align: justify;">- Open Fiddler and go to “Tools”&gt; “Fiddler Options”&gt; “HTTPS”&gt; and select “Decrypt HTTPS traffic” option and click on “OK”</p>
<p style="text-align: justify;">- Now, open Secnuia PSI application again</p>
<p style="text-align: justify;">- Monitor its behavior by using Fiddler. If there isn’t anything on Fiddler, click on “Start Scan” button of Secunia PSI to scan your computer.</p>
<p style="text-align: justify;">- Now, look at the responses from the Secunia server. As you can see there are information of your computer in responses which means the Secunia server has stored them on its database.</p>
<p style="text-align: justify;">For example, look at the following images (if you cannot see the images, your ISP has been blocked by GoDaddy):</p>
<p><img style="border: black 1px solid;" src="http://soroush.secproject.com/downloadable/images/secuniapsi/secuniaPSIprivacy1.png" border="0" alt="" /></p>
<p><img style="border: black 1px solid;" src="http://soroush.secproject.com/downloadable/images/secuniapsi/secuniaPSIprivacy2.png" border="0" alt="" width="587" height="444" /></p>
<p style="text-align: justify;">Now, my recommendation for Secunia is to use a local database on each computer to keep location of files and folders private. The only thing that should be passed to the server is the user ID, signature (hash) of the application, and file or application ID which can be linked to the database in order to find the exact place of that files and/or folders on the local computer. Moreover, I cannot understand why it needs to send the Domain/Workgroup Name and the Computer name to its server (maybe it is used for copyright!).</p>
<p style="text-align: justify;">My suggestion to the users: Currently – 1<sup>st</sup> Dec. 2010 -, using Secunia PSI for those people who want to be anonymous and those companies which want to keep all of their information private is a nightmare and this application should be removed. Ask Secunia to fix this issue.</p>
<p style="text-align: justify;">Hope to see a better Secunia PSI soon.<span id="_marker"> </span></p>
<p style="text-align: justify;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/12/how-secunia-psi-put-the-privacy-in-danger/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cross Site Request Forgery (CSRF) PoC Template (by Javascript)</title>
		<link>http://soroush.secproject.com/blog/2010/09/cross-site-request-forgery-csrf-poc-template-by-javascript/</link>
		<comments>http://soroush.secproject.com/blog/2010/09/cross-site-request-forgery-csrf-poc-template-by-javascript/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 00:34:48 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[Cross Site Request Forgery]]></category>
		<category><![CDATA[CSRF]]></category>
		<category><![CDATA[CSRF Attacks]]></category>
		<category><![CDATA[CSRF PoC]]></category>
		<category><![CDATA[CSRF PoC by JS]]></category>
		<category><![CDATA[CSRF Template]]></category>
		<category><![CDATA[Dynamic CSRF]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Proof of concept]]></category>
		<category><![CDATA[XSRF]]></category>
		<category><![CDATA[XSRF Template]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=370</guid>
		<description><![CDATA[&#8220;Cross Site Request Forgery (CSRF) PoC Template (by Javascript)&#8221; project page has been updated. Please visit the project section: http://soroush.secproject.com/blog/projects/csrf_poc_template/  @ScriptName: Cross Site Request Forgery (CSRF) PoC Template  @Purposes: For any Legal/Ethical Educational Security Researches Only (without any WARRANTY). You can create your own CSRF PoCs by using this template. Author does not accept any [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Cross Site Request Forgery (CSRF) PoC Template (by Javascript)&#8221; project page has been updated.</p>
<p>Please visit the project section:</p>
<p><a href="http://soroush.secproject.com/blog/projects/csrf_poc_template/"><strong>http://soroush.secproject.com/blog/projects/csrf_poc_template/</strong></a> </p>
<hr /><strong>@ScriptName:</strong> Cross Site Request Forgery (CSRF) PoC Template <br />
<strong>@Purposes:</strong> For any Legal/Ethical Educational Security Researches Only (without any WARRANTY). You can create your own CSRF PoCs by using this template. Author does not accept any responsibility or liability for the use or misuse of this code. <br />
<strong>@Website:</strong> <a href="http://soroush.secproject.com/blog/projects/csrf_poc_template/">http://soroush.secproject.com/blog/projects/csrf_poc_template/</a> <br />
<strong>@Code:</strong> <a href="https://code.google.com/p/csrf-poc-template-by-js/">https://code.google.com/p/csrf-poc-template-by-js/</a><br />
<hr />
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/09/cross-site-request-forgery-csrf-poc-template-by-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel Advanced Search Add-In Application</title>
		<link>http://soroush.secproject.com/blog/2010/08/download-excel-advanced-search/</link>
		<comments>http://soroush.secproject.com/blog/2010/08/download-excel-advanced-search/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 20:00:39 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Normal Posts]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Excel Advanced Search Add-In]]></category>
		<category><![CDATA[Excel Advanced Search Application]]></category>
		<category><![CDATA[Excel Regular Expression Add-In]]></category>
		<category><![CDATA[Excel Search by Regular Expression]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[Regular Expression in Excel]]></category>
		<category><![CDATA[Regular Expression Search in Excel]]></category>
		<category><![CDATA[Search and Replace by VBA]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=348</guid>
		<description><![CDATA[This is a handy Excel Add-In which helps you to search/replace inside of your excel files better and simpler. The best thing about this Add-In is that it’s free and open source. Therefore, you can simply customize it for your needs. Unfortunately the built-in search function of Microsoft Excel is too weak, and it cannot [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">This is a handy Excel Add-In which helps you to search/replace inside of your excel files better and simpler. The best thing about this Add-In is that it’s free and open source. Therefore, you can simply customize it for your needs.<br />
Unfortunately the built-in search function of Microsoft Excel is too weak, and it cannot even do the simple tasks. Moreover, other useful search applications that can search/replace inside of Excel files are not free. As a result, I decided to write this tool in order to have more power in Excel searching process.<br />
As this application is quite new, it is not free of fault. Please let me know if you find any issue. I will try to update this section in future in case of having a new release for this application.</p>
<h2 style="text-align: justify;">Features</h2>
<p>- Accepting Regular Expressions<br />
- Supporting Inclusion or Exclusion<br />
- Case sensitivity option<br />
- Selecting unique results option<br />
- Ability to export the results to an Excel file<br />
- Searching in multiple files at the same time<br />
- Detecting opened Workbooks<br />
- Flexible result view<br />
- Having search and replace functionality<br />
- Having Formula Schema option (currently it just have credit card number checker)<br />
- Having logbook to keep the previous keywords<br />
- Capable to search inside of different versions of Excel files</p>
<h2>Download</h2>
<p>Version: 2.6.1<br />
Date: 14 August 2010<br />
Author: Soroush Dalili<br />
Price: Free and open source!<br />
Download Link: <a href="http://soroush.secproject.com/downloadable/excel_search_app.zip">http://soroush.secproject.com/downloadable/excel_search_app.zip<br />
</a>Download Link (Mirror): <a href="http://www.0me.me/files/soroush.secproject.com/excel_search_app.zip" target="_blank">http://www.0me.me/files/soroush.secproject.com/excel_search_app.zip</a><br />
URL: <a href="http://soroush.secproject.com/blog/projects/exceladvancedsearchapplication/" target="_blank">http://soroush.secproject.com/blog/projects/exceladvancedsearchapplication/</a></p>
<h2>Screen Shots:</h2>
<p><img src="http://soroush.secproject.com/downloadable/images/excle_search_app_screenshot1.jpg" border="0" alt="" /></p>
<p><img src="http://soroush.secproject.com/downloadable/images/excle_search_app_screenshot2.jpg" border="0" alt="" /></p>
<p><img src="http://soroush.secproject.com/downloadable/images/excle_search_app_screenshot0.jpg" border="0" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/08/download-excel-advanced-search/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clicking on an offline message link in Yahoo Messenger can lead to Session Hijacking</title>
		<link>http://soroush.secproject.com/blog/2010/08/clicking-on-an-offline-message-link-in-yahoo-messenger-can-lead-to-session-hijacking/</link>
		<comments>http://soroush.secproject.com/blog/2010/08/clicking-on-an-offline-message-link-in-yahoo-messenger-can-lead-to-session-hijacking/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 11:41:59 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Normal Posts]]></category>
		<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[XSS Vulnerability]]></category>
		<category><![CDATA[yahoo messenger session hijacking]]></category>
		<category><![CDATA[yahoo session hijacking]]></category>
		<category><![CDATA[yahoo XSS attack]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=310</guid>
		<description><![CDATA[Clicking on an offline message link in Yahoo Messenger is the same as clicking on an unknown link in your yahoo mail! In fact, Yahoo authenticates you before opening the destination link by using this URL: http://login.yahoo.com/config/reset_cookies_token?.token=[Your Valid Token]&#38;.done=[Destination Link] Note 1: Fortunately, the destination cannot read your valid token by using referrer section of [...]]]></description>
			<content:encoded><![CDATA[<p>Clicking on an offline message link in Yahoo Messenger is the same as clicking on an unknown link in your yahoo mail! In fact, Yahoo authenticates you before opening the destination link by using this URL:<br />
http://login.yahoo.com/config/reset_cookies_token?.token=[Your Valid Token]&amp;.done=[Destination Link]<br />
Note 1: Fortunately, the destination cannot read your valid token by using referrer section of the HTTP request. However, this valid token is stored at your browser’s history, and if you do not sign-out from Yahoo, it can be dangerous.<br />
Now you may ask why clicking on link while you are authenticating in yahoo is dangerous:<br />
There are a lot of Cross Site Scripting (XSS) vulnerabilities in yahoo.com sub-domains.  Some of these XSS attacks are simply detectable by IE8 and/or NoScript (a recommended Mozilla Firefox Add-on), and some aren’t. For example, some of Asian sub-domains of yahoo.com still have SQL Injection. And it is simply possible to cover an XSS attack by using a simple SQL Injection. Moreover, there are some points with different encoded inputs such as UTF-7 or Base64 which can be used to bypass the client-side protections. There are some other types as well that I do not want to talk about them here (I do not want to teach how to find XSS in this post). Some examples: <a href="http://www.xssed.com/search?key=yahoo.com" target="_blank">http://www.xssed.com/search?key=yahoo.com</a></p>
<p><strong>I’m scared. What should I do then?</strong><br />
1- Only open your email in private browsing mode.<br />
2- Do not click on unknown links which are sent to you via offline messages or your email. If you want to open that link, simply open another private browsing and copy/paste that link there to open it. Moreover, you can open those links in a different browser from your open yahoo mail or your default browser.<br />
3- Please always look at the link destination and do not trust its name. For example this link will redirect you to google.com instead of: <a href="http://www.google.com/" target="_blank">http://www.yahoo.com/</a>.</p>
<p><strong>I clicked on a link by mistake. What should I do?</strong><br />
1- If you have knowledge of web security, you can open that link while monitoring your browser by using a local proxy such as Fiddler or BurpSuite. You will see if there is any request to yahoo.com or any other domains then.<br />
2- If you are not sure about what you have done, you MUST change your password immediately. This is the only way that you can protect yourself. Even decreasing the life time of your Yahoo session (Cookie) cannot solve your problem.</p>
<p><strong>What will happen if I don’t care?</strong><br />
1- Attackers will have access to your Yahoo.com account without knowing your password. Fortunately, they cannot change your password directly (they still can use forgot password section).</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/08/clicking-on-an-offline-message-link-in-yahoo-messenger-can-lead-to-session-hijacking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NoScript New Bypass Method by Unicode in ASP</title>
		<link>http://soroush.secproject.com/blog/2010/08/noscript-new-bypass-method-by-unicode-in-asp/</link>
		<comments>http://soroush.secproject.com/blog/2010/08/noscript-new-bypass-method-by-unicode-in-asp/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 23:30:49 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[NoScript bypass in ASP]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=285</guid>
		<description><![CDATA[Update: NoScript v2.0.2.3 does not have this problem anymore. I&#8217;m happier now. tnx to its clever author. As I told Giorgio, all the problems will be reported to him first ;)  Woohoo! You/We/They/or whatever! can still use unicode in some places! NoScript cannot find out special unicode characters which mean something in ASP: PoC: http://Example.com/VulnFile.asp?DangInput=%u2329scr%u0131pt%u232A%u212Fval(&#8216;alert&#8217;%2b&#8217;(&#8220;NoScript Bypass [...]]]></description>
			<content:encoded><![CDATA[<h4><span style="color: #ff0000;">Update: </span></h4>
<h4><span style="color: #339966;">NoScript v2.0.2.3 does not have this problem anymore. I&#8217;m happier now. tnx to its clever author.</span></h4>
<h4><span style="color: #339966;">As I told Giorgio, all the problems will be reported to him first ;) </span></h4>
<p><del datetime="2010-08-21T20:11:38+00:00">Woohoo! You/We/They/or whatever! can still use unicode in some places!</del></p>
<p>NoScript cannot find out special unicode characters which mean something in ASP:</p>
<p>PoC:</p>
<blockquote><p>http://Example.com/VulnFile.asp?DangInput=%u2329scr%u0131pt%u232A%u212Fval(&#8216;alert&#8217;%2b&#8217;(&#8220;NoScript Bypass in ASP!\\nBy Soroush Dalili&#8221;)&#8217;)%u2329/scr%u0131pt%u232A</p></blockquote>
<p>In this example I selected the characters from: <a href="http://rishida.net/scripts/uniview/uniview.php">http://rishida.net/scripts/uniview/uniview.php</a> . For instance:<br />
%u2329 = &lt;<br />
%u0131 = i<br />
%u232A = &gt;<br />
%u212F = e<br />
From Microsoft point of view! Therefore, IE8 XSS prevention can detect this encoding and NoScript cannot detect it.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/08/noscript-new-bypass-method-by-unicode-in-asp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New update &#8211; July 2010</title>
		<link>http://soroush.secproject.com/blog/2010/08/new-update-july-2010/</link>
		<comments>http://soroush.secproject.com/blog/2010/08/new-update-july-2010/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 22:10:12 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Normal Posts]]></category>
		<category><![CDATA[Security Posts]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=280</guid>
		<description><![CDATA[I want to update my blog with this new post: - I learned good things from BlackHat 2010 although I was not there! JavaSnoop is a great tool by the way. Although there are some minor bugs, this tool is solving many of my problems! - Some software are immune against my reports like Fortify! [...]]]></description>
			<content:encoded><![CDATA[<p>I want to update my blog with this new post:<br />
- I learned good things from BlackHat 2010 although I was not there! JavaSnoop is a great tool by the way. Although there are some minor bugs, this tool is solving many of my problems!</p>
<p>- Some software are immune against my reports like Fortify! I&#8217;m not sure if it&#8217;s a good thing for them however! This is not my policy!</p>
<p>- Burpsuite Pro is great and I&#8217;m waiting for the new version after fixing my issues (current version is 1.3.07).</p>
<p>- A dangerous CSRF vulnerability in Secunia Community has been fixed &#8211; in which attacker could change a user’s email address and then use forgot password feature to reset his/her password &#8211; immediately after my report.</p>
<p>More info: <a href="http://secunia.com/community/forum/thread/show/4856/notification_of_fixed_csrf_issue">http://secunia.com/community/forum/thread/show/4856/notification_of_fixed_csrf_issue</a></p>
<p>- CodeProject.com wants to fix a vulnerability that I&#8217;ve reported 1 month ago.</p>
<p>- I&#8217;ve reported a Microsoft .Net security vulnerability to them and I&#8217;ve just received their first &#8220;thank you&#8221; email. Now, I&#8217;m waiting to see what would happen.</p>
<p>- I reported a dangerous CSRF vulnerability in BlogFa.com to them several months ago. Although they&#8217;ve fixed that issue, they did not give me any credit! Should I report their flaws in future? I&#8217;m not so sure!</p>
<p>- I want to release a powerful tool for Steganography in text soon! This is my MSc. project that I&#8217;ve changed it a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/08/new-update-july-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IIS5.1 Directory Authentication Bypass by using &#8220;:$I30:$Index_Allocation&#8221;</title>
		<link>http://soroush.secproject.com/blog/2010/07/iis5-1-directory-authentication-bypass-by-using-i30index_allocation/</link>
		<comments>http://soroush.secproject.com/blog/2010/07/iis5-1-directory-authentication-bypass-by-using-i30index_allocation/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 18:20:32 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[My Advisories]]></category>
		<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[IIS5.1 Authentication Bypass]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=263</guid>
		<description><![CDATA[Download this advisory from: http://soroush.secproject.com/downloadable/IIS5.1_Authentication_Bypass.pdf or: http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf Description: Although IIS5 is very old, finding one is not impossible! Therefore, I want to introduce a technique to bypass the IIS authentication methods on a directory. This vulnerability is because of using Alternate Data Stream to open a protected folder. All of IIS authentication methods can be [...]]]></description>
			<content:encoded><![CDATA[<p>Download this advisory from: <a href="http://soroush.secproject.com/downloadable/IIS5.1_Authentication_Bypass.pdf">http://soroush.secproject.com/downloadable/IIS5.1_Authentication_Bypass.pdf</a><br />
or: <a href="http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf">http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf</a></p>
<p style="text-align: justify;"><strong><em>Description:</em></strong><br />
Although IIS5 is very old, finding one is not impossible! Therefore, I want to introduce a technique to bypass the IIS authentication methods on a directory.<br />
This vulnerability is because of using Alternate Data Stream to open a protected folder.<br />
All of IIS authentication methods can be circumvented. In this technique, we can add a “:$i30:$INDEX_ALLOCATION” to a directory name to bypass the authentication.<br />
In a protected folder such as “AuthNeeded” which includes “secretfile.asp”:<br />
It is possible to run “secretfile.asp” by using:<br />
“/AuthNeeded:$i30:$INDEX_ALLOCATION/secretfile.asp”<br />
Instead of:<br />
“/AuthNeeded/secretfile.asp”</p>
<p style="text-align: justify;"><strong>More description:</strong><br />
<strong><em>Why IIS6 and 7 are not vulnerable:</em></strong><br />
- In these versions, IIS does not accept colon (&#8220;:&#8221;) character from the URL before the querystring.</p>
<p style="text-align: justify;"><strong><em>Why we cannot use &#8220;::$Data&#8221; in IIS 5.1 anymore:</em></strong><br />
- IIS rejects the request if its URL contains &#8220;::$&#8221; (before querystring).</p>
<p style="text-align: justify;"><strong><em>Why IIS5 is vulnerable to &#8220;Directory Authentication Bypass&#8221; by using &#8220;:$I30:$Index_Allocation&#8221;:</em></strong><br />
- IIS only verifies the directory name to check for authentication. Therefore, we can use &#8220;http://victim.com/SecretFolder:$I30:$Index_Allocation/&#8221; instead of &#8220;http://victim.com/SecretFolder&#8221; to bypass the authentication.</p>
<p style="text-align: justify;"><strong><em>Is it possible to bypass something else by using &#8220;:$I30:$Index_Allocation&#8221; on a NTFS partition:</em></strong><br />
- If a checking is only based on the directory name, it can be bypassed by using this method.</p>
<p>Download this advisory from: <a href="http://soroush.secproject.com/downloadable/IIS5.1_Authentication_Bypass.pdf">http://soroush.secproject.com/downloadable/IIS5.1_Authentication_Bypass.pdf</a><br />
or: <a href="http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf">http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf</a><a href="http://0me.me/demo/IIS/IIS5.1_Authentication_Bypass.pdf"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/07/iis5-1-directory-authentication-bypass-by-using-i30index_allocation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Crowzers or Carzy Browsers:</title>
		<link>http://soroush.secproject.com/blog/2010/06/crowzers-or-carzy-browsers/</link>
		<comments>http://soroush.secproject.com/blog/2010/06/crowzers-or-carzy-browsers/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 20:04:14 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[My Advisories]]></category>
		<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[browser address bar lock]]></category>
		<category><![CDATA[browser crash]]></category>
		<category><![CDATA[fix iframe src]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=256</guid>
		<description><![CDATA[I need to translate this word first: Carzy Browsers = Crowsers Now, I want to share some odd behaviour of browsers with you. Let’s make them Crazy!  1- First, we load a URL in an IFrame. Then, we load another website on the same frame. Now, by using “javascript:window.history.go(0)”, it will change the IFrame SRC [...]]]></description>
			<content:encoded><![CDATA[<p>I need to translate this word first:<br />
Carzy Browsers = Crowsers</p>
<p>Now, I want to share some odd behaviour of browsers with you. Let’s make them Crazy!</p>
<p> 1- First, we load a URL in an IFrame. Then, we load another website on the same frame. Now, by using “javascript:window.history.go(0)”, it will change the IFrame SRC to the first URL,  but it keeps the 2nd website on the IFrame!</p>
<p> Try it here: <a href="http://0me.me/demo/crowzers/irsdl/addressbar_halt.html">http://0me.me/demo/crowzers/irsdl/addressbar_halt.html</a></p>
<p> Which Browsers?</p>
<p>  - Mozilla Firefox 3.6.6</p>
<p>  - IE7</p>
<p>  - IE8</p>
<p> 2- We want to lock the address bar in different browsers by using “onblur” and “onload” events with “this.focus()”.</p>
<p> Try it here: <a href="http://0me.me/demo/crowzers/irsdl/iframe_src_fool.html">http://0me.me/demo/crowzers/irsdl/iframe_src_fool.html</a></p>
<p> Which Browsers?</p>
<p>  - Mozilla Firefox 3.6.6</p>
<p>  - IE7</p>
<p>  - IE8</p>
<p>  - Opera 10.54</p>
<p> 3- We want to stop the browsers from working by using infinite loops and so on.</p>
<p> Try it here: <a href="http://0me.me/demo/crowzers/irsdl/halt.html">http://0me.me/demo/crowzers/irsdl/halt.html</a></p>
<p> Which Browsers?</p>
<p>  - Mozilla Firefox 3.6.6: Halted with Mozilla Crash Reporter</p>
<p>  - IE7: Halted</p>
<p>  - IE8: Halted</p>
<p>  - Safari 5: Crashed on “javascriptcore.dll”</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/06/crowzers-or-carzy-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera Browser  &#8211; Scroll Information Leakage</title>
		<link>http://soroush.secproject.com/blog/2010/06/opera-browser-scroll-information-leakage/</link>
		<comments>http://soroush.secproject.com/blog/2010/06/opera-browser-scroll-information-leakage/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 00:10:35 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[My Advisories]]></category>
		<category><![CDATA[Opera Browser Scroll Information Leakage]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=253</guid>
		<description><![CDATA[In Opera Browser, “scrollTop” and “scrollLeft” properties of a frame are accessible through the main page. This may lead to cross site information leakage. Tested Platform: Opera &#60;= 10.54 AND 10.60 RC (Build 3443) Proof of Concept: http://0me.me/demo/opera_scroll_leak/test_scroll.html UPDATE: Why is it really an issue? I think it is one kind of bypassing same origin [...]]]></description>
			<content:encoded><![CDATA[<p>In Opera Browser, “scrollTop” and “scrollLeft” properties of a frame are accessible through the main page. This may lead to cross site information leakage.</p>
<p>Tested Platform: Opera &lt;= 10.54 AND 10.60 RC (Build 3443)</p>
<p>Proof of Concept:</p>
<p><a href="http://0me.me/demo/opera_scroll_leak/test_scroll.html">http://0me.me/demo/opera_scroll_leak/test_scroll.html</a></p>
<p><strong><span style="color: #ff0000;">UPDATE:</span></strong><br />
<strong>Why is it really an issue?</strong></p>
<div>I think it is one kind of bypassing same origin policy. All other famous browsers are secured against this method.</div>
<div>My point is: If you use &#8220;#&#8221; character, you can jump to a certain point of page in case having that Element&#8217;s ID.</div>
<div>It is shown in my proof of concept if you look at:</div>
<div><a href="http://0me.me/demo/opera_scroll_leak/test_scroll.html">http://0me.me/demo/opera_scroll_leak/test_scroll.html</a></div>
<div>I used two URLs with different Element IDs to collect the user&#8217;s information from Facebook:</div>
<div>First, by using the following URL, I can check if the user is logged-in in facebook. It will jump to &#8220;#pass&#8221; point which is only available in case of having login form at the top of the page.</div>
<div><span style="color: #0000ff;"><a href="http://www.facebook.com/Opera?ref=ts&amp;v=wall#pass">http://www.facebook.com/Opera?ref=ts&amp;v=wall#pass</a></span></div>
<div>Then, as there is a SMS subscription on the Opera Browser Wall (http://www.facebook.com/Opera) when you are the fan, I can find it out by using &#8220;#sms_status_subscribe&#8221; in the following URL:</div>
<div><span style="color: #0000ff;"><a href="http://www.facebook.com/Opera?ref=ts&amp;v=wall#sms_status_subscribe">http://www.facebook.com/Opera?ref=ts&amp;v=wall#sms_status_subscribe</a></span></div>
<div><span style="color: #0000ff;"> </span></div>
<div><span style="color: #0000ff;">And that&#8217;s why&#8230;!</span></div>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/06/opera-browser-scroll-information-leakage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Simple DOM Viewer</title>
		<link>http://soroush.secproject.com/blog/2010/05/another-simple-dom-viewer/</link>
		<comments>http://soroush.secproject.com/blog/2010/05/another-simple-dom-viewer/#comments</comments>
		<pubDate>Sun, 30 May 2010 17:49:14 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[Normal Posts]]></category>
		<category><![CDATA[dom object viewer]]></category>
		<category><![CDATA[javascript object content]]></category>
		<category><![CDATA[javascript object viewer]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=251</guid>
		<description><![CDATA[What is inside of an object in my browser? What about you? I’d written a simple JavaScript code in order to list the content of an HTML object. Now, I want to share it with you as well. Although in Mozilla Firefox it is not as good as FireBug, it is very simple and makes [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #000080;">What is inside of an object in my browser? What about you?</span></strong></p>
<p style="text-align: justify;">I’d written a simple JavaScript code in order to list the content of an HTML object. Now, I want to share it with you as well. Although in Mozilla Firefox it is not as good as FireBug, it is very simple and makes life easier! Moreover, it is very useful to get some ideas about misusing the DOMs for example to <strong>bypass the Same Origin Policy</strong> or even for<strong> Steganographic purposes</strong>. However, I do not advise you to use this JS code to steal users’ HTML objects in case of having an XSS in an application as you can write a faster and more reliable code for any special target.</p>
<p style="text-align: justify;">So, it is just a code for playing in order to gain more experience and also having fun with DOMs. Please cite me or let me know if you find anything interesting by using it.</p>
<p><a href="http://0me.me/demo/tricks/DOM_Obj_Browse.html">Click here</a> for the demo and the code: <a href="http://0me.me/demo/tricks/DOM_Obj_Browse.html">http://0me.me/demo/tricks/DOM_Obj_Browse.html</a></p>
<p>Save it, Modify it, Enjoy and please do not forget me ;)</p>
<p dir="rtl">از این کد می توانید به منظور دیدن تمامی objectهای موجود در یک صفحه HTML استفاده کنید. این کد به شما کمک خواهد کرد تا شناخت بیشتری نسبت به اشیا موجود به دست بیاورید. حتی ممکن است بتوانید به کمک آن SOP را بایپس کنید یا از آن برای پیدا کردن ایده برای نهان نگاری (Steganography) استفاده کنید. لطفا در صورت یافتن اطلاعات جالب و یا آسیب پذیری مرورگرهی وب مرا نیز در جریان تحقیق خود قرار دهید. موفق باشید.</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/05/another-simple-dom-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Site URL Hijacking by using Error Object in Mozilla Firefox</title>
		<link>http://soroush.secproject.com/blog/2010/05/cross-site-url-hijacking-by-using-error-object-in-mozilla-firefox/</link>
		<comments>http://soroush.secproject.com/blog/2010/05/cross-site-url-hijacking-by-using-error-object-in-mozilla-firefox/#comments</comments>
		<pubDate>Thu, 27 May 2010 00:04:05 +0000</pubDate>
		<dc:creator>Soroush Dalili</dc:creator>
				<category><![CDATA[My Advisories]]></category>
		<category><![CDATA[Security Articles]]></category>
		<category><![CDATA[Security Posts]]></category>
		<category><![CDATA[Cross Site URL Hijacking]]></category>
		<category><![CDATA[Cross Site URL Hijacking by Error Object]]></category>
		<category><![CDATA[XSUH by error object]]></category>
		<category><![CDATA[XSUH in Mozilla Firefox]]></category>

		<guid isPermaLink="false">http://soroush.secproject.com/blog/?p=245</guid>
		<description><![CDATA[In this paper, I want to represent a method for performing Cross Site URL Hijacking (which we can call XSUH) by using the error object of Mozilla Firefox. XSUH attack is used to steal another website URL. This URL can show the client’s situation on that website, and it can contain confidential parameters such as [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In this paper, I want to represent a method for performing <strong>Cross Site URL Hijacking</strong> (which we can call <strong>XSUH</strong>) by using the<strong> error object</strong> of <strong>Mozilla Firefox</strong>. XSUH attack is used to steal another website URL. This URL can show the client’s situation on that website, and it can contain confidential parameters such as session ID as well. There is another useful article with a similar purpose but with a different approach which is “XSHM” article of CHECKMARX , and reading this article is highly recommended to you as well.<br />
As you might know, scripts error handling in Mozilla Firefox is quite useful for the developers as it can show the exact source of an error with some useful information. Now, this functionality can be misused to divulge the destination URL after the redirections (XSUH attack) which can lead to condition leakage or stealing some important parameters from the URL.</p>
<p><strong>Download From Here</strong>: <a href="http://soroush.secproject.com/downloadable/XSUH_FF_1.pdf">http://soroush.secproject.com/downloadable/XSUH_FF_1.pdf</a><br />
<strong>Or Here</strong>: <a href="http://0me.me/demo/XSUH/XSUH_FF_1.pdf">http://0me.me/demo/XSUH/XSUH_FF_1.pdf</a></p>
<p><strong>Proof of Concept</strong>: <a href="http://0me.me/demo/XSUH/XSUH_demo_firefox_all_in_1.html">http://0me.me/demo/XSUH/XSUH_demo_firefox_all_in_1.html</a></p>
<p>Note:  This technique has been tested on Mozilla Firefox 3.6.3, 3.5.9, 3.6.4build5 (26th May 2010).</p>
]]></content:encoded>
			<wfw:commentRss>http://soroush.secproject.com/blog/2010/05/cross-site-url-hijacking-by-using-error-object-in-mozilla-firefox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.621 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-01-15 22:25:03 -->
<!-- Compression = gzip -->
