# szi-rule-10-2

## Суть задания
Нужно написать не более трех правил Suricata, которые обнаруживают весь вредоносный HTTP-трафик из стенда и не дают ложных срабатываний на легитимные запросы.

## Идея решения
Для этого набора достаточно двух правил.

```suricata
alert http any any -> any any (http.uri; pcre:"/^\/(?:(?:page|display)\.php\?page=|include\.php\?path=|readfile\.php\?path=|fetch\.php\?url=|upload_handler\.php\?file=|rce\.php\?cmd=|viewsource\.php\?file=|file\.php\?file=)/"; sid:1;)
alert http any any -> any any (pcre:"/(?:\/loadfile\.php\?file=[^\r\n]*%00|\/admin\.php HTTP\/1\.[01]\r\n(?:[^\r\n]*\r\n)*X-Forwarded-For: )/smi"; sid:2;)
```

Первое правило покрывает вредоносные проверки 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, потому что там достаточно точного совпадения `URI`.

Второе правило покрывает оставшиеся проверки:

- `loadfile.php?file=...%00`;
- `admin.php` с `X-Forwarded-For`.

При этом нормальные запросы из набора не содержат:

- перечисленные сочетания пути и параметра;
- `%00` в `loadfile.php?file=...`;
- `X-Forwarded-For` вместе с `/admin.php`.

## Итог

Флаг: `vsosh{buhg4ld3r_g0l3m_gu4rd}`
