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迭代器的使用方法实例
Nov 21 Python
深度剖析使用python抓取网页正文的源码
Jun 11 Python
python字符串连接方式汇总
Aug 21 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
六行python代码的爱心曲线详解
May 17 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python logging模块handlers用法详解
Aug 14 Python
Python抓包并解析json爬虫的完整实例代码
Nov 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 rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
教育英语专业毕业生的求职信
2014/03/13 职场文书
融资合作协议书范本
2014/10/17 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
mysql中between的边界,范围说明
2021/06/08 MySQL
Nginx反向代理学习实例教程
2021/10/24 Servers
PyTorch中的torch.cat简单介绍
2022/03/17 Python