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正则表达式中的括号匹配问题
Dec 14 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python读取Excel的方法实例分析
Jul 11 Python
Python中方法链的使用方法
Feb 23 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
django框架使用方法详解
Jul 18 Python
python如何从文件读取数据及解析
Sep 19 Python
使用Keras画神经网络准确性图教程
Jun 15 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
使用tensorflow 实现反向传播求导
May 26 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 字符串长度判断效率更高的方法
2014/03/02 PHP
php浏览历史记录的方法
2015/03/10 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
wxPython框架类和面板类的使用实例
2014/09/28 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
详解python3中zipfile模块用法
2018/06/18 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
对python中各个response的使用说明
2020/03/28 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
业务内勤岗位职责
2014/04/30 职场文书
小班教师个人总结
2015/02/05 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
python用字节处理文件实例讲解
2021/04/13 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python