PHP webshell检查工具 python实现代码


Posted in Python onSeptember 15, 2009

1.使用方法:find.py 目录名称
2. 主要是采用python正则表达式来匹配的,可以在keywords中添加自己定义的正则,格式:
["eval\(\$\_POST","发现PHP一句话木马!"] #前面为正则,后面为对这个正则的描述,会在日志中显示。
3.修改下文件后缀和关键字的正则表达式就可以成为其他语言的webshell检查工具了,^_^。
4.开发环境是windows xp+ActivePython 2.6.2.2,家里电脑没有Linux环境,懒得装虚拟机了,明天到公司Linux虚拟机测试下。
5.目前只是一个框架,随后慢慢完善。

#coding:gbk 
import os,sys 
import re findtype=['.php','.inc'] #要检查的文件后缀类型 
#要检查的关键字正则表达式和日志中的描述,是一个二维数组。 
keywords=[ ["eval\(\$\_POST","发现PHP一句话木马!"],\ 
["(system|shell_exec|exec|popen)","发现PHP命令执行函数!"]\ 
] 
writelog = open('log.txt', 'w+') 
def checkfile(filename): 
fp=open(filename) 
content = fp.read() 
for keyword in keywords: 
if re.search(keyword[0],content,re.I): 
log="%s:%s" % (filename,keyword[1]) 
#print log 
print >>writelog,log 
fp.close() 

def checkdir(dirname): 
try: 
ls=os.listdir(dirname) 
except: 
print 'access deny' 
else: 
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 "PHP webshell check for Python!" 
print "By:Neeao" 
print "http://Neeao.com" 
if len(sys.argv) < 2: 
print "%s C:\\" % sys.argv[0] 
else: 
print "Check start!" 
dirs=sys.argv[1:] 
#print dirs[0] 
if os.path.exists(dirs[0]): 
checkdir(dirs[0]) 
else: 
print "Dir:'%s' not exists!" % dirs[0] 
print "Check finsh!" 
writelog.close()
Python 相关文章推荐
python线程锁(thread)学习示例
Dec 04 Python
python数据结构之二叉树的统计与转换实例
Apr 29 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
python对字典进行排序实例
Sep 25 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
从django的中间件直接返回请求的方法
May 30 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Django 实现图片上传和下载功能
Dec 31 Python
用Python远程登陆服务器的步骤
Apr 16 Python
python encode和decode的妙用
Sep 02 #Python
python 简易计算器程序,代码就几行
Aug 29 #Python
python 提取文件的小程序
Jul 29 #Python
Python 文件重命名工具代码
Jul 26 #Python
python 生成目录树及显示文件大小的代码
Jul 23 #Python
python 域名分析工具实现代码
Jul 15 #Python
python 自动提交和抓取网页
Jul 13 #Python
You might like
PHP安装问题
2006/10/09 PHP
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
python django集成cas验证系统
2014/07/14 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python获取文件扩展名的方法
2015/07/06 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
中文系师范生自荐信
2013/10/01 职场文书
技术负责人任命书
2014/06/05 职场文书
员工团队活动方案
2014/08/28 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
异地恋情人节寄语
2015/02/28 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS