[英]Replace everything between and including two characters using regex in php
[英]Using sed to delete everything between and including <?php ?> on the first line of code
我的服務器最近遭到黑客入侵,並注入了php代碼,每個php文件的第一行都有類似
<?php $jybcqmhk = 'x24- x24*<!~! x24/%t2w/ //truncated code ?><?php
每個文件的代碼本身都略有不同,但是通常在第一個?>我的實際代碼開始之后。
有沒有辦法使用SED之類的東西,在其中我可以刪除第一行之間的所有內容並保留其余內容。
我已經嘗試了一些方法,但最終還是有一個額外的php開頭標記,或者在php結束標記之后意外刪除了代碼。
例如,這在代碼以php開頭標簽開始但其他地方中斷的情況下起作用。
find ./ -iname '*.php' -exec sed -i '1 s/^.*$/<?php/g' {} \;
也許這可以幫助:
find ./ -iname '*.php' -exec sed -i '1 s/<?php/\n&/2;s/<?php.*\n//' {} \;
sed命令進行2次替換:第一個替換新行中的第一個<?php ?>
命令,第二個刪除它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.