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 fabric实现远程操作和部署示例
Mar 25 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python的内存管理和垃圾回收机制详解
May 18 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
学习Django知识点分享
Sep 11 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
tornado+celery的简单使用详解
Dec 21 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
Python Django框架介绍之模板标签及模板的继承
May 27 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
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
Python单链表简单实现代码
2016/04/27 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Django forms组件的使用教程
2018/10/08 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
Python中psutil的介绍与用法
2019/05/02 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python中p-value的实现方式
2019/12/16 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
对python中list的五种查找方法说明
2020/07/13 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
合作协议书范文
2014/08/20 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers