HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.07.2017, 20:13
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Задания прекратили быть привилегией закрытых групп (вроде бы, а это одна из самых интресных вещей), поэтому предлагаю сделать такую тему и для паблика.

Могу предложить несложное, но достаточное для того, чтобы почувствовать вкус нахождения правильного решения.

Итак, есть скрипт, работающий с таблицей "pricelist", в этой же базе лежит таблица "admin_site",

нужно вывести из нее поля user, password, email.

Код:
$id){
    $sql="select tovar, dataprice, cena from pricelist where $key = $id and kmag=1";
    if ($r = $db->query($sql)) {
        while($obj = $r->fetch_object()){
            echo "
| $obj->dataprice | $obj->tovar | $obj->cena |
";
        }
        $r->close();
    }
}
$db->close();
?>
Понятно, что скрипт уязвим для SQLi, и нужно составить рабочий вектор.

На свой сервер ставить не буду (чтобы не подвергать насилию), поэтому решаем по тексту скрипта,

или вот тестовые таблички, ставим на локалке.

.SpoilerTarget" type="button">Spoiler: Create table
--

-- Структура таблицы `admin_site`

--

DROP TABLE IF EXISTS `admin_site`;

CREATE TABLE IF NOT EXISTS `admin_site` (

`id` int(2) NOT NULL,

`user` varchar(20) NOT NULL,

`password` varchar(41) NOT NULL,

`email` varchar(40) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

--

-- Дамп данных таблицы `admin_site`

--

INSERT INTO `admin_site` (`id`, `user`, `password`, `email`) VALUES

(1, 'admin', '*4414E26EDED6D661B5386813EBBA95065DBC4728', 'webmaster@localhost');

-- --------------------------------------------------------

--

-- Структура таблицы `pricelist`

--

DROP TABLE IF EXISTS `pricelist`;

CREATE TABLE IF NOT EXISTS `pricelist` (

`id` int(4) NOT NULL,

`dataprice` date NOT NULL,

`tovar` varchar(100) NOT NULL,

`cena` int(10) NOT NULL,

`kmag` int(1) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

--

-- Дамп данных таблицы `pricelist`

--

INSERT INTO `pricelist` (`id`, `dataprice`, `tovar`, `cena`, `kmag`) VALUES

(1, '2017-07-26', 'ноутбук ASUS X540LA, 90NB0B02-M17590', 26990, 1);

Пример штатного вызова скрипта: test.php?id=1

Нужно составить вызов так, чтобы вернулось содержимое "admin_site".

Название таблиц менять нельзя.

Ответы присылайте в личку, в топике не флудим и не даем подсказки, не так часто публикуются задания, чтобы можно было ломать удовольствие порешать их, обменяемся впечатлениями после закрытия задания.

Скрипт упростил специально, чтобы не тратить время на поиск уязвимого участка, только смысловая нагрузка и минимальный функционал.

Ничего не отвлекает.

Для групп можно было бы усложнить задачу, но сейчас важнее найти массовый интерес.

Поэтому пробуем минималистичный вариант, но для групп установим срок на решение - две недели,

а для остального большинства - один месяц.

Сейчас слегка занят, по выходным вообще не будет времени, но в рабочие дни несколько раз в день буду проверять личку и заполнять таблицу прошедших задание.

Сильно не нервничайте, если не сразу обработаю результат, таблица все равно будет заполняться в порядке времени присланного ответа.

Удачи.

Задание прошли:

crlf

t0ma5

SooLFaa

cat1vo




rrock

Evan


st55


== Прошло две недели, от групп ответы больше не принимаются.

Shubka75 (1 часть)

== После публикации некоторых подсказок справились:

seotor

Jup1ter_

shotya


=======

http://z1.ru.host1606652.serv16.host.../test.php?id=1,

принимает не все ответы.

Ориентируйтесь на свои локальные результаты.

=======

Принимается и частичное прохождение:

1 часть - получить вывод

2 часть - протащить в запрос строку "admin_site"

Проходить можно в любом порядке.
 
Ответить с цитированием

  #2  
Старый 27.07.2017, 11:25
BabaDook
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами: 5797046

Репутация: 40


По умолчанию

Заливай на сервер. Делай по людски

.SpoilerTarget" type="button">Spoiler
Вход на панель управления: адрес : https://panel.hostland.ru логин : host1606652 пароль: 11a3bb7f Вход по FTP: сервер : ftp16.hostland.ru логин : host1606652 пароль : fb4b6c99 Вход MySQL: https://mysql16.hostland.ru логин : host1606652 пароль : 59befe04 database : host1606652 host : localhost
 
Ответить с цитированием

  #3  
Старый 27.07.2017, 13:57
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Задание уже составлено по людски, в соответствии с нормами, которые сложились и на ачате и на рдоте.

Даны исходники, поднимаем тестовую площадку у себя (при необходимости).

Тем не менее, жест доброй воли зачтен конечно, посмотрим сколько продержится площадка.

Сканеры и пр. тулзы площадка выдержит недолго, тарифный план не позволит.

Залито:

http://z1.ru.host1606652.serv16.host.../test.php?id=1

Все же советую поднять свою тестовую площадку.
 
Ответить с цитированием

  #4  
Старый 27.07.2017, 18:12
Veil
Флудер
Регистрация: 21.05.2015
Сообщений: 2,031
С нами: 5779766

Репутация: 72


По умолчанию

Цитата:
Сообщение от BabaDook  

Заливай на сервер. Делай по людски
Spoiler
Вход на панель управления: адрес :
https://panel.hostland.ru
логин : host1606652 пароль: 11a3bb7f Вход по FTP: сервер : ftp16.hostland.ru логин : host1606652 пароль : fb4b6c99 Вход MySQL:
https://mysql16.hostland.ru
логин : host1606652 пароль : 59befe04 database : host1606652 host : localhost
Бабадук хакер авторитетный.
 
Ответить с цитированием

  #5  
Старый 27.07.2017, 22:33
Тот_самый_Щуп
Участник форума
Регистрация: 23.03.2017
Сообщений: 265
С нами: 4812086

Репутация: 119
По умолчанию

Цитата:
Сообщение от Veil  

Бабадук хакер авторитетный.
Понятия чтит? Как в код влезать четко, знает?

По теме, QUERY_STRING - не везде работать то будет, т.е многие редакции его будут игнорировать, правильнее было поставить REQUEST_URI который корректно будет везде работать.

Можно считать что я прошёл? Поставил на сервер, $_SERVER['QUERY_STRING'] - пусто. Фильтр не действует
 
Ответить с цитированием

  #6  
Старый 28.07.2017, 09:34
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Цитата:
Сообщение от Gorbachev  

По теме, QUERY_STRING - не везде работать то будет, т.е многие редакции его будут игнорировать, правильнее было поставить REQUEST_URI который корректно будет везде работать.
Можно считать что я прошёл? Поставил на сервер, $_SERVER['QUERY_STRING'] - пусто. Фильтр не действует
Правильное замечание, поправил скрипт.

На конкретном сервере, если не завелся фильтр, да - удача, личная.

Но в рамках задания за прохождение, к сожалению , не считается.
 
Ответить с цитированием

  #7  
Старый 28.07.2017, 14:37
BabaDook
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами: 5797046

Репутация: 40


По умолчанию

Какой там хакер? Какие понятие, на хую я крутил всю эту хуета.

crlfхакер
 
Ответить с цитированием

  #8  
Старый 30.07.2017, 01:37
t0ma5
Постоянный
Регистрация: 10.02.2012
Сообщений: 830
С нами: 7502006

Репутация: 90


По умолчанию

все заняты делами или всем плевать?

хороший таск, спасибо
 
Ответить с цитированием

  #9  
Старый 31.07.2017, 19:38
SooLFaa
Постоянный
Регистрация: 17.03.2014
Сообщений: 530
С нами: 6398966

Репутация: 154


По умолчанию

Действительно клевый
 
Ответить с цитированием

  #10  
Старый 31.07.2017, 20:37
cat1vo
Новичок
Регистрация: 12.08.2009
Сообщений: 1
С нами: 8814194

Репутация: 0
По умолчанию

Хорошее задание, почерпнул для себя кое-что новое! Надеюсь будут еще
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.