<?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>XSS &#8211; Phocean.net</title>
	<atom:link href="/tag/xss/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Computer Security Blog</description>
	<lastBuildDate>Fri, 24 Feb 2017 21:17:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.10</generator>
	<item>
		<title>BeEF Docker</title>
		<link>/2017/02/24/beef-docker.html</link>
		<pubDate>Fri, 24 Feb 2017 21:17:51 +0000</pubDate>
		<dc:creator><![CDATA[phocean]]></dc:creator>
				<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[BeEF]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Dockerfile]]></category>
		<category><![CDATA[Metasploit]]></category>
		<category><![CDATA[pentest]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://phocean.net/?p=2154</guid>
		<guid isPermaLink="false">http://phocean.net/?p=2154</guid>
		<description><![CDATA[Just a quick update to tell about a new Docker based on the phocean/msf image. https://hub.docker.com/r/phocean/beef/ https://github.com/phocean/dockerfile-beef It provides an image for the BeEF framework for XSS browser exploitation (http://beefproject.com/). Enjoy it!]]></description>
				<content:encoded><![CDATA[<p>Just a quick update to tell about a new Docker based on the phocean/msf image.</p>
<p><a href="https://hub.docker.com/r/phocean/beef/">https://hub.docker.com/r/phocean/beef/</a></p>
<p><a href="https://github.com/phocean/dockerfile-beef">https://github.com/phocean/dockerfile-beef</a></p>
<p>It provides an image for the BeEF framework for XSS browser exploitation (<a href="http://beefproject.com/">http://beefproject.com/</a>).</p>
<p>Enjoy it!</p>
]]></content:encoded>
			</item>
		<item>
		<title>(in)Security of JSONP: CSRF risks</title>
		<link>/2013/10/13/csrf-with-jsonp.html</link>
		<comments>/2013/10/13/csrf-with-jsonp.html#comments</comments>
		<pubDate>Sun, 13 Oct 2013 20:51:49 +0000</pubDate>
		<dc:creator><![CDATA[phocean]]></dc:creator>
				<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[CSRF]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[JSONP]]></category>
		<category><![CDATA[pentest]]></category>
		<category><![CDATA[SOP]]></category>
		<category><![CDATA[web browser]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.phocean.net/?p=1765</guid>
		<guid isPermaLink="false">http://www.phocean.net/?p=1765</guid>
		<description><![CDATA[JSONP vs JSON I had an opportunity to experiment exploiting JSONP in real life. Honestly, I had never heard of it before. JSON is a well known method to serialize data, but what is JSONP? Actually, it is nothing new, but rather a specific use of JSON. In AJAX websites, XMLHttpRequest is used in client-side Javascript...<br><i class="icon-right-hand"></i> <span class="read-more"><a href="/2013/10/13/csrf-with-jsonp.html">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<h2>JSONP vs JSON</h2>
<p>I had an opportunity to experiment exploiting <em>JSONP</em> in real life. Honestly, I had never heard of it before.</p>
<p><em>JSON</em> is a well known method to serialize data, but what is <em>JSONP</em><i>?</i> Actually, it is nothing new, but rather a specific use of <em>JSON</em>.</p>
<p>In <em>AJAX</em> websites, <code>XMLHttpRequest</code> is used in client-side Javascript code to forge <em>HTTP</em> requests, which fetch data from some <em>JSON</em> service.</p>
<p><strong></strong><span style="line-height: 1.714285714; font-size: 1rem;"> For example, following a GUI event (</span><em style="line-height: 1.714285714; font-size: 1rem;">onclick</em><span style="line-height: 1.714285714; font-size: 1rem;">, </span><em style="line-height: 1.714285714; font-size: 1rem;">mouseover</em><span style="line-height: 1.714285714; font-size: 1rem;">, &#8230;), such </span><em style="line-height: 1.714285714; font-size: 1rem;">XHR</em><span style="line-height: 1.714285714; font-size: 1rem;"> code may be executed:</span></p>
<pre>var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        alert(xhr.responseText);
    }
}
xhr.open('GET', 'http://example.com/search.php', true);
xhr.send(null);</pre>
<p>The requested server may answer with XML data, or JSON like here:</p>
<pre>{"id": 1, "name": "Foo", "price": 123}</pre>
<p>However, <em>XHR</em> request is limited to the current domain, due to the <em>SOP</em> (Same Origin Policy) that is enforced on modern browsers. What if it is necessary to retrieve data from another domain?</p>
<p>Here comes <em>JSONP</em> as one of the possible solutions.</p>
<pre><span style="color: #ff0000;"><strong>hello(</strong></span>{"id": 1, "name": "Foo", "price": 123}<span style="color: #ff0000;"><strong>);</strong></span></pre>
<p>As you can see, data is <em>padded</em> (<em>P</em> in <em>JSONP</em>) inside a callback function, which we are going to study.</p>
<h2>How JSONP works</h2>
<p>The trick consists in requesting the <em>JSONP</em> service inside <code>&lt;script&gt;</code> tags, which, by design, are out of the <em>SOP</em> scope.</p>
<p>The call to the <em>JSONP</em> service just defines a <em>callback</em> function name as a parameter. Note that the callback function is included in the same page as the call.</p>
<p>Then, the <em>JSONP</em> service answers with data encapsulated inside the callback function name.  That way, the browser will execute the callback function and pass data as its parameters.</p>
<p>It is confusing to explain and I may have lost you in trying to explain. Hopefully this diagram may clarify this stuff:</p>
<div>
<dl id="attachment_1774">
<dt>
<div id="attachment_1774" style="width: 428px" class="wp-caption aligncenter"><img class="size-full wp-image-1774" alt="XHR vs JSONP" src="/wp-content/uploads/2013/10/jsonp1.png" width="418" height="515" /><p class="wp-caption-text">XHR vs JSONP</p></div>
</dt>
</dl>
</div>
<p><em>Domain1</em> <em>XHR</em> requests to <em>domain2</em> are not allowed. Therefore, the <em>callback</em> trick ensures that data is fetched from <em>domain2</em> while the corresponding code is processed in the context of <em>domain1</em>.</p>
<p>All this way around has a unique goal: have the code to be executed in the same context as the originating page. In other words: bypassing the SOP.</p>
<h2> Security Concerns</h2>
<p>This is not without any security caveats. Someone outlined some very valid points on <a href="http://security.stackexchange.com/a/23439">Stackexchange</a>, and it is well written, so I will just copy and paste what he said about <em>JSONP</em> security:</p>
<blockquote>
<ul>
<li><strong>Requires excessive trust.</strong> Suppose you have a page hosted on <code>a.com</code> and it uses JSONP to access services provided by <code>b.org</code>. This involves placing 100% trust in <code>b.org</code>. If <code>b.org</code> is malicious or buggy, it can subvert the security of the embedding page and all of the <code>a.com</code> origin. This kind of excess trust is dangerous from a security perspective: it makes your application fragile.<br />
To put it another way: JSONP is basically a self-inflicted XSS. Yes, OK, I know it&#8217;s a feature, not a bug, but still&#8230;</li>
<li><strong>CSRF vulnerabilities.</strong> You have to remember to defend against CSRF vulnerabilities, and with JSONP, that gets a bit tricky. Standard advice is to ensure that only POST requests can trigger a side-effect, and to include a CSRF token in all POST requests; but JSONP involves sending a GET request to trigger a side-effect, which ain&#8217;t exactly the cleanest solution you&#8217;ve ever seen. So this means that the host that provides JSONP service needs to remember to check CSRF tokens even on GET requests. Also, it requires a bit of a tricky protocol for the embedding page (<code>a.com</code>) to obtain the proper CSRF token from the JSONP service (<code>b.org</code>). It gets messy.</li>
<li><strong>Causes mixed-content warnings.</strong> Suppose we have a page hosted on <code>https://a.com</code> and it accesses a JSONP service on <code>http://b.org</code>. Then this will inevitably trigger a scary-looking mixed-content warning (since JSONP involving loading a script from <code>http://b.org</code>).</li>
<li><strong>User authentication gets ugly.</strong> If <code>b.org</code> wants to authenticate the user, that gets tricky to do when using JSONP. The embedding page (<code>a.com</code>) needs to first somehow give the user an opportunity to log into <code>b.org</code> in advance, before accessing <code>b.org</code>&#8216;s JSONP service. Both sites need to coordinate.</li>
</ul>
</blockquote>
<p>I would just add that, though it is not perfect, it is at least possible to mitigate CSRF on GET requests by checking the <strong><em>HTTP</em></strong> <strong><em>referer</em></strong> (when possible).</p>
<p>Is this complete? Let me know if you have other suggestions.</p>
<h2>Simple Exploitation</h2>
<p>During a pentest, I had to audit a rather complex application which happened to do some requests to another server in <em>JSONP</em>.</p>
<p>The few following snippets are a simplified representation of the case.</p>
<p>Exploitation code right below may be uploaded to a server controlled by the attacker (who may need some <em>social engineering</em> to get the visitor to reach his page).</p>
<pre>&lt;html&gt;
 &lt;head&gt;
 <span style="color: #339966;"><strong>&lt;script&gt;
 hello = function(data) {
 alert("hello " + data.name);
 }
 &lt;/script&gt;</strong></span>
 &lt;/head&gt;
 &lt;body&gt;
 &lt;h1&gt;JSONP Call&lt;/h1&gt;
 <span style="color: #ff0000;"><strong>&lt;script src="http://domain.com/jsonp.php?jsonp_callback=hello"&gt;&lt;/script&gt;</strong></span>
 &lt;/body&gt;
 &lt;/html&gt;</pre>
<p>So in <span style="color: #ff0000;"><em>red</em></span>, the call to JSONP with the callback function name indicated. In <span style="color: #339966;"><em>green</em></span>, the callback function itself. It is just displaying an alert box containing the fetched JSONP data, but of course it could have malicious features (like cookie stealing).</p>
<p>The JSONP service can be simulated by the following code,  hosted on another server (e.g. the attack target):</p>
<pre>&lt;?php
 header('Cache-Control: no-cache, must-revalidate');
 header('Expires: Mon, 1 Jan 2000 01:00:00 GMT');
 header('Content-type: application/json');
 $data = '{ "name": "world" }';
 <strong>echo $_GET['jsonp_callback'] . '(' . $data . ');';</strong>
?&gt;</pre>
<p>After receiving the <code>&lt;script&gt;</code> call, the function would just return:</p>
<pre>hello({ "name": "world" });</pre>
<p>Which, when received by the browser, would trigger the nice alert box.</p>
<p>&nbsp;</p>
<div id="attachment_1793" style="width: 590px" class="wp-caption aligncenter"><img class="size-medium wp-image-1793" alt="JSONP callback execution" src="/wp-content/uploads/2013/10/CapturFiles_21-580x416.png" width="580" height="416" srcset="/wp-content/uploads/2013/10/CapturFiles_21-580x416.png 580w, /wp-content/uploads/2013/10/CapturFiles_21-624x448.png 624w, /wp-content/uploads/2013/10/CapturFiles_21.png 729w" sizes="(max-width: 580px) 100vw, 580px" /><p class="wp-caption-text">JSONP callback execution</p></div>
<p>The attack sequence may be represented like this:</p>
<div id="attachment_1784" style="width: 432px" class="wp-caption aligncenter"><img class="size-full wp-image-1784" alt="Example of exploitation process of JSONP" src="/wp-content/uploads/2013/10/jsonp-exploit.png" width="422" height="445" /><p class="wp-caption-text">Example of exploitation process of JSONP</p></div>
<p>In other words, the user browser is used as a <em>proxy</em> to make <em>CSRF</em> requests, which should be forbidden.</p>
<h2>So what?</h2>
<p>Exploitation depends on the target application configuration and the capability of the attacker to inject a Javascript call along with the callback function into the victim&#8217;s browser.</p>
<p>In the case I experienced, the <em>JSONP</em> host was not checking the <em>referer</em>. On top of that, it was hosted inside the corporate <em>LAN</em>.</p>
<p>So I was able to have a user visit a page on my server, which would silently make his browser call the <em>JSONP</em> service… and execute the Javascript in turn in the context of my page.</p>
<p>Impacts:</p>
<ul>
<li>hijack of the user session to the server (theft of user cookies),</li>
<li>access to confidential data,</li>
<li>bypass of network filtering and <em>SOP</em> (the browser acts as a proxy),</li>
<li>phishing scenarios (fake forms, redirections, …).</li>
</ul>
<p>Even if the target <em>JSONP</em> server had checked the <em>referer</em>, it would still be vulnerable in case the legitimate calling application would suffer from code injection (<em>XSS</em>).</p>
<h2>Conclusion</h2>
<p>Once the concept of <em>JSONP</em> is clear, it appears to be very simple and powerful to exploit.</p>
<p>As I just discovered this and had to craft the exploitation quickly, I would not conclude definitely on the topic.</p>
<p>Though, it seems that a JSONP service should at least check the <em>referer</em> before processing a call to get to an acceptable security level.</p>
<p>But I am not sure yet of what else could be done to improve the security further. It may be just crappy by design.</p>
<p>Please share if you have a more educated opinion on the topic. And as always, comments and constructive criticisms are welcome. Let me know if something is unclear or incorrect.</p>
<h2>References</h2>
<ul>
<li><a title="JSON vs JSONP" href="http://www.mattlunn.me.uk/blog/2011/10/json-vs-jsonp/">www.mattlunn.me.uk</a></li>
<li><a title="JSONP" href="http://border-labs.fr/?p=21">border-labs.fr</a></li>
<li><a href="http://security.stackexchange.com/a/23439">security.stackexchange.com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>/2013/10/13/csrf-with-jsonp.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pentest of a Wi-Fi network with Cisco NCS</title>
		<link>/2013/10/04/pentest-of-a-wi-fi-network-with-cisco-ncs.html</link>
		<pubDate>Fri, 04 Oct 2013 12:46:56 +0000</pubDate>
		<dc:creator><![CDATA[phocean]]></dc:creator>
				<category><![CDATA[Pentesting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[WCS]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.phocean.net/?p=1750</guid>
		<guid isPermaLink="false">http://www.phocean.net/?p=1750</guid>
		<description><![CDATA[I had a chance to audit this device during a Wi-Fi pentest. Cisco Prime Network Control System is a Wi-Fi controller that allows to manage multiple access points and centralize their configuration: Wi-Fi settings, access control, security, etc. I was surprised how easy it was to compromise this equipment, thanks to default credentials. Of course,...<br><i class="icon-right-hand"></i> <span class="read-more"><a href="/2013/10/04/pentest-of-a-wi-fi-network-with-cisco-ncs.html">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p>I had a chance to audit this device during a Wi-Fi pentest. <em>Cisco Prime Network Control System </em>is a Wi-Fi controller that allows to manage multiple access points and centralize their configuration: Wi-Fi settings, access control, security, etc.</p>
<p>I was surprised how easy it was to compromise this equipment, thanks to default credentials. Of course, Cisco published a patch… however how many network teams would have applied the patch ? Routers, switches, Wi-Fi controllers, especially when they are not part of the core infrastructure, are often dropped and forgotten for years&#8230;</p>
<p>Here is the vendor <a href="http://tools.cisco.com/security/center/mcontent/CiscoSecurityAdvisory/cisco-sa-20130410-ncs">advisory</a>, which is about &#8220;unspecified&#8221; default credentials. With a little of ninja googling, I managed to glue the pieces.</p>
<p>It was not that easy to find the credentials in questions, but the guys from Tenable Security managed to get the <a href="http://tenablenetworksecurity.info/plugins/index.php?view=single&amp;id=66861">info</a>: <code>wcsdba / wcs123</code>.</p>
<p>Now, you will think, &#8220;ok, but we need to find a way to reach the database&#8230;&#8217;. Piece of cake! By default, the device exposes an Oracle listener on port <code>1522</code>.</p>
<p>Then, we would need to know the Oracle instance… Don&#8217;t think too much, don&#8217;t even look up at your wordlists, this is just: <code>WCS</code>.</p>
<p>Of course, as you should guess now, the account has <em>DBA</em> privileges. :-)</p>
<p>So, in summary:</p>
<pre>Oracle listener on port <strong>TCP 1522</strong>
Instance: <strong>WCS</strong>
Account: <strong>wcsdba</strong>
Password: <strong>wcs123</strong>
Privileges: <strong>DBA</strong></pre>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Now you can do pretty much every thing: control network settings, grab and crack password hashes, etc.</span></p>
<p>Besides, there is also an XSS on a login page&#8230;</p>
<p>Well done Cisco, for not hardening anything.  :-/</p>
<p>Have fun!</p>
]]></content:encoded>
			</item>
		<item>
		<title>Cloud in the security sky or should I see a psychologist?</title>
		<link>/2011/02/05/cloud-in-the-security-sky-or-should-i-see-a-psychologist.html</link>
		<pubDate>Sat, 05 Feb 2011 18:22:45 +0000</pubDate>
		<dc:creator><![CDATA[phocean]]></dc:creator>
				<category><![CDATA[Defense]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[CSRF]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.phocean.net/?p=1010</guid>
		<guid isPermaLink="false">http://www.phocean.net/?p=1010</guid>
		<description><![CDATA[The &#8220;cloud&#8221; is a buzz word that has been around for months. The marketing guys are pushing it so hard that every IT guy will hear of that at work soon or later. Taking a decision whether to use it or not requires some deep knowledge, because if its pros are clear &#8211; you can...<br><i class="icon-right-hand"></i> <span class="read-more"><a href="/2011/02/05/cloud-in-the-security-sky-or-should-i-see-a-psychologist.html">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p>The &#8220;cloud&#8221; is a buzz word that has been around for months. The marketing guys are pushing it so hard that every IT guy will hear of that at work soon or later.</p>
<p>Taking a decision whether to use it or not requires some deep knowledge, because if its pros are clear &#8211; you can count on the salesmen to get a great picture of it again and again, its cons are silenced.</p>
<p>Too bad, a major disadvantage is security. But guess what? The other day an &#8220;analyst&#8221; presenting his study about cloud computing just cleared out the issue in 3 words :</p>
<blockquote><p>&#8220;Concerning the people who doubt of the security in the cloud, it is a typical psychological issue of theses persons fearing change or something new . There is really nothing concrete to worry about cloud security.&#8221;</p></blockquote>
<p>Well, not sure I am going to see a psychologist. Of course the guy did not give any solid argument, so here we go.</p>
<p>In short, cloud computing expose to the Internet services that were, in normal conditions, always kept inside an internal network and behind peripheral protections.</p>
<p>Of course, these services offer authentication, but basically almost every traditional web attacks will work as usual. After all, we are talking about the same web portal, the same users, the same browsers, etc.</p>
<p>Let quickly summarize the potential threats: CSRF, XSS, phishing, SSL attacks (MiTM, certificate spoofing),  browser exploits and many more.</p>
<p>So really, it is not a question of being crazy, paranoid or reluctant to change. There are just many issues that don&#8217;t make the cloud useless but should incite to caution.</p>
<p>Cloud computing can be used for what it is good at (flexibility, convenience) but not to replace a datacenter. It should not be used if security is a concern.</p>
<p>Don&#8217;t listen to the salesman only, read what some specialists are saying. Here is a compilation of some interesting articles I found :</p>
<ul>
<li>Black Hat 2009 presentation : <a title="BackHat 2009 and cloud computing" href="http://www.isecpartners.com/storage/docs/presentations/Cloud-BlackHat-2009-iSEC.pdf">pdf</a> and <a title="black hat could models" href="http://www.cupfighter.net/index.php/2009/07/blackhat-talk-cloud-computing-models-and-vulnerabilities-raining-on-the-trendy-new-paradise-by-alex-stamos-andrew-becherer-nathan-wilcox/">summary</a></li>
<li>Owasp presentation (<a title="Owasp and cloud computing security" href="http://www.owasp.org/images/1/12/Cloudy_with_a_chance_of_0_day_-_Jon_Rose-Tom_Leavey.pdf">pdf</a>)</li>
<li><a title="dangers in the cloud" href="http://www.webvivant.com/dangers-in-the-cloud.html">Dangers in the cloud </a></li>
<li><a title="Browsers vulnerabilities" href="http://lcamtuf.blogspot.com/2011/02/so-you-think-your-capability-model-is.html" target="_self">So you think *your* capability model is bad?</a> (browser&#8217;s weak design)</li>
</ul>
<p>And last but not least, in case our favorite salesman keeps pushy:</p>
<ul>
<li><a title="Amazon EC2 vulnerabilities" href="http://cloudsecurity.org/blog/2008/12/18/whats-new-in-the-amazon-cloud-security-vulnerability-in-amazon-ec2-and-simpledb-fixed-75-months-after-notification.html">Amazon EC2 vulnerabilities</a></li>
<li><a title="Salesforce phishing incident" href="http://www.ebizq.net/blogs/security_insider/2007/11/implications_of_salesforce_phi.php">Salesforce phishing incident</a></li>
</ul>
<p>But that&#8217;s not all. The same goes with &#8220;virtualization everywhere&#8221;, but that will be another topic&#8230;</p>
]]></content:encoded>
			</item>
		<item>
		<title>ModSecurity 2.5 review</title>
		<link>/2009/12/10/modsecurity-2-5-review.html</link>
		<pubDate>Thu, 10 Dec 2009 14:12:56 +0000</pubDate>
		<dc:creator><![CDATA[phocean]]></dc:creator>
				<category><![CDATA[Defense]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[ModSecurity]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.phocean.net/?p=555</guid>
		<guid isPermaLink="false">http://www.phocean.net/?p=555</guid>
		<description><![CDATA[I finished reading the ModSecurity 2.5 book, written by Magnus Mischell and published by Packt Publishing. I found a lot of interest reading it as I was already using ModSecurity &#8211; and I think anyone exposing an Apache web server should. I was actually using it partially. It is not trivial to secure a web...<br><i class="icon-right-hand"></i> <span class="read-more"><a href="/2009/12/10/modsecurity-2-5-review.html">Continue Reading</a></span>]]></description>
				<content:encoded><![CDATA[<p>I finished reading the <strong>ModSecurity 2.5</strong> book, written by <strong>Magnus Mischell</strong> and published by <strong>Packt Publishing</strong>.</p>
<p style="text-align: center;"><a title="Modsecurity 2.5" href="http://www.packtpub.com/modsecurity-2-5/book" target="_blank"><img class="size-full wp-image-521  aligncenter" title="ModSecurity 2.5" src="/wp-content/uploads/2009/11/1847194745.js" /></a></p>
<p>I found a lot of interest reading it as I was already using ModSecurity &#8211; and I think anyone exposing an Apache web server should.<br />
I was actually using it partially. It is not trivial to secure a web application, and the rule engine of ModSecurity is very powerful but it is also quite complex.</p>
<p>So this book was a good opportunity for me to dig into it further.</p>
<p>The book covers all topics : from the set-up to a real use-case.<br />
The author explains how to write rules, how to deal with the performance impact, logging and gives us a range of various core rules to implement to get a good security basis.</p>
<p>The difficulty goes up progressively and the author doesn&#8217;t forget the beginners.<br />
The set-up of the module is precisely described. All requirements are also explained and there are some good recalls about regular expressions, common attacks on systems, server and client sides, and other stuff like that.</p>
<p>After reading the book, I could harden my rules, reorganize and optimize them for better performance &#8211; something I hadn&#8217;t cared about before.</p>
<p>So I have nothing else to say but to recommend this book.<br />
It is definitely <strong>a great handbook about ModSecurity</strong> that&#8217;s worth having next to you. The variety of configuration patterns makes it a reference.</p>
<p>Check it <a title="Modsecurity 2.5" href="http://www.packtpub.com/modsecurity-2-5/book" target="_blank">there</a>. I also appreciated the availability of PDF version, so that I can carry it everywhere with my laptop and index it with Beagle.</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
