<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Paweł Goleń, blog - Formularz komentarzy &quot;There's more than one way to skin a cat&quot;</title>
    <link>https://archive.mroczna-zaloga.org/</link>
    <description>Paweł Goleń, blog - Zrzędzenie starego zgreda</description>
    <dc:language>pl</dc:language>
    <generator>Serendipity  - http://www.s9y.org/</generator>
    <pubDate>Sat, 15 Mar 2025 22:14:47 GMT</pubDate>

    <image>
        <url>https://archive.mroczna-zaloga.org/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: Paweł Goleń, blog - Formularz komentarzy &quot;There's more than one way to skin a cat&quot; - Paweł Goleń, blog - Zrzędzenie starego zgreda</title>
        <link>https://archive.mroczna-zaloga.org/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Paweł Goleń: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c8881</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    W tym zadaniu raczej musisz wyciągać znak po znaku. W innych bazach mógłbyś próbować wyciągnąć dane np. przez DNS czy HTTP.  
    </content:encoded>

    <pubDate>Tue, 18 Sep 2012 21:52:16 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c8881</guid>
    
</item>
<item>
    <title>Hubert L: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c8880</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Hubert L)</author>
    <content:encoded>
    Oj,  coś mi poucinalo kod który wstawić chciałem :-).  W każdym bądź razie użyłem prostej funkcji iterujacej po tablicy i sprawdzającej, czy dany znak na danej pozycji zwraca tekst &quot;Nieprawidłowy (...)&quot;  czy nie :-). 

Dzięki za zadanie,  bo jak dla mnie było mistrzowskie. Nauczyłem się z niego dużo :-). 

Mam jeszcze pytanie: czy można było jakoś inaczej wyciągnąć hasło niż znak po znaku odpytywac? 

Pozdrawiam! :-)  
    </content:encoded>

    <pubDate>Mon, 17 Sep 2012 23:45:42 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c8880</guid>
    
</item>
<item>
    <title>Hubert L: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c8866</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Hubert L)</author>
    <content:encoded>
    or (i=0; i  
    </content:encoded>

    <pubDate>Mon, 17 Sep 2012 01:49:16 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c8866</guid>
    
</item>
<item>
    <title>Hubert L: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c8865</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Hubert L)</author>
    <content:encoded>
    Cześć,

To ja też się pochwalę swoim rozwiązaniem :).
Przez 2 dni z nim walczyłem, i dopiero teraz się udało (Paweł, ostro musiałem Ci przy tym serwer pytaniami bombardować :)).

Ja sobie napisałem funkcję, którą narzędziem developerskim (np. firebug&#039;iem) można wstrzyknąć i odpalić:

  function getPass(user){
    var oReq = new XMLHttpRequest();
    var params1 = &quot;login=&quot;;
	var params2 = &quot;&amp;password=&quot;;
	var params3 = &quot;&amp;token=&quot;;
    var tmpParams = &quot;&quot;;
	var pass = &quot;&quot;;
	var chars = [&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;
	,&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;e&quot;,&quot;f&quot;,&quot;g&quot;,&quot;h&quot;,&quot;i&quot;,&quot;j&quot;,&quot;k&quot;,&quot;l&quot;,&quot;m&quot;,&quot;n&quot;,&quot;o&quot;,&quot;p&quot;,&quot;q&quot;,&quot;r&quot;,&quot;s&quot;,&quot;t&quot;,&quot;u&quot;,&quot;v&quot;,&quot;w&quot;,&quot;x&quot;,&quot;y&quot;,&quot;z&quot;
	,&quot;A&quot;,&quot;B&quot;,&quot;C&quot;,&quot;D&quot;,&quot;E&quot;,&quot;F&quot;,&quot;G&quot;,&quot;H&quot;,&quot;I&quot;,&quot;J&quot;,&quot;K&quot;,&quot;L&quot;,&quot;M&quot;,&quot;N&quot;,&quot;O&quot;,&quot;P&quot;,&quot;Q&quot;,&quot;R&quot;,&quot;S&quot;,&quot;T&quot;,&quot;U&quot;,&quot;V&quot;,&quot;W&quot;,&quot;X&quot;,&quot;Y&quot;,&quot;Z&quot;];

	var login1 = user + &quot;&#039; AND (SELECT substr(password,&quot;;
	var login2 = &quot;,1) from users where login=&#039;&quot; + user + &quot;&#039;) = &#039;&quot;;
	var login3 = &quot;&#039; --&quot;;

    for (i=0; i  
    </content:encoded>

    <pubDate>Mon, 17 Sep 2012 01:47:45 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c8865</guid>
    
</item>
<item>
    <title>Paweł Goleń: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c5762</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Ale przecież w tym przykładzie dane nie są wypisywane na wyjściu, więc tą drogą hashy się nie osiągnie.

Przykłady w tym wpisie dotyczą &quot;wstrzyknięcia&quot; hasha znanego hasła, ale nie do poznania tych hashy, które istnieją w systemie.  
    </content:encoded>

    <pubDate>Thu, 01 Mar 2012 18:08:18 +0100</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c5762</guid>
    
</item>
<item>
    <title>Piotr Bratkowski: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c5761</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Piotr Bratkowski)</author>
    <content:encoded>
    Witam,

Na początek, bardzo fajny kurs:)

Druga sprawa, że walczę cały dzień z tym wyzwaniem i nie mogę tego ogarnąć.

Próbuję pobrać hash dla użytkownika admin czymś takim:
admin&#039; union select password form users where login=&#039;admin

Czyli to drugie zapytanie by wyglądało w ten sposób, że:
select password from users WHERE login=&#039;admin&#039; UNION SELECT password form users where login=&#039;admin&#039;;

Nie mam pojęcia czemu to nei działa.  
    </content:encoded>

    <pubDate>Thu, 01 Mar 2012 16:48:04 +0100</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c5761</guid>
    
</item>
<item>
    <title>Paweł Goleń: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c1937</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Nie, nie zadziała, z dwóch powodów. Albo inaczej - może nie zadziałać z dwóch powodów. Po pierwsze trzeba pamiętać, że $login wchodzi do DWÓCH zapytań SQL, z czego w pierwszym z nich nie ma kolumny password, więc wystąpi błąd przy wykonaniu pierwszego zapytania. Nie jest to jednak problem nie do obejścia, wystarczy zmienić na ORDER BY 1 DESC. I tu pojawia się potencjalnie drugi problem, który znów w zależności od okoliczności &quot;zewnętrznych&quot; spowoduje, że całość zadziała, lub nie. Konkretnie w wynikach pierwszego zapytania w pierwszym rekordzie MUSI znajdować się wartość 1, a w wyniku drugiego zapytania, &quot;wstrzyknięty&quot; hash. Czyli trzeba tak dobrać hash i kolejność sortowania, by w pierwszym zapytaniu wstrzyknięty hash znalazł się na drugiej pozycji, natomiast w drugim - na pierwszej. Upraszczając zależność przy sortowaniu musi być taka: 1 &lt; wstrzykniety hash &lt; hash hasla. Nie jest to oczywiście nie do osiągnięcia, ale znów by znaleźć to &quot;w ciemno&quot;, trzeba mieć sporo szczęścia :)  
    </content:encoded>

    <pubDate>Wed, 30 Dec 2009 16:59:41 +0100</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c1937</guid>
    
</item>
<item>
    <title>Borys Łącki: There's more than one way to skin a cat</title>
    <link>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#c1936</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/787-theres-more-than-one-way-to-skin-a-cat.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=787</wfw:comment>

    

    <author>nospam@example.com (Borys Łącki)</author>
    <content:encoded>
    Rewelacja na całego, chyba na którymś albo securityday albo CTFie na Confidence kiedyś ktoś miał coś podobnego jeśli mnie pamięć nie myli.

A gdyby w MySQLu dorzucić na końcu:
order by password desc
to powinno zadziałać :}  
    </content:encoded>

    <pubDate>Wed, 30 Dec 2009 16:27:11 +0100</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/787-guid.html#c1936</guid>
    
</item>

</channel>
</rss>