
уязвимость dlink на python и rust
потому что почему бы и нет
CVE-2024-10914 — это недавно обнаруженная уязвимость с критическим рейтингом 9.8, которая затрагивает некоторые маршрутизаторы D-Link. Поскольку эти маршрутизаторы достигли конца поддержки (EOL), D-Link отказывается исправлять эту уязвимость, заявляя: «перестань быть бедным и просто купи новый маршрутизатор».
Уязвимые устройства предоставляют HTTP-эндпоинт, обычно по адресу /cgi-bin/account_mgr.cgi?cmd=cgi_user_add&name=<user_input>. Из-за неправильной санитизации, вместо строгого ограничения или проверки ввода (разрешения только буквенно-цифровых символов), приложение допускает внедрение любых символов, включая специальные символы, используемые для операций командной строки, что позволяет выполнять произвольный код.
Вставляя метасимволы оболочки (например, ; | & или $(command)) в поле name, любой может легко выполнять команды оболочки. Например:
...name=admin'; echo 'get pwned bozo'; #
Все эти скрипты просто отправляют запрос с изменённым параметром name на тот код, который вы хотите выполнить.
Есть довольно хорошее видео от fireship, которое объясняет это более подробно: https://www.youtube.com/watch?v=52v6gKPA4TM
сначала вам нужно иметь уязвимое устройство, некоторые модели включают:
Я настоятельно рекомендую не использовать этот скрипт против кого-либо без их согласия. Пожалуйста, делайте это только если вы владеете маршрутизатором или у вас есть согласие владельца.
cargo run -- -u http://<device ip address>
cargo run
pip install -r requirements.txt
python main.py -u http://<device ip address>
python main.py
затем следуйте инструкциям
Я не придумывал исходный код, это сделал verylazytech. Я только портировал его на Rust и Python, потому что почему бы и нет, чёрт возьми. Конечно, вся заслуга принадлежит ему и всем остальным, кто участвовал в обнаружении этой уязвимости.