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生成随机数的方法
Jan 14 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
python模糊图片过滤的方法
Dec 14 Python
python替换字符串中的子串图文步骤
Jun 19 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
javascript各种复制代码收集
2008/09/20 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
理解JavaScript事件对象
2016/01/25 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
node.js的Express服务器基本使用教程
2019/01/09 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
django-初始配置(纯手写)详解
2019/07/30 Python
违反课堂纪律检讨书
2014/01/19 职场文书
个人贷款担保书
2014/04/01 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
教学副校长工作总结
2015/08/13 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
z-index不起作用
2021/03/31 HTML / CSS
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android