<?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>mein gott und meine welt &#187; CSRF</title>
	<atom:link href="http://meingottundmeinewelt.de/category/computer/csrf/feed/" rel="self" type="application/rss+xml" />
	<link>http://meingottundmeinewelt.de</link>
	<description>nichts für leute die aus ihren dogmen nicht ausbrechen können</description>
	<lastBuildDate>Sat, 04 Feb 2012 11:31:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Piwik: XSS und etwas CSRF?!</title>
		<link>http://meingottundmeinewelt.de/2011/01/01/piwik-xss-und-etwas-csrf/</link>
		<comments>http://meingottundmeinewelt.de/2011/01/01/piwik-xss-und-etwas-csrf/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 15:21:42 +0000</pubDate>
		<dc:creator>ich</dc:creator>
				<category><![CDATA[CSRF]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://meingottundmeinewelt.de/?p=5579</guid>
		<description><![CDATA[F&#252;r einen aktuellen Servercheck habe ich mir auch Piwik (de.piwik.org) angeschaut, eine Webanalyse-Software, ganz &#228;hnlich wie Googles Analytics. Wer Piwik nutzt der hat die Hoheit &#252;ber die erhobenen Daten, was bei Google nicht der Fall ist, da wei&#223; niemand was die mit den Daten anstellen und wem sie sie geben. Anl&#228;sslich des 27C3 hat jemand [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r einen aktuellen Servercheck habe ich mir auch <a target="_blank" href="http://de.piwik.org/" >Piwik</a> (de.piwik.org) angeschaut, eine Webanalyse-Software, ganz &#228;hnlich wie Googles Analytics. Wer Piwik nutzt der hat die Hoheit &#252;ber die erhobenen Daten, was bei Google nicht der Fall ist, da wei&#223; niemand was die mit den Daten anstellen und wem sie sie geben.</p>
<p>Anl&#228;sslich des 27C3 hat jemand Piwik auf seinem Server installiert und zum Hacken zur Verf&#252;gung gestellt:</p>
<blockquote><p>Wer lust hat mit zu suchen ob/wie man das defacen (ob mit oder ohne login) kann ist herzlich willkommen.</p></blockquote>
<p><a target="_blank" href="http://events.ccc.de/congress/2010/wiki/Hacked" >http://events.ccc.de/congress/2010/wiki/Hacked</a></p>
<p>Nach ein paar Tagen fand auch jemand eine XSS-L&#252;cke, die allerdings nur unter bestimmten Voraussetzungen ausgenutzt werden kann:</p>
<ul>
<li>Das SEO-Widget muss aktiviert sein.</li>
<li>Der anonymous-Account muss &#246;ffentlich zug&#228;nglich sein, ansonsten kann nur</li>
<li>ein eingeloggter Benutzer angegriffen werden.</li>
</ul>
<p>Nach der Installation von Piwik ist das SEO-Widget zwar aktiviert, aber der Benutzer &#8220;anonymous&#8221; ist deaktiviert. D.h. bei der &#252;blichen und weit verbreiteten Konfiguration kann die L&#252;cke nicht ausgenutzt werden. </p>
<p><a href="../../../../../../wp-content/images/piwik-xss-1.gif" rel="lightbox[piwik]" title="Piwik - XSS im SEO-Widget"><img src="../../../../../../wp-content/images/piwik-xss.gif" alt="piwik xss seo widget" /><br />(Ein paar Screenshots zur Erkl&#228;rung.)</a><br />
<br style="clear:both" /><br />
Was ich bei meinen Tests in Piwik aber ungleich interessanter fand, ist die CSRF-L&#252;cke die ohne Angriff auf einen Benutzer auskommt, von daher ist es eigentlich gar keine <a target="_blank" href="http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery" >Cross-Site Request Forgery</a> (de.wikipedia.org). CSRF benutzt i.d.R. die Authentifizierung eines angemeldeten Benutzers, der auf einen pr&#228;parierten Link klicken muss oder eine manipulierte Website ansurft, damit eine Aktion sozusagen in seinem Namen ausgef&#252;hrt wird.</p>
<p>Schaut man sich die Piwik-Statistik an, ob nun als Anonymous, Administrator oder Superuser, so gibt es in der URL bzw. im HTML-Quellcode den Parameter <code>token_auth</code>. Beim Anonymous ist der Token gleich <code>anonymous</code>, bei den anderen Benutzern ist es ein MD5-Hash. Der Hash wird aus dem Benutzernamen und dem Passwort gebildet.</p>
<hr />
Benutzername: <code>admin</code><br />
Passwort: <code>123456789</code><br />
<code>token_auth=<strong>c561acea86161390fe8bc97a433c20ad</strong></code></p>
<p>Plain: <code>123456789</code><br />
MD5 Hash: <code>25f9e794323b453885f5181f1b624d0b</code></p>
<p>Plain: <code>admin25f9e794323b453885f5181f1b624d0b</code><br />
MD5 Hash: <code><strong>c561acea86161390fe8bc97a433c20ad</strong></code></p>
<hr />
In Piwik steht zwar:</p>
<blockquote><p>Der token_auth is so geheim wie Ihr Login und Password, <strong>teilen Sie es niemandem mit</strong>!</p></blockquote>
<p>Aber per Suchmaschine fand ich innerhalb von wenigen Sekunden genau diesen Token.<br />
<br style="clear:both" /><br />
In der Benutzerverwaltung von Piwik steckt ein Fehler, der dazu genutzt werden kann um einen neuen Benutzer</p>
<ul>
<li>neu zu registrieren,</li>
<li>seine Zugriffsrechte zu erh&#246;hen und</li>
<li>ihn auch wieder zu l&#246;schen</li>
</ul>
<p>und dies alles ohne das ein registrierter Benutzer involviert ist. Hierzu bedarf es nur einer Information &mdash; den Inhalt von <code>token_auth</code> des Superusers.</p>
<p><strong>Neuen Benutzer anlegen</strong><br />
<code>http://localhost:8888/piwik10/piwik/index.php<br />
?module=API<br />
&amp;method=UsersManager.addUser<br />
&amp;userLogin=hacker<br />
&amp;password=123456<br />
&amp;email=email2%40domain.com<br />
&amp;alias=alias<br />
&amp;token_auth=c561acea86161390fe8bc97a433c20ad</code></p>
<p><strong>Neuem Benutzer den Status ADMINISTRATOR geben</strong><br />
<code>http://localhost:8888/piwik10/piwik/index.php<br />
?module=API<br />
&amp;method=UsersManager.setUserAccess<br />
&amp;userLogin=hacker<br />
&amp;access=admin<br />
&amp;idSites=1<br />
&amp;token_auth=c561acea86161390fe8bc97a433c20ad</code></p>
<p><strong>Neuen Benutzer l&#246;schen</strong><br />
<code>http://localhost:8888/piwik10/piwik/index.php<br />
?module=API<br />
&amp;method=UsersManager.deleteUser<br />
&amp;userLogin=hacker<br />
&amp;token_auth=c561acea86161390fe8bc97a433c20ad</code></p>
<p>Ich habe dies alles mal in einem Screencast zusammengefasst. Da ich es etwas zu breit aufzeichnen musste, damit man &#252;berhaupt etwas sehen kann, habe ich es auf YouTube hochgeladen: (<a target="_blank" href="http://www.youtube.com/watch?v=wTEcToFuFOI" >http://www.youtube.com/watch?v=wTEcToFuFOI</a>)</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/wTEcToFuFOI?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wTEcToFuFOI?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="306"></embed></object></p>
<p>Andere Aktionen des Superusers werden nur ausgef&#252;hrt wenn der Superuser eingeloggt ist, daher gehe ich davon aus dass dies wirklich ein Bug ist und kein Feature. ;O) </p>
<p>Evtl. gibt es auch die M&#246;glichkeit mit der XSS-L&#252;cke an den <code>token_auth</code> des Superusers zu gelangen, dies habe ich noch nicht geschafft &mdash; aber das Jahr ist ja noch jung. :O)</p>
<p>In diesem Sinne<br />
Frohes Neues Jahr (auch den Programmierluschen &lt;g&gt;)<br />
<br style="clear:both" /><br />
Update: 18:00 Uhr</p>
<p>Ich habe noch eine XSS-L&#252;cke gefunden. Die erste L&#252;cke ist reflexiv, diese ist persistent und wird in den &#8220;Zielen&#8221; aktiv:</p>
<p><code>http://localhost:8888/piwik10/piwik/index.php<br />
?idSite=1<br />
&amp;name=%253Chr%253Exss%253Chr%253E<br />
&amp;matchAttribute=url<br />
&amp;patternType=contains<br />
&amp;pattern=xss<br />
&amp;caseSensitive=0<br />
&amp;revenue=0<br />
&amp;idGoal=<br />
&amp;method=Goals.addGoal<br />
&amp;module=API<br />
&amp;token_auth=c561acea86161390fe8bc97a433c20ad</code></p>
<p><img src="../../../../../../wp-content/images/piwik-xss-2.gif" alt="piwik xss seo widget" /></p>
<p>Diese L&#252;cke ist wieder nur ausnutzbar wenn <code>token_auth</code> bekannt ist. Hierbei muss es aber nicht der Token des Superusers sein &mdash; der eines Benutzers mit Rechten eines ADMINISTRATOR reicht aus.</p>
<p>(<a target="_blank" href="http://www.youtube.com/watch?v=kAFpDZa53AA" >http://www.youtube.com/watch?v=kAFpDZa53AA</a>)<br />
<object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/kAFpDZa53AA?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/kAFpDZa53AA?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="306"></embed></object><br />
<br style="clear:both" /><br />
<strong>Update: 02.01.2011 &#8211; 10:40 Uhr</strong></p>
<p>Auch wenn ich per Suchmaschine sehr schnell <code>token_auth</code> von Superusern finden konnte, ist die Anzahl der Funde, im Verh&#228;ltnis zur Verbreitung von Piwik so gering, dass es sich wohl eher um Dummheiten und Missverst&#228;ndnisse auf Seiten der Benutzer handelt, die den API-Code anstatt der Widgets in ihre Websites einf&#252;gen.<br />
<br style="clear:both" /><br />
<strong>Update: 04.01.2011 &#8211; 15:32 Uhr</strong></p>
<p>&#8220;<a target="_blank" href="http://heise.de/-1162955" >Sicherheits-Update f&#252;r Web-Analyse-Software Piwik</a>&#8221; (heise.de)<br />
Auch die beiden XSS-L&#252;cken und die Full Path Disclosure wurden gefixt.</p>
<p><span style="display:none"><br />
<a href="../../../../../../wp-content/images/piwik-xss-1-2.gif" rel="lightbox[piwik]" title="Piwik - XSS im SEO-Widget"></a><br />
<a href="../../../../../../wp-content/images/piwik-xss-1-3.gif" rel="lightbox[piwik]" title="Piwik - XSS im SEO-Widget"></a><br />
<a href="../../../../../../wp-content/images/piwik-xss-1-4.gif" rel="lightbox[piwik]" title="Piwik - XSS im SEO-Widget"></a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://meingottundmeinewelt.de/2011/01/01/piwik-xss-und-etwas-csrf/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>St&#252;ck Schrott tarnt sich als Shop</title>
		<link>http://meingottundmeinewelt.de/2010/08/05/stueck-schrott-tarnt-sich-als-shop/</link>
		<comments>http://meingottundmeinewelt.de/2010/08/05/stueck-schrott-tarnt-sich-als-shop/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 06:29:39 +0000</pubDate>
		<dc:creator>ich</dc:creator>
				<category><![CDATA[CSRF]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://meingottundmeinewelt.de/?p=5094</guid>
		<description><![CDATA[Vorgestern las ich von einem neuen (?) Shopsystem: &#8220;E-Commerce System Zeuscart – eine Alternative f&#252;r Magento?&#8221; (t3n.de) Um die Antwort vorweg zu nehmen: Nein! Wenn ich eine neue Seite besuche dann kann ich nicht anderes, da muss ich einfach mal irgendwo ein '&#34;&#62;xss eingeben&#8230; :O) Weiteres reflexives Cross-Site Scripting findet sich noch auf den folgenden [...]]]></description>
			<content:encoded><![CDATA[<p>Vorgestern las ich von einem neuen (?) Shopsystem:<br />
&#8220;<a target="_blank" href="http://t3n.de/news/open-source-vorstellung-e-commerce-system-zeuscart-276934/" >E-Commerce System Zeuscart – eine Alternative f&#252;r Magento?</a>&#8221; (t3n.de)</p>
<p>Um die Antwort vorweg zu nehmen: Nein!<br />
<br class="clearboth" /><br />
Wenn ich eine neue Seite besuche dann kann ich nicht anderes, da muss ich einfach mal irgendwo ein <code>'&quot;&gt;xss</code> eingeben&#8230; :O)<br />
<img src="../../../../../../wp-content/images/zeuscart-xss.gif" alt="Zeuscart XSS" /><br />
Weiteres reflexives Cross-Site Scripting findet sich noch auf den folgenden Seiten: <a href="../../../../../../wp-content/images/zc-xss-admin-password-forgot.gif" rel="lightbox[zeuscart]" title="Zeuscart - XSS - Admin - Passwort vergessen">Passwort vergessen</a>, <a href="../../../../../../wp-content/images/zc-xss-suche.gif" rel="lightbox[zeuscart]" title="Zeuscart - XSS - Suche">Suche</a>, <a href="../../../../../../wp-content/images/zc-xss-registrierung.gif" rel="lightbox[zeuscart]" title="Zeuscart - XSS - Registrierung">Registrierung</a> und <a href="../../../../../../wp-content/images/zc-xss-login.gif" rel="lightbox[zeuscart]" title="Zeuscart - XSS - Login">Login</a>.</p>
<p>Es gibt aber auch die M&#246;glichkeit persistent eigenen Code im Shop zu speichern. Eine Seite die zum <a href="../../../../../../wp-content/images/zc-xss-pagemgt.gif" rel="lightbox[zeuscart]" title="Zeuscart - XSS - Pagemanagement">Pagemanagement</a> aus dem Backend geh&#246;rt kann von nicht angemeldeten Besuchern des Shops aufgerufen werden. Auf der Seite k&#246;nnen bestehende Eintr&#228;ge editiert, gel&#246;scht und neue hinzugef&#252;gt werden.<br />
<br class="clearboth" /><br />
Seiten aus dem Backend die f&#252;r jeden Besucher aufrufbar sind, und nicht nur f&#252;r Shopadmins, gibt es noch weitere:</p>
<ul>
<li>Ausgabe der <code>phpinfo()</code>-Seite.</li>
<li>Export aller Produktdaten im Excel-, XML-, CSV- oder TAB-Format.</li>
<li>Export aller Kundendaten im Excel-, XML-, CSV- oder TAB-Format.</li>
<li>L&#246;schen der Aktivit&#228;ten des Admins, die in einer Tabelle gelistet werden.</li>
<li>Anzeige der letzten Bestellungen der Kunden, inkl. Name und E-Mail-Adresse.</li>
</ul>
<p><br class="clearboth" /><br />
Nach der Registrierung im Demoshop testete ich auch die Passwort-vergessen-Funktion und wunderte mich gar nicht mehr, dass das von mir vergebene Passwort in der E-Mail stand. Daf&#252;r gibt es zwei m&#246;gliche Gr&#252;nde: Entweder wird das Passwort direkt im Klartext in der Datenbank gespeichert oder es wird so kodiert, dass es wieder dekodiert werden kann.</p>
<p>Ich habe mir die Software runtergeladen und kurz in den Quellcode reingeschaut. Die Passworte werden per <code>base64_encode()</code> kodiert und nicht per MD5 oder SHA1 gehasht. Das bedeutet dass alle Passworte die in der Datenbank stehen per <code>base64_decode()</code> dekodiert, also in Klartext umgewandelt werden k&#246;nnen.</p>
<p>Hier ein Beispiel f&#252;r das Kodieren und Dekodieren:<br />
<img src="../../../../../../wp-content/images/zc-kodiert.gif" alt="Base64 Kodiert" /><br />
<img src="../../../../../../wp-content/images/zc-dekodiert.gif" alt="Base64 Dekodiert" /><br />
Und hier kann man dies online ausprobieren: &#8220;<a target="_blank" href="http://www.php-einfach.de/base64_generator.php" >Base64 Kodierer / Base64 Generator</a>&#8221; (php-einfach.de)<br />
<br class="clearboth" /><br />
Und, nat&#252;rlich fand ich auch noch an vielen Ecken Cross-Site Request Forgery.</p>
<p>W&#252;rde dies in eine Seite als unsichtbares Iframe eingebaut und der Shopadmin besucht die Seite w&#228;hrend er eingeloggt ist, bekommt er einen weiteren Admin ins System gepflanzt:<br />
<code>http://domain.tld/admin/<br />
?do=subadminmgt&amp;action=insert<br />
[POST]<br />
subadminname=adminb<br />
&amp;subadminpassword=123456<br />
&amp;subadminemail=adminb%40domain.tld<br />
&amp;insert=Add</code><br />
<br class="clearboth" /><br />
Noch ein paar Infos f&#252;r die die sich diese Software anschauen m&#246;chten:</p>
<p>Backend: <a target="_blank" href="http://ajdemos.com/demo/zeuscart/v3/admin/" >http://ajdemos.com/demo/zeuscart/v3/admin/</a><br />
User Name: demoadmin<br />
Password: demo123</p>
<p>Frontend: <a target="_blank" href="http://ajdemos.com/demo/zeuscart/v3/" >http://ajdemos.com/demo/zeuscart/v3/</a><br />
User Name: demouser@domainname.com<br />
Password: demouser</p>
<p>Download: <a target="_blank" href="http://www.zeuscart.com/download/Zeuscart3.zip" >http://www.zeuscart.com/download/Zeuscart3.zip</a><br />
<br class="clearboth" /><br />
Ich bin sicher dass es noch weitere Schwachstellen gibt, beispielsweise zu SQL-Injection, aber die gefundenen L&#252;cken sind schon vollkommen ausreichend, um die Nutzung abzulehnen. Wer nun noch ernsthaft &#252;berlegt dieses St&#252;ck Schrott einsetzen zu wollen &mdash; dem ist nicht mehr zu helfen.</p>
<p>Vielleicht ist dies auch nur Teil einer Studie, so nach dem Motto: &#8220;Wie schrottig darf eine Software sein, bis sie niemand mehr benutzen mag?&#8221; ;O)<br />
<br class="clearboth" /><br />
Eigentlich schreibe ich ja nicht so kritisch &#252;ber eine Software, aber dieses Teil ist so schlecht und hat so viele Schwachstellen, dass man nicht davon ausgehen kann, dass die Entwickler (immerhin schon Version 3) auf diese noch nie hingewiesen wurden. Eine Google-Recherche nach &#8220;Zeuscart&#8221; f&#246;rderte nur Testinstallationen oder bereits gehackte Shops zutage</p>
]]></content:encoded>
			<wfw:commentRss>http://meingottundmeinewelt.de/2010/08/05/stueck-schrott-tarnt-sich-als-shop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;I don&#8217;t think CSRF is as big of a deal&#8221;</title>
		<link>http://meingottundmeinewelt.de/2010/04/17/i-dont-think-csrf-is-as-big-of-a-deal/</link>
		<comments>http://meingottundmeinewelt.de/2010/04/17/i-dont-think-csrf-is-as-big-of-a-deal/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 09:08:39 +0000</pubDate>
		<dc:creator>ich</dc:creator>
				<category><![CDATA[CSRF]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://meingottundmeinewelt.de/?p=4531</guid>
		<description><![CDATA[Es ist eine alte Wahrheit: Was Computern leicht f&#228;llt, f&#228;llt Menschen oftmals sehr schwer und umgekehrt. Und ein Web Vulnerability Scanner kann, wie auch ein Virenscanner, nur etwas finden wenn ihm ein entsprechendes Muster f&#252;r Vergleiche vorliegt. Kevin Beaver behauptet: Weil kommerzielle Schwachstellen-Scanner mit dem Aufsp&#252;ren von CSRF-L&#252;cken Probleme haben, so h&#228;tten auch Menschen Probleme [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist eine alte Wahrheit: Was Computern leicht f&#228;llt, f&#228;llt Menschen oftmals sehr schwer und umgekehrt. Und ein Web Vulnerability Scanner kann, wie auch ein Virenscanner, nur etwas finden wenn ihm ein entsprechendes Muster f&#252;r Vergleiche vorliegt.</p>
<p>Kevin Beaver behauptet: Weil kommerzielle Schwachstellen-Scanner mit dem Aufsp&#252;ren von CSRF-L&#252;cken Probleme haben, so h&#228;tten auch Menschen Probleme beim Auffinden solcher L&#252;cken. Und es w&#228;re auch schwer eine gefundene L&#252;cke auszunutzen. Seine Schlussfolgerung daraus: Man solle dieser Art von Schwachstelle weniger Beachtung schenken und lieber die offensichtlichen, leicht auffindbaren L&#252;cken suchen und schlie&#223;en.</p>
<p>Erst &#252;ber den Blogeintrag &#8220;<a href="http://ha.ckers.org/blog/20100414/csrf-isnt-a-big-deal-duh/"  target="_blank">CSRF Isn’t A Big Deal &#8211; Duh!</a>&#8221; (ha.ckers.org) von Robert “RSnake” Hansen bin ich auf Kevin Beaver gekommen.</p>
<p>Kevin Beaver hat angeblich 20 Jahre Erfahrung in der Branche. Und erz&#228;hlt so etwas seinen Kunden? Wieder ein spezieller Experte. ;O)<br />
<br class="clearboth" /><br />
Ich wei&#223; nicht wie der Algorithmus eines Web Vulnerability Scanner aufgebaut ist um L&#252;cken zu <a href="http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery"  target="_blank">Cross-Site Request Forgery</a> (de.wikipedia.org) zu finden, aber f&#252;r mich als Human Web Vulnerability Scanner ist das Auffinden recht einfach.</p>
<p>Wenn eine CSRF-L&#252;cke vorliegt besteht kaum ein Problem ein funktionierenden Exploit zu erstellen, etwas HTML- und JavaScript-Kenntnisse reichen vollkommen aus. Der Angreifer muss sein Opfer nur noch auf eine pr&#228;parierte Website locken, um zum Ziel zu kommen.<br />
<br class="clearboth" /><br />
Wenn beispielsweise das Anlegen eines neues Users in einem CMS &#252;ber ein Formular erfolgt welches folgende Daten versendet:</p>
<blockquote><p><code>http://wordpress/wp-admin/user-new.php<br />
[POST]<br />
action=adduser<br />
&amp;user_login=tester<br />
&amp;email=name@mail.tld<br />
&amp;pass1=12345678<br />
&amp;pass2=12345678<br />
&amp;role=administrator<br />
</code></p></blockquote>
<p>So kann man davon ausgehen das eine CSRF-L&#252;cke vorliegt.</p>
<p>In WordPress gibt es aber noch den Parameter <code>_wpnonce</code> der CSRF verhindert:</p>
<blockquote><p><code>http://wordpress/wp-admin/user-new.php<br />
[POST]<br />
_wpnonce=abc123xyz789<br />
&amp;action=adduser<br />
&amp;user_login=tester<br />
&amp;email=name@mail.tld<br />
&amp;pass1=12345678<br />
&amp;pass2=12345678<br />
&amp;role=administrator<br />
</code>
</p></blockquote>
<p>Der Wert hinter <code>_wpnonce</code> ist f&#252;r eine bestimmte Aktion und einen bestimmten Blog immer derselbe. Sollte es, evtl. &#252;ber eine Sicherheitsl&#252;cke, m&#246;glich sein diesen Wert aus einem fremden Blog auszulesen oder ihn zu berechnen, so t&#228;te sich eine CSRF-L&#252;cke auf.</p>
]]></content:encoded>
			<wfw:commentRss>http://meingottundmeinewelt.de/2010/04/17/i-dont-think-csrf-is-as-big-of-a-deal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safer Internet Day 2010, BSI und etwas Cross-Site Request Forgery</title>
		<link>http://meingottundmeinewelt.de/2010/02/08/safer-internet-day-2010-bsi-und-etwas-cross-site-request-forgery/</link>
		<comments>http://meingottundmeinewelt.de/2010/02/08/safer-internet-day-2010-bsi-und-etwas-cross-site-request-forgery/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:01:16 +0000</pubDate>
		<dc:creator>ich</dc:creator>
				<category><![CDATA[CSRF]]></category>
		<category><![CDATA[Sicherheit]]></category>

		<guid isPermaLink="false">http://meingottundmeinewelt.de/?p=4238</guid>
		<description><![CDATA[Morgen ist &#8220;Safer Internet Day 2010&#8243; und die Jungs und M&#228;dels vom BSI machen da auch mit: &#8220;Safer Internet Day&#8221; (bsi-fuer-buerger.de) Anl&#228;sslich des Safer Internet Day am 9. Februar beantwortet das Bundesamt f&#252;r Sicherheit in der Informationstechnik (BSI) wieder Fragen rund um das Thema „Ins Internet – mit Sicherheit“. Die kostenlose BSI-Hotline ist von 10.00 [...]]]></description>
			<content:encoded><![CDATA[<p>Morgen ist &#8220;Safer Internet Day 2010&#8243; und die Jungs und M&#228;dels vom BSI machen da auch mit:<br />
&#8220;<a href="https://www.bsi-fuer-buerger.de/cln_174/ContentBSIFB/Aktuelles/safer_internetday_2010.html"  target="_blank">Safer Internet Day</a>&#8221; (bsi-fuer-buerger.de)</p>
<blockquote><p>Anl&#228;sslich des Safer Internet Day am <strong>9. Februar</strong> beantwortet das Bundesamt f&#252;r Sicherheit in der Informationstechnik (BSI) wieder Fragen rund um das Thema „Ins Internet – mit Sicherheit“. Die kostenlose BSI-Hotline ist von <strong>10.00 bis 17.00 Uhr</strong> unter der Rufnummer <strong>0800 274 1000</strong> erreichbar. Au&#223;erdem k&#246;nnen Interessierte ihre Fragen per E-Mail an fragen[&#228;tsch]bsi-fuer-buerger.de schicken.<br />
(Spamsch&#252;tzchen von mir.)</p></blockquote>
<p>Also anrufen und Fragen stellen bis die Ohren gl&#252;hen! :O)<br />
<br class="clearboth" /><br />
&lt;einschub&gt;<br />
<a href="http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery"  target="_blank">Cross-Site Request Forgery</a> (de.wikipedia.org)</p>
<blockquote><p>Eine Cross-Site Request Forgery (zu deutsch etwa „Site-&#252;bergreifende Aufruf-Manipulation“, meist XSRF oder CSRF abgek&#252;rzt) ist ein Angriff auf ein Computersystem, bei dem der Angreifer unberechtigt Daten in einer Webanwendung ver&#228;ndert. Er bedient sich dazu eines Opfers, das ein berechtigter Benutzer der Webanwendung sein muss. Mit technischen Ma&#223;nahmen oder zwischenmenschlicher &#220;berredungskunst wird hierzu aus dem Webbrowser des Opfers ohne dessen Wissen und Einverst&#228;ndnis ein kompromittierter HTTP-Request an die Webanwendung abgesetzt. Der Angreifer w&#228;hlt den Request so, dass bei dessen Aufruf die Webanwendung die vom Angreifer gew&#252;nschte Aktion ausf&#252;hrt.</p></blockquote>
<p>&lt;/einschub&gt;<br />
<br class="clearboth" /><br />
&#8220;<a href="https://www.cert-bund.de/"  target="_blank">CERT-Bund &mdash; Das Computer-Notfallteam des BSI</a>&#8221; (cert-bund.de)</p>
<blockquote><p>CERT-Bund hat das Ziel als zentrale Anlaufstelle f&#252;r pr&#228;ventive und reaktive Ma&#223;nahmen mit Bezug auf sicherheits- und verf&#252;gbarkeitsrelevante Vorf&#228;lle in Computersystemen zu wirken.</p></blockquote>
<p>Leider wird dort kein RSS-Feed mit den News angeboten, aber zumindest einen Newsletter gibt es. Also flux angemeldet und geschaut was noch an Services angeboten wird. Naja, einen Service hatte ich nicht erwarten &mdash; die M&#246;glichkeit mit nur einem Klick den Account wieder zu l&#246;schen. ;O)</p>
<p>Wenn man dort seinen Account wieder l&#246;schen m&#246;chte:</p>
<blockquote><p>Wenn Sie sich vom WID-Portal deregistrieren, werden s&#228;mtliche in Ihrem Profil enthaltenen Daten (pers&#246;nliche Daten, Suchprofile &#038; Abonnements) gel&#246;scht.</p></blockquote>
<p>Aber&#8230; </p>
<p>Ist jemand eingeloggt und w&#252;rde auf eine pr&#228;parierte Website surfen, so k&#246;nnte er &mdash; ohne es zu wollen &mdash; seinen Account l&#246;schen, denn es gibt vor dem L&#246;schen keine Nachfrage oder Warnung. So etwas nennt sich dann Cross-Site Request Forgery. In diesem Fall ist es nicht ganz so gef&#228;hrlich&#8230; es sei denn&#8230; das Opfer verl&#228;sst sich auf die Meldungen zu Sicherheitsl&#252;cken nur aus dieser einen Quelle.</p>
<p>Hier habe ich mal wieder einen Screencast (diesmal zu gro&#223; um es hier in den Blog einzuf&#252;gen) dazu erstellt:<br />
<a href="http://meingottundmeinewelt.de/wp-content/videos/cert-bund_de-csrf.html"  target="_blank">http://meingottundmeinewelt.de/wp-content/videos/cert-bund_de-csrf.html</a></p>
<p>In dem Screencast sieht man:</p>
<ul>
<li>Wie ich mit einer Wegwerf-E-Mail-Adresse einen Account erstelle.</li>
<li>Mich einlogge um die Registrierung abzuschlie&#223;en und dabei ein neues Passwort vergebe.</li>
<li>Mich wieder auslogge und wieder einlogge, damit man sieht dass der Account auch wirklich besteht.</li>
<li>Dann rufe ich, w&#228;hrend ich eingeloggt bin, ein HTML-Formular auf, welches den Account l&#246;scht.</li>
</ul>
<p>Das Formular zum l&#246;schen sieht etwas sonderbar aus, da ausser der URL in <code>action=</code> keine Parameter an die Webseite &#252;bermittelt werden. Aber der Aufruf nur der URL alleine in einem Link f&#252;hrt nicht zur L&#246;schung des Accounts.<br />
<br class="clearboth" /><br />
L&#252;cken zu CSRF werden von Angreifern gerne benutzt um z.B. Zugangsdaten zu &#228;ndern, Passworte und/oder E-Mail-Adressen. Administratoren k&#246;nnten &#252;ber solch eine L&#252;cke auch ungewollt neue Administratoren im System anlegen. Die M&#246;glichkeiten CSRF auszunutzen sind je nach System sehr erschreckend bzw. f&#252;r einen Angreifer sehr verlockend.<br />
<br class="clearboth" /><br />
Die Jungs vom BSI sind irgendwie humorlos. :O)</p>
<p>Im vergangenen Jahr habe ich dutzende von E-Mails zu Sicherheitsl&#252;cken versendet u.a. auch an fast alle Bundesministerien. Meine Beispiele habe ich zum Teil mit einem JavaScript versehen, welches die L&#252;cken demonstrierte. Immer wenn eine Website vom Bund betroffen war, kamen die Jungs vom BSI und schauten sich an was ich da wieder ausgebr&#252;tet hatte. Wahrscheinlich waren die schon genervt wenn sie mal wieder eine weitergeleitete E-Mail bekamen und mich als urspr&#252;nglichen Absender erkannten. &#8220;Oh nein, nicht der schon wieder!&#8221; Naja, auf jeden Fall haben sie dann eines der JavaScripte immer und immer wieder aufgerufen, wo ich nicht verstanden habe warum?! Sie h&#228;tten nun einfach nachfragen k&#246;nnen, wenn es irgendwelche Unklarheiten gibt, aber nein, wieder und wieder aufrufen und gr&#252;beln&#8230; ;O)</p>
<p>Wenn ich glaube das meine Hinweise angekommen sind und meine Beispiele nicht mehr ben&#246;tigt werden, dann l&#246;sche ich diese, damit da nicht doch mal irgendwelche Suchmaschinen&#8230; Es gibt da n&#228;mlich auch so Spezialisten, die haben offensichtlich eine Erweiterung oder Toolbar oder was auch immer, von Alexa installiert und dann kommt pl&#246;tzlich der Bot und kennt den eigentlich nicht auffindbaren Link zu meinem Beispiel.</p>
<p>Zur&#252;ck zu dem JavaScript und dem BSI. Mittlerweile hatte ich das Beispiel gel&#246;scht, aber trotzdem kam da noch immer der Mensch vom BSI und suchte nach dem Script&#8230; Jaja, ich gebe es ja zu, ich bin frech! :O) Also habe ich das komplette Beispiel inkl. dem JavaScript gezippt und an das BSI per E-Mail geschickt. Am darauf folgenden Tag und auch an den n&#228;chsten Tagen kam niemand mehr vom BSI um das Script zu suchen, also war auch diese E-Mail an den richtigen Mitarbeiter weitergeleitet worden. Ob ich eine Antwort bekam? Nein, nat&#252;rlich nicht. Ich nehme es mit Humor. Bei den BSI-Jungs muss ich immer an die Men in Black denken: &#8220;Wir haben keinen Humor, von dem wir w&#252;ssten.&#8221;</p>
<p>Wer in der IT-Security arbeitet und keinen Humor hat, der sollte sich einen anderen Job suchen! :O)</p>
]]></content:encoded>
			<wfw:commentRss>http://meingottundmeinewelt.de/2010/02/08/safer-internet-day-2010-bsi-und-etwas-cross-site-request-forgery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

