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 相关文章推荐
Django框架中方法的访问和查找
Jul 15 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
浅谈function(函数)中的动态参数
Apr 30 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
python生成n个元素的全组合方法
Nov 13 Python
利用python如何在前程无忧高效投递简历
May 07 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
Python hmac模块使用实例解析
Dec 24 Python
python将dict中的unicode打印成中文实例
May 11 Python
详解Python 中的容器 collections
Aug 17 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
如何使用PyCharm及常用配置详解
Jun 03 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中的integer类型使用分析
2010/07/27 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
vue-router定义元信息meta操作
2020/12/07 Vue.js
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python中xrange和range的区别
2014/05/13 Python
python flask实现分页效果
2017/06/27 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
python实现输入数字的连续加减方法
2018/06/22 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python查看列的唯一值方法
2018/07/17 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
工程部主管岗位职责
2013/11/17 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
婚前协议书范本
2014/04/15 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
实习护士自荐信
2015/03/25 职场文书
cf战队宣传语
2015/07/13 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js