• XSS.stack #1 – первый литературный журнал от юзеров форума

Вопрос по эксплуатации SQLi

dreadenergy

RAM
Пользователь
Регистрация
23.05.2022
Сообщения
147
Реакции
13
Господа , прошу не кидаться ссаными тряпками , а подсказать решение вопроса. А в идеале и место в котором это подробно разжовано, потому что все курсы и учебники , к сожалению не могут ответить на конкретно поставленный вопрос, либо я не могу этого понять. По поиску к сожалению тоже конкретного решения найти не могу.
Суть - Объясните пожалуйста мне тупоголовому , как проэксплуатировать найденную уязвимость CWE-89 до реверса.
Если система выполняет команду слип , значит в теории она выполняет любую команду. Как мне превратить " 10'XOR(1*if(now()=sysdate(),sleep(6),0))XOR'Z "в рев шелл , я просто не могу дойти своим умом.
 
Если система выполняет команду слип , значит в теории она выполняет любую команду.
Это не так работает xD. В теории конечно если у тебя будет не time-based, а stack query, тогда можно будет выполнить и системную команду, но в твоём примере такого нет.
 
Это не так работает xD. В теории конечно если у тебя будет не time-based, а stack query, тогда можно будет выполнить и системную команду, но в твоём примере такого нет.
Да я немного не так выразился , я имел в виду приколясы SQLmap , --os-cmd , --os-shell . Эта падаль на отрез отказывается их устанавливать , ссылаясь на отсутствие прав записи , при этом пользователь "admin_sitename" там кроме этой еще 3 находится и все с доступом к базе , но нет не хешей не паролей. Вот я и думаю что не может же у админа не быть прав на изменение, значит я криворукий и как то не так общаюсь с мапом.
Тоесть получается что прочитать и сдампить базу я могу , а шеллы sqlmap не работают.
 
Да я немного не так выразился , я имел в виду приколясы SQLmap , --os-cmd , --os-shell . Эта падаль на отрез отказывается их устанавливать , ссылаясь на отсутствие прав записи , при этом пользователь "admin_sitename" там кроме этой еще 3 находится и все с доступом к базе , но нет не хешей не паролей. Вот я и думаю что не может же у админа не быть прав на изменение, значит я криворукий и как то не так общаюсь с мапом.
Тоесть получается что прочитать и сдампить базу я могу , а шеллы sqlmap не работают.
Все "приколясы" sqlmap работают точно также...
Код:
--is-dba --privileges --roles
Для начала проверь права, префикс admin не значит, что он админ субд xD
 
Все "приколясы" sqlmap работают точно также...
Код:
--is-dba --privileges --roles
Для начала проверь права, префикс admin не значит, что он админ субд xD
А еще можно глупый вопрос ? Получается если прав не окажется и меня не интересуют сами базы как таковые , а только доступ , то это "мертвая" уязвимость и раскачать ее до шела не получится ?
 
А еще можно глупый вопрос ? Получается если прав не окажется и меня не интересуют сами базы как таковые , а только доступ , то это "мертвая" уязвимость и раскачать ее до шела не получится ?
Привет, не буду последней инстанцией, но, возможно, твоя проблема начинается с того, что авторизация проходит где-то на другой стороне, а не из под той базы, к которой ты обращаешься..
 
А еще можно глупый вопрос ? Получается если прав не окажется и меня не интересуют сами базы как таковые , а только доступ , то это "мертвая" уязвимость и раскачать ее до шела не получится ?
Если прав вообще нет (такое бывает) и ты можешь только читать бд, тогда единственный вариант остаётся искать УЗ, брутить хэшики, попадать в админку, там заливать шелл.
Но если у тебя там и админ панельки нет, и в базе учёток нет, скорее всего да, это просто какой нибудь новостной портал \ блог, где администрирование проходит в другом месте. В таком случае - да, это бесполезная скуля
 
Если прав вообще нет (такое бывает) и ты можешь только читать бд, тогда единственный вариант остаётся искать УЗ, брутить хэшики, попадать в админку, там заливать шелл.
Но если у тебя там и админ панельки нет, и в базе учёток нет, скорее всего да, это просто какой нибудь новостной портал \ блог, где администрирование проходит в другом месте. В таком случае - да, это бесполезная скуля
Н там по ходу так и есть , имена, мылы , номера , активности , а по паролям пусто... Ладно , спасибо за подсказки.
 
Еще никак не доходит , вот если уязвимость нашлась в теле запроса , всё понятно --data="". А если уязвимость в параметре запроса , сразу за GET какой ключ нужно указывать?
Сканер показывает такой запрос

GET /app_api_v1/notiList?fn_name=buildDetail'%20AND%20((42)=(43-1))%20AND%20'000Ri2x'='000Ri2x&phone= HTTP/1.1
X-Requested-With: XMLHttpRequest
Referer: https://******.**.**/
Cookie: PHPSESSID=**********; ci_session=******
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,br
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Host: *******.**.**
Connection: Keep-alive

sqlmap -u "*******.**.**" --data="buildDetail'%20AND%20((42)=(43-1))%20AND%20'000Ri2x'='000Ri2x&phone= HTTP/1.1" -p "fn_name" --dbs --level=5 --risk=3 сразу дает ошибку - all testable parametrs you provided are not present within the given request data.

А если просто запускать мап по урл --dbs он в итоге говорит что ничего не находит. Но при этом на фальш позитив от сканера не похоже , потому что он по запросу выше дает пруф

SQL query - SELECT database()
*****_db
 
-p TESTPARAMETER Testable parameter(s) если конкретно хочешь указать параметр, в твоем случае fn_name
Пейлоад убери и поставь звездочку

--data он в тело пихает потому что POST запрос, если у тебя гет, дату убери тоже
 
-p TESTPARAMETER Testable parameter(s) если конкретно хочешь указать параметр, в твоем случае fn_name
Пейлоад убери и поставь звездочку

--data он в тело пихает потому что POST запрос, если у тебя гет, дату убери тоже
Звездочку или %INJECT HERE%. Мне просто второй вариант нагляднее кажется и поэтому я его пиарю))))

Я так понял, что уязвимость нашел Acunetix. Ну или что-то еще. В этом случае, можешь попробовать перезапустить сканирование, но пустив трафик через тот же Burp. И посмотреть как сканер ищет уязвимость, как цепляется за нее. После этого уже можно взять руководство по мапе (https://github.com/sqlmapproject/sqlmap/wiki/usage) и попытаться помочь ей зацепиться. Но как по мне, иногда проще взять Python и написать конкретный сканер под конкретную задачу. Бывает никакие танцы с бубнами не помогают и все время потраченное на мапу не имело никакого смысла.

Но лучше, все же, внимательно почитать статьи по SQLi. Судя по всему, время на это потрачено не было. Либо было потрачено слишком мало. В ином случае, не возникало бы параллели между blind time-based и rce. Ну и уповать на мапу не стоит. Это инстурмент автоматизации, который так же не лишен недостатков. Ситуации бывают крайне разные и инструмент физически не может все охватить, каким бы замечательным он ни был.
 
Мне просто второй вариант нагляднее кажется и поэтому я его пиарю))))
Конечно, согласен

Просто видимо человек совсем не ведает, что творит ) Потому и написал что и куда впихнуть лишь бы было
А так да, как минимум sqlmap -hh и смотреть хоть что он умеет
 
Выполни через --sql-query запрос:
SQL:
SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id=connection_id();
Если ответ начинается с INSERT, следом можешь сдвоенным запросом попробовать оформить stacked:
SQL:
XOR(if((SELECT count(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id=connection_id() AND info like '%select count%values%')=1,sleep(5),0))XOR'1'); select sleep(5);--
Если задержка на запрос составит 10+ секунд (юзаем два sleep запроса по 5 сек каждый), значит stacked вектор работает и можешь инсертить свои данные в БД через второй запрос: select sleep(5);--

Ну а так конечно лучше ставить MySQL себе на тачку и практиковаться нормально, курить мануалы, коих хуева гора повсюду.
 
Последнее редактирование:
Это я понимаю , что нужно практиковаться , вот на данный момент , есть конкретный вопрос , на который я не могу найти ответ. Вот я на 4 раз прочитал помощь по мапе и не могу найти какой ключ ей нужно указать , чтобы она сунула нагрузку в параметр запроса , как на том , что я оставил выше , а не в тело , как она делает с --data

Ну или хотябы носом ткните , где это всё можно найти в одном месте , на православном языке. Потому что все поиски выдают 2-3 разными словами переписанные статьи 10 летней давности с примерами уровня "ну вот сюда тыкни" после прочтения которых только добавляется вопросов.
 
Последнее редактирование:
Это я понимаю , что нужно практиковаться , вот на данный момент , есть конкретный вопрос , на который я не могу найти ответ. Вот я на 4 раз прочитал помощь по мапе и не могу найти какой ключ ей нужно указать , чтобы она сунула нагрузку в параметр запроса , как на том , что я оставил выше , а не в тело , как она делает с --data
Звездочку или %INJECT HERE%. Мне просто второй вариант нагляднее кажется и поэтому я его пиарю))))
Код:
/app_api_v1/notiList?fn_name=buildDetail*&phone=
 
Код:
/app_api_v1/notiList?fn_name=buildDetail*&phone=
Бро я понимаю что это как разговаривать с обезьяной. Но вот хотябы намекни правильно или нет. Тоесть я в url прописываю полностью https://******.**.**//app_api_v1/notiList?fn_name=buildDetail*&phone= и оставляю -p fn_name ?
 
Бро я понимаю что это как разговаривать с обезьяной. Но вот хотябы намекни правильно или нет. Тоесть я в url прописываю полностью https://******.**.**//app_api_v1/notiList?fn_name=buildDetail*&phone= и оставляю -p fn_name ?
При гет запросе все находится в урле, верно, -p можешь и не указывать, тогда он все параметры переберет, p это точечно
 
Но т.к. ты указываешь левел 5, то он тебе еще и кукисы переберет :D
Слушай , всеравно не понимаю как оно должно работать. Вот по итогу есть сарвер на винде. Юзер ДБ с полными правами , процесс бд от имени администратора сервера , значит и права на запись должны быть. Не спавнит OS Shell не хочет записывать , и если я правильно понимаю то не потому что нет прав , а потому что не находит не одну папку. Один раз вылезла инфа remote file С:/windows/tmp ******* is larger the local file ********** и на этом всё. Потом попытался вызвать sql shell он вроде даже устанавливается и работает , попробовал исполнять системные команды через \! и \system тоже ничего , причем вообще ничего , не ошибок , не ответа. Просто - fetching SQL query output: / retrieving the length of query output. Но я прям чувствую то ее можно дожать , просто не хватает навыка.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх