Сообщение от
yarbabin
↑
точнее опишите проблему
Есть WSO шелл, почти чистый(Оптимизировал под себя - удалил пару ненужных ф-ций), после обфускации шелл заливается по списку доменов. На более-менее нормальных хостингах стоит WAF(mod_security), который блочит POST запросы WSO(Как я понял - там фильтр стоит), чтобы это обойти - нужно поменять названия всех стандартных параметров POST запросов в теле WSO, ну и если прикрутить шифрование этих запросов в base64 - было бы вообще идеально.
Вот пример:
Есть в WSO POST запрос:
$_POST['pass'] - в данном случае WAF по фильтрам блочит POST запросы с параметром pass, если мы изменим его на $_POST['asdasfas'] - соответств - фильтр перестанет реагировать, а если еще и base64_decode($_POST['asdasfas']) прикрутить - было бы вообще кошерненько так.
Но проблема вот в чем, параметры в пост запрос отправляются ИЗ WSO ВНУТРЬ WSO, тобишь на уровне клиента это реализовано с помощью javascript, в виде невидимых форм с основными параметрами a,c,p1,p2,p3. Тобишь из невидимой формы -a- яваскрипта формируется запрос, а потом уже уходит в одноименную форму $_POST['a']
В идеале все должно работать так:
На входе из js формы оно должно энкодится в base64, передаваться в одноименный POST параметр, далее - декодиться, и потом уже исполняться. Вот вся суть обхода в большинство WAF(Не всех)
Решение вроде как простое - заменить все формы и одноименные POST параметры на свои - вопрос решен. Но дело в том что шелл просто перестает работать(
Может есть более простые способы?
UPD
Посидел пару часиков - все параметры заменил Все работает)
Осталось прикрутить шифрование в base64. Для POST сделать расшифровку, а на уровне js - шифровку.