ホームページ >バックエンド開発 >Python チュートリアル >PHP Webシェル検査ツールPython実装コード

PHP Webシェル検査ツールPython実装コード

WBOY
WBOYオリジナル
2016-06-16 08:47:201272ブラウズ

1. 使用法: find.py ディレクトリ名
2. 主に Python 正規表現を使用して一致させます。キーワードに独自の定義された正規表現を追加できます。形式:
["eval($_POST"," PHP が見つかりました)。 one-sentence Trojan! "] #先頭は正規表現で、以下はログに表示される正規表現の説明です。
3. ファイルのサフィックスとキーワードの正規表現を次のように変更します。他の言語の WebShell になる ツールを確認してください ^_^.
4. 開発環境は Windows です。現時点では単なるフレームワークであり、後で徐々に改善されます。
findtype=['.php', '.inc'] #チェックするファイルの拡張子タイプ

#チェックするキーワードの正規表現とログ内の記述は 2 次元配列. keywords=[ ["eval($_POST","PHP に 1 文のトロイの木馬が見つかった!"], ["(system|shell_exec|exec|popen)" ,"PHP コマンド実行機能を発見!" ] ] writelog = open('log.txt', 'w+')

def checkfile(filename):
fp =open(filename)
content = fp.read()
キーワード内のキーワード:
if re.search(keyword[0],content,re.I):
log="% s:%s" % (ファイル名,キーワード[1])
#print log
print >>writelog,log
fp.close()


def checkdir (ディレクトリ名):
try:
ls=os.listdir(dirname)
例外:
print 'アクセス拒否'
それ以外:
for l in ls:
temp =os.path.join(dirname, l)
if(os.path.isdir(temp)):
checkdir(temp)
else:
ext = temp[temp.rindex(' .'):]
if ext in findtype:
checkfile(temp)


if __name__=="__main__":
print "Python の PHP Webshel​​l チェック!" "
print "By:Neeao"
print "http://Neeao.com"
if len(sys.argv) < 2:
print "%s C:\" % sys .argv[0]
else:
print "チェック開始!"
dirs=sys.argv[1:]
#print dirs[0]
if os.path.exists( dirs[0]):
checkdir(dirs[0])
else:
print "Dir:'%s' が存在しません!" % dirs[0]

print "チェックフィンシュ!"

writelog.close()

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。