![]() |
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 я не знаю, поэтому не могу закончить запрос сам. жду комментариев. спасибо. |
попробуй #
|
попробовал. не комментит. синтаксическая ошибка.
|
Цитата:
Ориентируйся на 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, согласен. Но вся проблема в том, что названия таблиц я не знаю.. в моем примере A, B, C - это алиасы(сокращения).
верхнюю часть запроса, где SELECT и FROM посмотреть не удается. Вот такая вот задачка :) |
ps Для таких вопросов есть специальная тема.
https://forum.antichat.ru/thread46016.html ты уверен что это алиасы? если взглянуть на c_id a_id b_id то так почемуто не кажется. |
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 проблема. |
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, а ошибка в последнем запросе разве не играет роли ?
то есть если будет ошибка, то будет вывод ? Он ведь не знает названия всех таблиц, которые используются в условии ? |
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 До того как запостить свой топик, читал эту и другие ветки, ничего по моей теме не нашел. |
| Время: 09:20 |