Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 16

Temat: SQLi - timing attack - wariant

  1. #1
    ptz
    ptz jest offline
    Zarejestrowany
    Feb 2009
    Postów
    15

    Domyślnie SQLi - timing attack - wariant

    Ciekawy tekst o mało znanym wariancie ataku czasowego na SQL injection.


    tx.

  2. #2
    Zarejestrowany
    Jan 2009
    Postów
    216

    Domyślnie

    najs, choc to i tak klasyk (dopisywanie po ').
    mysle ze nie tylko do selectu sie to przyda

    ahhh szkoda ze nie znalem funkcji benchmark ~rok temu

  3. #3
    ptz
    ptz jest offline
    Zarejestrowany
    Feb 2009
    Postów
    15

    Domyślnie

    Cytat Napisał esp666 Zobacz post
    najs, choc to i tak klasyk (dopisywanie po ').
    mysle ze nie tylko do selectu sie to przyda
    Klasyk jak klasyk Szczerze mowiac nie widzialem czegos takiego w zadnych cheat sheetach sqli
    No i tutaj nawet nie potrzeba uzywac ' " itd.
    Dodatkowo nie potrzeba uzywac klasycznych funkcji delay-ujacych typu benchmark() pg_sleep() itd.



    tx

  4. #4
    Avatar Mandr4ke
    Mandr4ke jest offline Bez Teamowiec
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    SELECT * FROM news WHERE category='hardware' ORDER BY (SELECT top 1 CASE WHEN (test2.id=999) THEN (SELECT TOP 1 rand(checksum(newid())) FROM dbo.sysobjects, dbo.sysobjects AS t ORDER BY 1 DESC) ELSE 2 END FROM test2)



    Godne Fryderyka 2009...
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  5. #5
    ptz
    ptz jest offline
    Zarejestrowany
    Feb 2009
    Postów
    15

    Domyślnie

    Mandrejk: a masz np. pomysl jak zrobic atak czasowy na postgresql 7?

    btw ORDER BY - w niektorych bazach mozna jeszcze robic ORDER BY 1 - (time subselect)

    tx.

  6. #6
    Avatar Mandr4ke
    Mandr4ke jest offline Bez Teamowiec
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    ORDER BY....

    A tak można ? 1 and 1=2 order by 1 ?

    Czy mam pomysł na postgresql 7...

    To zależy... ORDER by nie koniecznie musi być tz. czasówką... Mianowicie...

    Sam postgresql jest za oracle. I tak nie drążąc dziury w całym... może nam niekiedy troche to namieszać. I wtedy jedziemy z Orderem... Inaczej dodatkowe pole zawierające liczbę która będzie używana do generowania ścieżki...

    alert table kategorie add column ordering integer;
    update kategorie SET ordering = id;
    alert table kategorie alert column ordering set not null;

    I dalej książkowo...

    CREATE OR REPLACE FUNCTION createTreePath(integer) RETURNS TEXT AS '
    declare
    in_leaf_id ALIAS FOR $1;
    temprec RECORD;
    reply TEXT;
    BEGIN
    reply := ''/'';
    FOR temprec IN SELECT k.ordering FROM kategorie k join powiazania p on k.id = p.parent_id WHERE p.child_id = in_leaf_id ORDER BY p.depth desc LOOP
    reply := reply || temprec.ordering::TEXT || ''/'';
    END LOOP;
    RETURN reply;
    END;
    ' LANGUAGE 'plpgsql';


    Jakby nie chciało współpracować... Przepraw :


    CREATE OR REPLACE FUNCTION createTreePath(integer) RETURNS TEXT AS '
    declare
    in_leaf_id ALIAS FOR $1;
    temprec RECORD;
    reply TEXT;
    BEGIN
    reply := ''/'';
    FOR temprec IN SELECT k.ordering FROM kategorie k join powiazania p on k.id = p.parent_id WHERE p.child_id = in_leaf_id ORDER BY p.depth desc LOOP
    reply := reply || to_char(temprec.ordering,''000000'') || ''/'';
    END LOOP;
    RETURN reply;
    END;
    ' LANGUAGE 'plpgsql';


    Na podstawie drzew możesz kombinować dalej. Resztę materiału wytargasz z :

    http://www.securitum.pl/baza-wiedzy/...-wariant-ataku

    Twoj link. I dokładnie tak jak tam piszą... SQL i SQL Injection należy znać...
    Czasówki są bardziej pr0

    I powoli przechodzą do lamusa...

    Pomysł... zapomniałem


    SELECT * FROM articles
    WHERE pubdate =
    (SELECT pubdate FROM articles
    ORDER BY pubdate DESC
    LIMIT 1)
    Ostatnio edytowane przez Mandr4ke : 03-02-2009 - 14:05
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  7. #7
    ptz
    ptz jest offline
    Zarejestrowany
    Feb 2009
    Postów
    15

    Domyślnie

    Cytat Napisał Mandr4ke Zobacz post
    ORDER BY....

    A tak można ? 1 and 1=2 order by 1 ?

    Czy mam pomysł na postgresql 7...

    To zależy... ORDER by nie koniecznie musi być tz. czasówką... Mianowicie...

    I powoli przechodzą do lamusa...

    [cut]
    Pomysł... zapomniałem

    Moglbys precyzyjniej? Masz na mysli technike z kolejnym zapytaniem: ORDER BY 1; exec second query--
    ?

    PG vs Oracle - skladania podobna, choc PG chyba jest domyslnie najbezpieczeniejsze z calej watahy. Nie widzialem tez zbyt wiele sqli cheat sheet na PG. Dlaczego? Baza w sumie popularna...

    Czasowka pg7 - no w tym arcie jest pokazana tego typu czasowka

    tx.

  8. #8
    Avatar Mandr4ke
    Mandr4ke jest offline Bez Teamowiec
    Zarejestrowany
    Oct 2008
    Skąd
    W Sieci !!!
    Postów
    282

    Domyślnie

    Yhhhhh.. OK. Noch eine male. Czy jakos tak. Sry że po eng...

    PostgreSQL

    By 1996, it became clear that the name "Postgres95" would not stand the test of time. We chose a new name, PostgreSQL, to reflect the relationship between the original Postgres and the more recent versions with SQL capability. At the same time, we set the version numbering to start at 6.0, putting the numbers back into the sequence originally begun by the Postgres Project.

    The emphasis during development of Postgres95 was on identifying and understanding existing problems in the backend code. With PostgreSQL, the emphasis has shifted to augmenting features and capabilities, although work continues in all areas.

    Major enhancements in PostgreSQL include:

    *

    Table-level locking has been replaced with multi-version concurrency control, which allows readers to continue reading consistent data during writer activity and enables hot backups from pg_dump while the database stays available for queries.
    *

    Important backend features, including subselects, defaults, constraints, and triggers, have been implemented.
    *

    Additional SQL92-compliant language features have been added, including primary keys, quoted identifiers, literal string type coercion, type casting, and binary and hexadecimal integer input.
    *

    Built-in types have been improved, including new wide-range date/time types and additional geometric type support.
    *

    Overall backend code speed has been increased by approximately 20-40%, and backend startup time has decreased 80% since v6.0 was released.

    Woli przypomnienia itd...

    Co do pojedynku oracle z pg... Zdecydowanie Oracle... Na pewno bardziej wydajny i wiecej klamotów...

    Łatwiej chyba Injectiona SQL pacnąć... Z resztą jeden lubi tak a drugi odwrotnie.

    Napisales że pytać ORDER by lub ORDER by 1... Stąd moje pytanie czy mozna tak : 1 and 1=2 order by 1 Bo raczej tak To tylko moje podpowiedzi.

    Tym klamotem też sie pobaw pointeresuj... Nie ma nic na gotowo :P

    select id, cache_sold

    from items i

    WHERE exists

    (select * from

    catalogs_items c

    where catalog_id=1

    and items_id = i.items_id

    and exists (SELECT *

    FROM item_subgenre_links isl

    WHERE id = c.items_id

    and exists (SELECT id

    FROM subgenres

    WHERE id = isl.items_id and genre_id = 9)))

    ORDER BY cache_sold DESC LIMIT 10;
    "Wszystkie komputery PC są kompatybilne, ale niektóre są kompatybilniejsze od innych... Twój jest zawsze mniej kompatybilny..."

  9. #9
    ptz
    ptz jest offline
    Zarejestrowany
    Feb 2009
    Postów
    15

    Domyślnie

    Cytat Napisał Mandr4ke Zobacz post
    Co do pojedynku oracle z pg... Zdecydowanie Oracle... Na pewno bardziej wydajny i wiecej klamotów...

    [ cut ]

    Łatwiej chyba Injectiona SQL pacnąć... Z resztą jeden lubi tak a drugi odwrotnie.

    Napisales że pytać ORDER by lub ORDER by 1... Stąd moje pytanie czy mozna tak : 1 and 1=2 order by 1 Bo raczej tak To tylko moje podpowiedzi.
    1. No z tego co widze 1 and 1=2 order by 1 nie bardzo hula - przynajmniej na mysqlu. Kukne jeszcze na innych DB.

    2. Z tym oracle to roznie bywa - niektorzy 'wychowani' np. na mysqlu nie daja sobie rady na prostych przeszkodach typu DUAL w oracle

    3. Co ciekawe sa rozpowszechnione smieszne mity typu java = nie da rady zrobic sqli. No a java czesto hula z oracle. I trzeba troche wiedzy javowej + oraclowej i mamy sqli Ale to zupelnie marginesie

    tx.

  10. #10
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Glownym problemem jest to, ze jak ktos sie wychowal na MySQLu to ciezko mu sie zazwyczaj przesiasc na Oracle'a
    Ja jakos zawsze blizej bylem PostgreSQL'a i Oracle'a niz MySQL'a - po prostu go nie lubie. Oracle nie ma poza tym historii jako bezpieczna baza... ale za to jest bardzo wydajny, ladnie sie clustruje (czego nie powiem o MySQLu!) itd.

    Nieco off-topic od atakow czasowych
    Co do SQL Inj. pomijajac juz sposoby notacji i konwencje SQLa wszystko i tak bedzie zalezec od programisty piszacego aplikacje. Ja non-stop nekam tych naszych ciolkow co w PHP grzebia kod aby im wbic do glowy co to jest race-condition, sql-injection, command-injection... a co kod trafia do mnie do przegladu to wraca do nich z lista bledow. Jeden "specjalista" od 3 miesiecy nie wstawil bajta na serwer bo kod nie przeszedl QA i security.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. AES 256 known plaintext attack
    By Teeed in forum Kryptografia
    Odpowiedzi: 0
    Autor: 04-24-2008, 20:16
  2. Flooding attack POMOCY
    By mauzer in forum Linux
    Odpowiedzi: 18
    Autor: 02-08-2008, 19:24

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj