這篇文章將為大家詳細(xì)講解有關(guān)WEB安全中Perl oneline如何查殺Webshell,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)專注于海勃灣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供海勃灣營(yíng)銷型網(wǎng)站建設(shè),海勃灣網(wǎng)站制作、海勃灣網(wǎng)頁(yè)設(shè)計(jì)、海勃灣網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造海勃灣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供海勃灣網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
根據(jù)Webshell中的一些特征字段進(jìn)行搜索,就可以搜出可能含有木馬的的文件,特征字段可自行根據(jù)需要添加。
perl -lne 'print "$ARGV $_" if/(phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc)/ '`find -type f -name "*.php"`
本行腳本解釋:這行代碼結(jié)合了find和Perl單行來實(shí)現(xiàn)Webshell的查殺,首先通過` find -type f -name "*.php"` 列出本目錄及子目錄下所有php文件,注意`反斜杠(tab上面的建),find命令參數(shù) -type f表示類型為文件,-name "*.php"`表示文件名以php結(jié)尾(當(dāng)然可以是其他類型,可以是其他特征)。find具體用法可以用find -h看說明,或者搜索引擎搜索其用法。
接著搜索到的所有php文件都被傳遞個(gè)Perl單行,perl對(duì)每一個(gè)文件按行進(jìn)行正則搜索,搜索phpspy,c99sh,milw0rm,eval (gunerpress,eval (base64_decoolcode,spider_bc等關(guān)鍵詞,注意正則匹配中(為關(guān)鍵字需要在其前面加反斜杠\來轉(zhuǎn)義。最后把匹配到的文件名和行的內(nèi)容輸出。
注意輸出的$ARGV表示文件列表中的每一個(gè)文件文件名,$_表示當(dāng)前列表的當(dāng)前項(xiàng),此處表示匹配到的行內(nèi)容。
以上的腳本輸出了每一個(gè)匹配的行,可以作為一個(gè)用來詳細(xì)核對(duì)每一個(gè)項(xiàng)目。實(shí)際中會(huì)需要只輸出有問題文件名,其實(shí)也簡(jiǎn)單,對(duì)上述腳本稍做修改即可。
perl -lne '{$files{$ARGV}++ if/(phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc)/}END{printfor keys %files} ' `find -type f -name "*.php"`
以上腳本在腳本1的基礎(chǔ)上用了個(gè)哈希變量 %files把匹配的每一行的文件名作為鍵,如果有匹配其值就+1,最后再END模塊輸出%files的鍵,即有匹配的文件名。當(dāng)然也可以先把所有文件名都輸出然后重定向做個(gè)uniq也可以的。
perl -lne 'print "$ARGV" if/(phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc)/ '`find -type f -name "*.php"`|uniq
需要注意的是,以上查出來的文件,有可能是正常的php文件,需要你根據(jù)實(shí)際甄別處理(批量替換),不要誤殺了(處理以前注意備份俄)。
其他需要關(guān)注的是文件的修改時(shí)間和文件權(quán)限
查找最近一天被修改的PHP文件,根據(jù)這些特征也可以查找可以的文件,這個(gè)可以做為關(guān)鍵字查詢的前提。
find -type f -mtime -1 -name \*.php
修改網(wǎng)站的權(quán)限
find -type f -name \*.php -exec chmod 444 {} \;
find ./ -type d -exec chmod 555{} \;
1、linux下的批量查找和替換。
find . -type f -name "*.html"|xargs grep yourstring
2、查找并用perl One-liners替換
perl -i -lpe 's#被替換的字符串#替換后的字符串#g' `find yourdir -type f -name "*.shtml"`
下面這個(gè)例子就是將當(dāng)前目錄及所有子目錄下的所有*.shtml文件中的”“替換為”(空)“.
perl -i -lpe 's|| |g' `find . -type f -name "*.shtml"`
perl -i -pe
在Perl 命令中加上-e選項(xiàng),后跟一行代碼,那它就會(huì)像運(yùn)行一個(gè)普通的Perl 腳本那樣運(yùn)行該代碼.
關(guān)于“WEB安全中Perl oneline如何查殺Webshell”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。