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正则表达式匹配ip地址实例
Oct 09 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
python对DICOM图像的读取方法详解
Jul 17 Python
python判断输入日期为第几天的实例
Nov 13 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
python打包成so文件过程解析
Sep 28 Python
基于torch.where和布尔索引的速度比较
Jan 02 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
解决pytorch-gpu 安装失败的记录
May 24 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数据库的几种方法
2013/02/21 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
详解jQuery设置内容和属性
2019/04/11 jQuery
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
python学生管理系统
2019/01/30 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
python访问hdfs的操作
2020/06/06 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
车间操作工岗位职责
2013/12/19 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
上海世博会口号
2014/06/19 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年教研工作总结
2014/12/06 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
Python 如何安装Selenium
2021/05/06 Python