Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
SQL injection в Postgresql[многострочный запрос] |

05.09.2009, 11:29
|
|
Новичок
Регистрация: 04.09.2009
Сообщений: 6
Провел на форуме: 10258
Репутация:
1
|
|
SQL injection в Postgresql[многострочный запрос]
Доброго дня!
Может быть кто-нибудь подскажет, как провести SQL Injection в Postgresql если запрос в несколько строк, и я не могу закомментировать остаток, например..
line 10 WHERE a.id=[тут иньекция] AND
line 11 b.b_id = a.a_id AND
line 12 c.c_id = b.b_id AND
line 13 c.c_id = 100;
комментарий вида -- комментит только до конца строки, то что на следующей строке он не комментит.
комментарий вида /* требует чтобы коммент закрывался, а вставить */ в конце запроса я не могу.
названия таблиц a,b,c я не знаю, поэтому не могу закончить запрос сам.
жду комментариев. спасибо.
|
|
|

05.09.2009, 11:30
|
|
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
Провел на форуме: 4358210
Репутация:
2017
|
|
попробуй #
|
|
|

05.09.2009, 11:39
|
|
Новичок
Регистрация: 04.09.2009
Сообщений: 6
Провел на форуме: 10258
Репутация:
1
|
|
попробовал. не комментит. синтаксическая ошибка.
|
|
|

05.09.2009, 11:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от osnovatel
Доброго дня!
Может быть кто-нибудь подскажет, как провести SQL Injection в Postgresql если запрос в несколько строк, и я не могу закомментировать остаток, например..
line 10 WHERE a.id=[тут иньекция] AND
line 11 b.b_id = a.a_id AND
line 12 c.c_id = b.b_id AND
line 13 c.c_id = 100;
комментарий вида -- комментит только до конца строки, то что на следующей строке он не комментит.
комментарий вида /* требует чтобы коммент закрывался, а вставить */ в конце запроса я не могу.
названия таблиц a,b,c я не знаю, поэтому не могу закончить запрос сам.
жду комментариев. спасибо.
Думаю такую штуку можно провернуть.
Ориентируйся на
select 1 union select 2 union select 3;
тоесть в твоем случае нужно будет знать имена таблиц, которые участвуют в изначальной выборке.
например у тебя есть запрос:
select title,body from news,users,topic where users.id={sqlinj | news.author_id} AND news.topic_id=topic.id;
то переписать его можно так:
select title,body from news,users,topic where user.id={
0 union select null, null
union select null,null from news,users,topic where 1=1
} AND news.topic_id=topic.id;
Примерно так.
ps Для таких вопросов есть специальная тема.
https://forum.antichat.ru/thread46016.html
Последний раз редактировалось geezer.code; 05.09.2009 в 11:56..
|
|
|

05.09.2009, 12:01
|
|
Новичок
Регистрация: 04.09.2009
Сообщений: 6
Провел на форуме: 10258
Репутация:
1
|
|
geezer.code, согласен. Но вся проблема в том, что названия таблиц я не знаю.. в моем примере A, B, C - это алиасы(сокращения).
верхнюю часть запроса, где SELECT и FROM посмотреть не удается. Вот такая вот задачка 
|
|
|

05.09.2009, 12:05
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
ps Для таких вопросов есть специальная тема.
https://forum.antichat.ru/thread46016.html
ты уверен что это алиасы? если взглянуть на c_id a_id b_id то так почемуто не кажется.
|
|
|

05.09.2009, 12:19
|
|
Новичок
Регистрация: 04.09.2009
Сообщений: 6
Провел на форуме: 10258
Репутация:
1
|
|
geezer.code, да, уверен. вот реальный запрос:
where XX.id=[injection]
AND AB.company_id = XX.id
AND XXX.company_id = XX.id
AND XXX.people_id = 100;
настоящие названия таблиц XX и АВ мне удалось подобрать, а вот с XXX проблема.
|
|
|

05.09.2009, 16:43
|
|
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме: 9098076
Репутация:
4303
|
|
line 10 WHERE a.id=1;[тут иньекция];SELECT 1 AND
line 11 b.b_id = a.a_id AND
line 12 c.c_id = b.b_id AND
line 13 c.c_id = 100;
обрамляешь запрос точками с запятой, запросы будут выполняеться по очереди. a.id у тебя будет иметь вид
1;select version()::int;SELECT 1
https://forum.antichat.ru/thread35599.html
Последний раз редактировалось Spyder; 05.09.2009 в 17:27..
|
|
|

05.09.2009, 17:02
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Spyder, а ошибка в последнем запросе разве не играет роли ?
то есть если будет ошибка, то будет вывод ? Он ведь не знает названия всех таблиц, которые используются в условии ?
|
|
|

05.09.2009, 17:06
|
|
Новичок
Регистрация: 04.09.2009
Сообщений: 6
Провел на форуме: 10258
Репутация:
1
|
|
Spyder, тогда последний запрос будет иметь вид:
SELECT 1 AND b.b_id = a.a_id AND c.c_id = b.b_id AND c.c_id = 100;
на что выпадет ошибка: missing FROM-clause entry for table "b".
>>https://forum.antichat.ru/thread35599.html
До того как запостить свой топик, читал эту и другие ветки, ничего по моей теме не нашел.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|