<?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;Szybszy(?) blind sql injection II: inny układ znaków&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:38 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;Szybszy(?) blind sql injection II: inny układ znaków&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ń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4078</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Nie wcześniej, niż za tydzień. Teraz mam tydzień wolnego. Co prawda mój chytry plan połażenia po górach raczej będzie musiał zostać odłożony na później z uwagi na piękną pogodę, którą można obserwować za oknem, ale akurat do tego eksperymentu wracać w tym czasie nie zamierzam.

Z natury jestem leniwy, gdyby nie naciski w komentarzach, to bym ten trzeci wpis odłożył na świętego nigdy :)  
    </content:encoded>

    <pubDate>Sun, 26 Jun 2011 13:28:35 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4078</guid>
    
</item>
<item>
    <title>rozie: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4077</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (rozie)</author>
    <content:encoded>
    Zatem pozostało tylko sprawdzić. Czekam na część trzecią wpisu. ;-)  
    </content:encoded>

    <pubDate>Sun, 26 Jun 2011 13:19:30 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4077</guid>
    
</item>
<item>
    <title>Paweł Goleń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4076</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Szczerze mówiąc myślałem o dłuższym kontekście, niż jeden znak. Pamiętam jak pisaliśmy na studiach generator tekstu w oparciu o łańcuchy Markowa, ciekawe efekty zaczynały się robić przy kontekście typu 3-4 znaki.  
    </content:encoded>

    <pubDate>Sun, 26 Jun 2011 13:04:59 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4076</guid>
    
</item>
<item>
    <title>rozie: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4075</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (rozie)</author>
    <content:encoded>
    Powinno być wyraźnie lepiej (strzał: min. 0,5 pytania średnio), szczególnie jak policzysz prawdopodobieństwa na podstawie badanych danych (lekkie oszustwo, ale tylko lekkie ;)). W sumie proste w implementacji, tylko musisz mieć 27 tabel prawdopodobieństw (jedna dla pierwszej litery). I korzystać z odpowiedniej w zależności od poprzedniej litery (lub jej braku).  
    </content:encoded>

    <pubDate>Sat, 25 Jun 2011 14:35:23 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4075</guid>
    
</item>
<item>
    <title>Paweł Goleń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4074</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Tak, rozważałem łańcuchy Markowa zaraz na początku. Właśnie je miałem na myśli pisząc o &quot;prawdopodobieństwie warunkowym&quot;, czyli prawdopodobieństwie wystąpienia litery pod warunkiem, że wcześniej wystąpiła inna. 

Pomysł zarzuciłem, ale może do niego wrócę tak dla sprawdzenia czy będzie wyraźnie lepiej.  
    </content:encoded>

    <pubDate>Sat, 25 Jun 2011 09:42:02 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4074</guid>
    
</item>
<item>
    <title>rozie: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4072</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (rozie)</author>
    <content:encoded>
    Dokładnie o to mi chodzi; to mi umknęło jedno ważne zdanie. ;-/ 

Za to jeszcze jedna uwaga na podstawie http://en.wikipedia.org/wiki/Letter_frequency - jak sugerował BP w pierwszym komentarzu, samo prawdopodobieństwo nie jest aż tak istotne, ważna jest też pozycja. Co z tego, że e ma prawie 13% (angielski), skoro dla pozycji pierwszej ma marne 2%? Ewentualnie, zamiast tego (i chyba lepiej nawet) prawdopodobieństwa określać na podstawie poprzedniego znaku (łańcuchy Markowa).  
    </content:encoded>

    <pubDate>Sat, 25 Jun 2011 09:15:30 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4072</guid>
    
</item>
<item>
    <title>Paweł Goleń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4069</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Wydaje mi się, że podobną rzecz do tej, o której piszesz, ćwiczyłem w poprzednim odcinku (http://archive.mroczna-zaloga.org/archives/1029-szybszy-blind-sql-injection.html). Dzieliłem zakres znaków na dwie części na podstawie prawdopodobieństwa. Sprawdziłem podział od 0.1 do 0.9 i najlepsze efekty dawał podział 0.5 (prawdopodobieństwo wystąpienia znaku jest z grubsza takie samo w obu częściach). Przy czym to nie był ciąg abcdef, znaki (litery) były ułożone według prawdopodobieństwa ich wystąpienia.

Czy to jest to, o co Ci chodziło, czy coś mi umknęło?  
    </content:encoded>

    <pubDate>Fri, 24 Jun 2011 21:52:25 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4069</guid>
    
</item>
<item>
    <title>rozie: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4068</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (rozie)</author>
    <content:encoded>
    Zastanawiam się, czy podział binarny ma sens, jeśli znasz i bierzesz pod uwagę częstotliwość występowania liter i czy nie lepszy byłby ważony binarny, że tak go nazwę. Przykładowo dla 6 znaków o prawdopodobieństwach:
a - 35%
b - 25%
c - 15%
d - 10%
e - 10%
f - 5%
zamiast dzielić abc def w pierwszym pytaniu, dzielisz ab (60%; po pierwszym znaku, którego dodanie przekroczy/zrówna się z 50%) cdef (40%). Jeśli będzie ab, to w następnym pytaniu dzielisz na a (mającym 35/60 czyli 58%) i b. Jeśli masz pecha i jest cdef,to dzielisz cd (25/40 czyli 62%) i ef (38%). Potem c i d lub e i f. W najgorszym wypadku masz 3 zapytania (z 40% szans, statystycznie), w najlepszym 2 (60% szans), czyli średnio 2,4 pytania, zamiast 3 przy klasycznym podejściu z podziałem binarnym. Wpływ podziału 3 elementów i odpowiedzi negatywnej, która wskazuje pomijam, bo też będzie miał miejsce.  
    </content:encoded>

    <pubDate>Fri, 24 Jun 2011 19:13:34 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4068</guid>
    
</item>
<item>
    <title>Paweł Goleń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4057</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Problem w tym, że my nie wiemy, jakie będą dane w danej tabeli/kolumnie/wierszu. I szczerze mówiąc przy blind sql injection raczej nie będziemy czytać treści artykułów (więc &quot;język naturalny&quot; raczej odpada), ale odczytywać na przykład dane o kontach (loginy, hashe haseł, adresy e-mail), a więc takie rzeczy, dla których &quot;normalna&quot; statystyka dla danego języka będzie prawdopodobnie kompletnie nieprzydatna. Posłużę się tu przykładem tworzenia nazw zmiennych/tabeli bez samogłosek, co kompletnie burzy założenia dotyczące częstotliwości występowania znaków. Zamiast tego pojawiać się mogą znaki typu _, które w &quot;normalnym&quot; języku praktycznie nie występują.

Tak naprawdę nie musisz uruchamiać testowego skryptu, by móc z dużą dokładnością oszacować ilość potrzebnych zapytań do odgadnięcia słowa o określonej długości. Do tego wystarczy posiadanie informacji jak wiele prób jest potrzebnych do odgadnięcia określonego znaku. Następnie do tego dodaje się (w sensie - mnoży) prawdopodobieństwo wystąpienia określonego znaku i już z grubsza wiadomo jak to będzie wyglądać. Wdzięcznym tematem będą tu na przykład hashe haseł, bo prawdopodobieństwo wystąpienia poszczególnych znaków jest takie samo.

Najgorszy przypadek w tym kontekście też łatwo oszacować, wystarczy uwzględnić ten znak, który &quot;kosztuje&quot; najwięcej pytań i przemnożyć go przez ilość znaków do odgadnięcia. Oczywiście taki przypadek prawdopodobnie się nie zdarzy, ale mimo wszystko fajnie wiedzieć, że program nie pójdzie w maliny, tylko dlatego, że ktoś złośliwie wybrał sobie login złożony z 32 znaków z :)

Tak, to jest jak gra i trzeba znaleźć najlepszą strategię. A właściwie nie najlepszą, tylko taką, która będzie się sprawdzała najlepiej przez większość czasu.

Z prologiem mam umiarkowanie pozytywne doświadczenia, więc nie chcę się jakoś specjalnie wymądrzać, ale wydaje mi się, że lepszą strategią mogą być jednak symulacje.  
    </content:encoded>

    <pubDate>Tue, 21 Jun 2011 19:19:35 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4057</guid>
    
</item>
<item>
    <title>BP: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4056</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (BP)</author>
    <content:encoded>
    Wiem jak działa blind sqli :)

Wiedza o ilości liter w słowie może decydować o wyborze strategii. Może statystki dla słów o określonej długości wyglądają trochę inaczej? 

Jeśli zakładasz najgorsze przypadki to wypadało by uruchomić skrypt dla losowego ciągu znaków, oczywiście alfa-num :) Trzeba poczynić pewne założenia, których dotyczą dane badania. Żeby nie przesadzić z tymi &#039;najgorszymi przypadkami&#039;. I czy to jest sztuka dla sztuki (losowe polskie słowa), czy coś użytecznego (chyba najczęściej tabele maja angielskie nazwy, próbować podejść do problemu ze słownikiem najczęściej nazywanych tabel/wzorców nazw/innych cech charakterystycznych).

Lekko to podchodzi pod sztuczną inteligencje, może spróbować zbudować bazę wiedzy, i do wymyślania metod posłużyć się prologiem? To jest jak gra, trzeba znaleźć najlepszą strategie :]

Pozdrawiam  
    </content:encoded>

    <pubDate>Tue, 21 Jun 2011 18:30:14 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4056</guid>
    
</item>
<item>
    <title>Paweł Goleń: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4055</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (Paweł Goleń)</author>
    <content:encoded>
    Bardzo fajnie, że się pojawiają takie pomysły, może jakieś koncepcje się z tego wyłonią. 

Wydaje mi się, że w części swoich sugestii pomijasz fakt, że rozmawiamy o zgadywaniu WSZELKICH informacji na podstawie odpowiedzi TAK/NIE. 

W ten sposób musisz uzyskać informacje na temat tego, jak długie jest słowo, co kosztuje kilka(naście) zapytań. Podobnie rezultat zapytania &quot;ile jest liter a&quot; również ma wartość liczbową, którą musisz ustalić zadając odpowiednie pytania. Potem szukasz możliwych układów (to są chyba kombinacje bez powtórzeń), potem powtarzasz zabawę... Wszystko pięknie, tylko:
- musi to być szybsze, niż metoda &quot;klasyczna&quot;,
- nie powinno wymagać strasznych ilości testów w &quot;najgorszym przypadku&quot;,  
    </content:encoded>

    <pubDate>Mon, 20 Jun 2011 21:15:39 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4055</guid>
    
</item>
<item>
    <title>BP: Szybszy(?) blind sql injection II: inny układ znaków</title>
    <link>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#c4054</link>
            <category></category>
    
    <comments>https://archive.mroczna-zaloga.org/archives/1030-szybszy-blind-sql-injection-ii-inny-uklad-znakow.html#comments</comments>
    <wfw:comment>https://archive.mroczna-zaloga.org/wfwcomment.php?cid=1030</wfw:comment>

    

    <author>nospam@example.com (BP)</author>
    <content:encoded>
    Na początek: ciekawe podejście, rób coś dalej :)

Może zbadać prawdopodobieństwo wystąpienia litery na danej pozycji?
Albo prawd. wystąpienia litery w słowach 5, 6, ..., n literowych.

Może jakoś spróbować połączyć obie metody (klasyczną z &#039;ulepszoną&#039;)? Np pierwszy podział robiąc klasycznie, ponieważ zawsze ucinamy dokładnie połowę, a ulepszona nie zawsze utnie pół :)

Może eliminować zbiory liter o najmniejszym prawdopodobieństwie na początku? (to może być głupie :)

A może jeszcze inaczej: dowiedzieć się ile liter &#039;a&#039; (najbardziej prawdopodobnych liter) jest w słowie, następnie spróbować zgadnąć ich pozycję, a potem ich sąsiadów (np samogłoski rzadko stoją koło siebie).

Może próbować odgadnąć całe sylaby? 

To takich parę pomysłów po przeczytaniu tego posta :]  
    </content:encoded>

    <pubDate>Mon, 20 Jun 2011 20:50:26 +0200</pubDate>
    <guid isPermaLink="false">https://archive.mroczna-zaloga.org/archives/1030-guid.html#c4054</guid>
    
</item>

</channel>
</rss>