Взлом своими мозгами или пример мышления — HackZona.Ru

Взлом своими мозгами или пример мышления

Взлом своими мозгами или пример мышления

Тип статьи:
Со старой ХакЗоны.
Привет, мой юный друг. В первой статье я описал два вида взломов,
кторые бывают: шаблонный и «свой» взломы. Вообще, в дальнейшем я
не буду особо заострять внимание на шаблонных взломах, причины
я описывал в первой статье. Итак, сегодня я расскажу тебе об одном
взломе, который я произвел специально для написания этой статьи.

Итак, существует сайт: www.hasher.ru. выкачав все файлы
из этого сайта, я обнаружил интересную директорию:
www.hasher.ru/sale/admin/, открыв эту дерикторию, я увидел
красивую картинку, на которой красовалась надпись: «Обратотка заказов»,
а под картинкой интересная форма, с кнопочкой «Логин». Как я не
пытался угадать пароль, скрипт не поддался. Однако потом, до меня
дошли сведения, что каждый модуль этой системы находиться в своем
файле, и вызывается этот модуль не из оного скрипта, а загружаясь
отдельно. Также мне стало известно, что в этой системе существует
модуль, который генерирует страницу для распечатки каких-то данных,
таким образом, можно предположить, что система имеет файл, корень
названия которого «print». Попробывав ввести адрес
www.hasher.ru/sale/admin/print.php, я получил страницу, с
характерной ошибкой:

«Warning: mysql_num_rows(): supplied argument is not a valid MySQL
result resource in
/usr/home/hasher/public_html/www.hasher.ru/sale/admin/print.php
on line 18» — она говорит нам про какую-то ошибку при работе с
MySQL. Но… увы :(, это нам ничего не дает, как ни крути...

Но! Попробуем открыть хтмл-код главной страницы, той, где нас
просили ввести лоигн. Мы видим весьма интересный ява-скрипт,
понятно, что на существующей странице, то есть на странице, кторая
еще не сгенерирована, ибо не введен валидный логин, этот код нигде
не используется. Получается, что мы, как бы приоткрыли часть кода
главной страницы атакуемой системы. Итак, что же мы видим в этом
скрипте:

function toprint(obj)
{
var a = (obj.id.value);
var b = (forme.sss.value);
var p = (forma.pr.value);
var n1 = Number(fnum.num.value);
var n2 = n1+1;
var d = ",";
var q = «id = »;
var z = " or ";
var c = a+d+b;
var topr = p+q+a+z;
fnum.num.value = n2;
forma.pr.value = topr;
formb.mail1.value = topr;
formc.mail2.value = topr;
formd.del.value = topr;
formf.saving.value = topr;
formg.edit.value = topr;
forme.sss.value = c;
}

Сразу затрагивает внимание эта операция: var topr = p+q+a+z;.
Она интересна потому что почти всем остальным объектам этой
страницы присваивается результат этой операции. Итак, мы видим,
что в этой операции объявляется переменная «topr», которая
собирается из некоторых кусочков (p, q, a и z). Итак, переменная
«р», она у нас берется из value какого-то объекта страницы, можно
предположить, что это объект input. Затем переменная «q», она
равна строке «id = ». Переменная «а», она равна id, обекта, по которому
случается событие, то есть если это ,
то «а» будет равно 666. И, наконец переменная «z», она равна строке
" or ". Очень настораживают переменные q и z, строки, содержащиеся
в них, очень напоминают mysql-запрос. Теперь посмотрим, что дальше происходит
с переменной «р»: в ее объект записывается результат topr, то есть «р»
у нас как бы в «круговороте». Теперь попробуем прикинуть, каким будет topr,
если в него подставить свои данные: topr=«id = 3 or », это при условии, что
переменная «р» пустая, то бишь после первого вызова функции. Итак, все это
хозяйство очень напоминает mysql-запрос, также мы знаем, что он (запрос)
записывается в value объекта pr, то бишь, запрос передается в переменной pr.

Теперь вспомним про ошибку, которую нам выдавал файл print.php, понятно, что
скрипт ругался на отсутвие или не валидность mysql-запроса. Теперь предположим,
что наша переменная pr передается методом GET, тогда пробуем передать
срипту print.php нашу переменную:

«www.hasher.ru/sale/admin/print.php?pr=id = 3 or»,
видим, что ошибка пропала, ))) значит мы где-то рядом, теперь попробуем вместо
3, поставить другую цифру, например, 6, и что мы видим :)))? *(скрипт выдал нам
страницу, для печати данных о пользователе 6)

Вот, в принципе, и все, сам я было на этом остановился, но… потом до меня дошло,
что «pr» чем-то похоже на «print». Отсюда следует, что также существуют
файлы, названия которых похожи на другие объекты страницы. Для примера возьмем
formf.saving.value, попробывав «побрутить» название файла вручную, находим,
что существует файл save.php, он также имеет такую же ошибку, что и print.php.
Сдесь все также, как и с print.php, отличие только в том, что скрипт получает
переменную saving, теперь попробывав передать переменную saving с тем же
запросом, что и для print.php, мы увидим, что скрипт поддался, и даже выдал нам
больше информации, чем в первом примере. А теперь попробуем ввести то же самое,
только без " or " :)) *(скрипт выдает всю таблицу).

Вот и все. На этом взлом окончен, во всяком случае я, больше ничего не нашел,
может тебе повезет больше...


© Franklin
Нравится
Не нравится

7 комментариев

17:03
Плагиат, причем очень старый :
http://gfs-team.ru/?act=articles&pact=17
22:36
уфф.. не так выразился... старый материал (2005 год, может и раньше). Копирайты-то указаны, но вот первоисточник отсутствует. Ну ладно, дело не в этом.
Статья норм, только вот в середине глюк...
18:13
Вопросы все ровно возникнут новые )) но статья хоть старая но имеет права тут быть)
00:49
На днях я пригласил к себе в кабинет гувернантку моих детей, Юлию Васильевну. Нужно было посчитаться.
Садитесь, Юлия Васильевна! сказал я ей. Давайте посчитаемся. Вам наверное нужны деньги, а вы такая церемонная, что сами не спросите Ну с Договорились мы с вами по тридцати рублей в месяц
По сорока
Нет, по тридцати У меня записано Я всегда платил гувернанткам по тридцати. Ну с, прожили вы два месяца
Два месяца и пять дней
Ровно два месяца У меня так записано. Следует вам, значит, шестьдесят рублей Вычесть девять воскресений вы ведь не занимались с Колей по воскресеньям, а гуляли только да три праздника
Юлия Васильевна вспыхнула и затеребила оборочку, но ни слова!..
Три праздника Долой, следовательно, двенадцать рублей Четыре дня Коля был болен и не было занятий Вы занимались с одной только Варей Три дня у вас болели зубы, и моя жена позволила вам не заниматься после обеда Двенадцать и семь девятнадцать. Вычесть останется гм сорок один рубль Верно?
Левый глаз Юлии Васильевны покраснел и наполнился влагой. Подбородок ее задрожал. Она нервно закашляла, засморкалась, но ни слова!..
Под Новый год вы разбили чайную чашку с блюдечком. Долой два рубля Чашка стоит дороже, она фамильная, но бог с вами! Где наше не пропадало? Потом с, по вашему недосмотру Коля полез на дерево и порвал себе сюртучок Долой десять Горничная тоже по вашему недосмотру украла у Вари ботинки. Вы должны за всем смотреть. Вы жалованье получаете. Итак, значит, долой еще пять Десятого января вы взяли у меня десять рублей
Я не брала, шепнула Юлия Васильевна.
Но у меня записано!
Ну, пусть хорошо.
Из сорока одного вычесть двадцать семь останется четырнадцать
Оба глаза наполнились слезами На длинном хорошеньком носике выступил пот. Бедная девочка!
Я раз только брала, сказала она дрожащим голосом. Я у вашей супруги взяла три рубля Больше не брала
Да? Ишь ведь, а у меня и не записано! Долой из четырнадцати три, останется одиннадцать Вот вам ваши деньги, милейшая! Три три, три один и один Получите с!
И я подал ей одиннадцать рублей Она взяла и дрожащими пальчиками сунула их в карман.
Merci, прошептала она.
Я вскочил и заходил по комнате. Меня охватила злость.
За что же merci? спросил я.
За деньги
Но ведь я же вас обобрал, чёрт возьми, ограбил! Ведь я украл у вас! За что же merci?
В других местах мне и вовсе не давали
Не давали? И не мудрено! Я пошутил над вами, жестокий урок дал вам Я отдам вам все ваши восемьдесят! Вон они в конверте для вас приготовлены! Но разве можно быть такой кислятиной? Отчего вы не протестуете? Чего молчите? Разве можно на этом свете не быть зубастой? Разве можно быть такой размазней?
Она кисло улыбнулась, и я прочел на ее лице: «Можно!»
Я попросил у нее прощение за жестокий урок и отдал ей, к великому ее удивлению, все восемьдесят. Она робко замерсикала и вышла Я поглядел ей вслед и подумал: легко на этом свете быть сильным!
19:54
Кто нибудь, подскажите как прошить IMEI в Sony Ericsson K800i, зарание спасибо...
15:07
норм респект я новичок мне как раз
00:51
Мне как то не важен так токовой код важно мышление как думал человек, я уверен на 700% это просто супер, юзать чужие проги и использовать чужие найденные кривые коды этому можно научиться, а грамотно соображать и умна использовать этому к сожелению практически невозможно научиться, у меня была похожая ситуация, но она не стоит внимания так как я на половине остановился... завис. респект те за статейку 5 балов!