ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
взлом<br />
МЕТОД СРАБОТАЛ ЗА 48 ЗАПРОСОВ, ОЧЕНЬ НЕПЛОХО!<br />
КОД ЭКСПЛОЙТА, ИСПОЛЬЗУЮ-<br />
ЩЕГО ДВОИЧНЫЙ ПОИСК<br />
СКОРОСТЬ РАБОТЫ БЬЕТ ВСЕ РЕКОРДЫ<br />
ВОССТАНАВЛИВАЕМ БИНАРНИК<br />
ИЗ IL-КОДА<br />
ДЛЯ ХАКЕРА ОШИБКА – БОЛЬШЕ,<br />
ЧЕМ ПРОСТО ОШИБКА<br />
НА ВИКИПЕДИИ МОЖНО НАЙТИ ПРОСТОЕ И ПОНЯТНОЕ ОПИСАНИЕ<br />
МЕТОДА БИНАРНОГО ПОИСКА :)<br />
А если рассматривать реализацию на языке<br />
программирования, то вот пример функции, реализующей<br />
поиск нужного символа этим методом:<br />
returns/', $res) {<br />
echo $j;<br />
continue;<br />
}<br />
}<br />
Принцип работы прост — для каждого символа<br />
сравниваем значение его ASCII-кода со всеми<br />
возможными значениями символов. Если выполняется<br />
некоторое условие, то символ найден,<br />
и его можно выводить на экран. Если условие не<br />
выполняется — ищем дальше.<br />
Очевидно, что плюсов у этого метода нет. Совсем.<br />
За исключением того, что накалякать код такого<br />
скрипта очень просто. Но разве это то, что нужно<br />
настоящему хакеру? Оставим этот способ киддисам<br />
и будем двигаться дальше.<br />
БИНАРНЫЙ<br />
(ДВОИЧНЫЙ) ПОИСК<br />
Каждый уважающий себя программист знает о<br />
методе под названием бинарный, или двоичный,<br />
поиск. Этот метод используется для поиска<br />
позиции элемента в отсортированном массиве. И<br />
XÀÊÅÐ 07 /127/ 09<br />
именно он применяется почти во всех адекватных<br />
скриптах, программах и эксплойтах, работающих<br />
со слепыми SQL-инъекциями.<br />
Алгоритм работает следующим образом:<br />
1. Áåðåì äèàïàçîí âñåõ âîçìîæíûõ<br />
ñèìâîëîâ (äëÿ õåøà MD5 — [0-9,a-f])<br />
è ñðàâíèâàåì çíà÷åíèå êîäà ñèìâîëà â<br />
ÁÄ ñ êîäîì ñèìâîëà, êîòîðûé ìû ïåðåäàëè<br />
â çàïðîñå<br />
2. Åñëè êîä ñèìâîëà â ÁÄ áîëüøå,<br />
÷åì êîä ïåðåäàííîãî ñèìâîëà, òî íà<br />
ñëåäóþùåì øàãå â êà÷åñòâå äèàïàçîíà<br />
âîçìîæíûõ ñèìâîëîâ áåðåì äèàïàçîí<br />
îò ñèìâîëà, ñ êîòîðûì ìû òîëüêî ÷òî<br />
ñðàâíèâàëè çíà÷åíèå â ÁÄ, äî ïðàâîé<br />
ãðàíèöû ïðåäûäóùåãî äèàïàçîíà è èäåì<br />
íà øàã 1<br />
3. Åñëè êîä ñèìâîëà ìåíüøå, òî áåðåì<br />
äèàïàçîí îò òåêóùåãî ñèìâîëà äî ëåâîé<br />
ãðàíèöû äèàïàçîíà íà ïðåäûäóùåì<br />
øàãå è èäåì íà øàã 1<br />
4. Åñëè ñèìâîë íå áîëüøå è íå ìåíüøå,<br />
òî ìû êàê ðàç åãî è íàøëè<br />
function getChar($url, $field,<br />
$pos, $lb=0, $ub=255) {<br />
while(true) {<br />
$M = floor($lb + ($ub-$lb)/2);<br />
if(cond($url, $field, '',<br />
$pos, $M)==1) {<br />
$lb = $M + 1;<br />
}<br />
else<br />
return chr($M);<br />
if($lb > $ub)<br />
return -1;<br />
}<br />
}<br />
Рассмотрим этот способ на примере получения из<br />
базы MD5-хеша юзера. При этом учтем следующие<br />
условия:<br />
1. Диапазон возможных символов: 0,1,2,3,4,5,6,7,<br />
8,9,a,b,c,d,e,f.<br />
065