среда, 25 ноября 2009 г.

SQLinj XYNTA

Это мой первый пост и он будет полон ненависти, как , сразу предупреждаю, и многие последующие.

Начну я с того, что

"sql инъекции являются типичной уязвимость web-приложений, основная их идея заключается в бла-бла-бла, ниже мы приводим нисколько примеров, которые описывают типичные способы проведения инъекций.. "

такую высокопарную пердь вы читали миллионы раз в сотнях мануалов "для начинающих "! То что эти примеры скопипижжены друг с друга, я принимаю как данность и напишу об этом позже. Больше всего выбешивает их близость к реальным условиям, а точнее её полное отсутствие. Можно привести десятки примеров для эксплуатации запроса типа

SELECT бла FROM бла_table WHERE id=*;

В примерах будет описан красочно обход разносортных WAF , mod_security и многий прочий всякий кал.
НО!..
Хоть бы один Ыксперт, мать его, заикнулся о том, что запросы бывают не только такие, но ещё и такие:

SELECT b.*, UNIX_TIMESTAMP(b.book_date) AS book_date, SUM(t.tran_cost) AS book_contribution, g.book_genre_title AS book_genre, g.book_genre_id, m.name FROM bookreview b LEFT JOIN theopenp_forums.prb_members m ON m.id = b.book_user LEFT JOIN transactions t ON t.tran_package_item = b.book_id LEFT JOIN packages pa ON t.tran_package = pa.pack_id LEFT JOIN book_genre g ON b.book_genre = g.book_genre_id WHERE book_id =* AND pa.pack_type in ('BK', 'BKS') AND b.book_approved = 1 AND b.book_denied = 0 GROUP BY b.book_id

И что для того, чтоб победоносно выхватить солёный хеш и носиться с ним, аки уездный мудак (так как пользы от такого хеша ...), нужно просидеть не 5 минут и даже не полчаса, насилуя своё абстрактное мышление и пытаясь понять, какого же монстра мы собираем таким запросом и чего им можно вытащить.

Конечно, в случае слепой инъекции, можно запустить перебор и пойти попить чайку, но имейте ввиду, что при херовой связи и большой базе, хешик может стать лучшим подарком к вашему 60летию.

Так вот, возвращаясь к нашим бумагомарателям, ГДЕ СЛОЖНЫЕ ПРИМЕРЫ!? ГДЕ СЛОЖНЫЕ ПРИМЕРЫ, БЛЕАТЬ!? Почему я всё время созерцаю в примерах несуразную хуйню, в то время, как в серьёзных приложениях из реального мира используются такие SQL оглобли, что даже с моим расширением монитора мне приходится нарезать их в 3 строчки!