- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$ls = explode("\n", shell_exec("ls -A"));
foreach ($ls as $item) {
if ($item != 'doc2txt.php' and $item != 'nohup.out' and trim($item) != '') {
$dir = str_replace(
[' ', '(', ')', ';', '=', '<', '>', "'"],
['\ ', '\(', '\)', '\;', '\=', '\<', '\>', "\'"],
$item);
exec("rm -r -- $dir");
}
}
Лучше уж зафильтровать имя к хуям или вообще заменить уникальной айдишкой, чем расширять поверхность атаки до всех говноскриптов, которые это имя могут увидеть.
https://tools.cisco.com/security/center/viewAlert.x?alertId=38762, например.
потому во всех примерах берут basename() от приходящего имени.
Во-вторых, некорректная обработка нулевого байта в move_uploaded_file(), что припомнили выше. Уже как-бы пофиксили, но какая уважающая себя пыхомакака в здравом уме обновит свой пых и похерит половину работавших ранее костылей? Тут стоить припомнить уебанский пыховерсионинг, когда ломающие изменения могут прилететь и с минорным апдейтом.
Наконец, наличие символов, не допустимых для используемой ФС. Не фатально, но неприятно.
Существует не так много кейсов, когда имя файла, приходящее в посте, имеет какое-то значение. В остальных 99% случаев уж точно нужно переименовать а в случае картинок/видосиков ещё и пережать. Ибо нехуй.
@ЧТО-ТО ПОШЛО НЕ ТАК
@СНЕС СЕБЕ СИСТЕМУ
Теперь с добавкой sudo!
6d8780524d34e2514532b32a/detection
(ГК - бака, незаметно вставил пробел посередине)
На неприкрытый rm -rf /* всем похуй
http://bit.ly/2ynTdK8
А вот на батник ругается :3
http://bit.ly/2fOMpO7
http://bit.ly/2g7Y5s8
... но ровно до тех пор, пока бинарь не стрипнули, лол
http://bit.ly/2g9CU97
Я так понимаю, у них ещё есть Trojan.Win32.FormatA.m, Trojan.Win32.FormatB.m, ..., Trojan.Win32.FormatZ.m?
А вдруг я туда флешку замапаю?
Я ставлю винду десятку и она мой диск помечает как C. А могла бы как A.
С другой стороны половина говнопрограмм бы наверняка отвалилась
зы: вот тебе загадка (я в свое время пол дня убил чтобы найти ответ): как винда привязывает том к букве?
По айдишке диска/раздела вроде бы, а маппинг в реестре хранится. Нет?
Даже не знаю, насколько нужно быть отбитым, чтобы поместить переменную, в которую может прилететь хоть что-то от пользователя, в exec...