簡體   English   中英

使用sed刪除之間的所有內容,包括 <?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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM