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计算最大优先级队列实例
Dec 18 Python
Python描述器descriptor详解
Feb 03 Python
简单了解什么是神经网络
Dec 23 Python
python中kmeans聚类实现代码
Feb 23 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
Python多进程写入同一文件的方法
Jan 14 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
python3多线程知识点总结
Sep 26 Python
django ajax发送post请求的两种方法
Jan 05 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
PyQt5的相对布局管理的实现
Aug 07 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中数字、字符与对象判断函数用法实例
2014/11/26 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2015年推普周活动总结
2015/03/27 职场文书
如何写好开幕词?
2019/06/24 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
Java版 单机五子棋
2022/05/04 Java/Android
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL