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中编写数据库模块的教程
Apr 29 Python
Python定时执行之Timer用法示例
May 27 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
python 删除非空文件夹的实例
Apr 26 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
python matplotlib拟合直线的实现
Nov 19 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
基于python实现破解滑动验证码过程解析
May 28 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
php画图实例
2014/11/05 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
jupyter安装小结
2016/03/13 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
Python类的继承用法示例
2019/01/31 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python3进制之间的转换代码实例
2019/08/24 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
.NET方向面试题
2014/11/20 面试题
弘扬职业精神演讲稿
2014/03/20 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书