ProxyRewrite

PWN medium

ProxyRewrite проверяет правила переписывания URL. Передаём образец, замену и исходную строку. Результат записывается в буфер `output[64]`. В ELF `proxyrewrite` видно, что длинную замену копируют без проверки размера. Рядом лежат маршрут и флаг диагностики. ## Решение У задания три соседних поля: | Смещение | Поле | Что записываем | |---:|---|---| | 0 | `output[64]` | 64 байта заполнителя | | 64 | `route[48]` | `/internal/diag` и добивку | | 112 | `diag`, 4 байта | `0x50525859` | В `rewrite()` каждое совпадение `match` в `target` заменяется всей строкой `replace`. Чтобы запись была предсказуемой, задаём `match = A` и `target = A`, тогда замена выполнится ровно один раз. Собираем замену по смещениям полей: ```python import struct route = b"/internal/diag" payload = b"B" * 64 payload += route.ljust(48, b"C") payload += struct.pack("