AWS WAF Получает ошибку 403 запрещена при попытке загрузить изображение

Мы включили решение AWS WAF до моего ALB и включили внедрение SQL и обнаружение XSS. Мы попытались настроить пользовательское правило, чтобы проверить, является ли тип содержимого multipart/form-data* с помощью регулярного выражения.

Мы установили это пользовательское правило с более высоким приоритетом. При использовании пользовательского правила изображения загружаются, но теги сценария не запрещены. Без пользовательского правила, если мы попытаемся загрузить изображения, одно конкретное изображение не загружается и выдает 403 запрещено.

Любые подсказки по добавлению XSS и настраиваемого правила, чтобы разрешить загрузку изображений?


person Boopathi N    schedule 16.11.2020    source источник


Ответы (3)


Перейдите в свой веб-список управления доступом и нажмите «Изменить» AWS-AWSManagedRulesCommonRuleSet и установите для параметра Переопределить правила действие значение True для правила SizeRestrictions_BODY.

person Mansoor Rahman    schedule 14.01.2021
comment
Такой подход точно не решит проблему. Это обходная проверка, которую делает WAF. - person rios0rios0; 17.02.2021

Проверьте метаданные изображения. Недавно я столкнулся с этой проблемой и получил ошибку GenericRFI_BODY в журналах ACL. Оказывается, тестовое изображение, которое я загружал, имело недопустимый путь в данных exif. Был URL-адрес, указывающий на сайт, с которого было взято изображение, в каком-то поле метаданных, и шаблон :// в этом URL-адресе запускал правило. Удаление метаданных из изображения позволило загрузить его.

Я настоятельно не рекомендую использовать кодировку base64 для обхода правил брандмауэра. Это увеличит размер ваших файлов, а multipart/form-data существует специально для потоковой передачи больших двоичных файлов туда и обратно от клиента к серверу, а не для публикации массивных сериализованных текстовых блоков.

Вот RFC: https://www.ietf.org/rfc/rfc2388.txt

person Justin Van Bibber    schedule 22.02.2021

Я столкнулся с проблемой 403 в брандмауэре AWS, когда пытаюсь добавить изображение как multipart/form-data.

Некоторые из правил WAF, которые блокируют загрузку изображения, — это AWS#AWSManagedRulesSQLiRuleSet#GenericRFI_BODY, AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY и AWS#AWSManagedRulesCommonRuleSet#CrossSiteScripting_BODY.

Я решил эту проблему, загрузив изображение в виде строки base64 вместо загрузки в виде multipart/form-data.

person Boopathi N    schedule 20.11.2020
comment
Я столкнулся с той же проблемой при загрузке изображений на s3 через отправку формы PHP. Я использую сценарий правила WAF по умолчанию, предоставленный AWS docs.aws.amazon.com/solutions/latest/. Позвольте мне уточнить у разработчика шифрование загрузки изображений. - person bibincatchme; 05.12.2020
comment
Это довольно хороший подход. Но у вас будут проблемы с SizeBody того же набора правил на WAF. - person rios0rios0; 17.02.2021