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捕捉和模拟鼠标事件的方法
Jun 03 Python
利用ctypes提高Python的执行速度
Sep 09 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
python实发邮件实例详解
Nov 11 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
Python3 webservice接口测试代码详解
Jun 23 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
python opencv通过4坐标剪裁图片
Jun 05 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
2014学雷锋活动总结
2014/03/09 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
婚宴领导致辞
2015/07/28 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python