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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
Python动态加载模块的3种方法
Nov 22 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
Python正则表达式知识汇总
Sep 22 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
Python sorted排序方法如何实现
Mar 31 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
Python使用永中文档转换服务
May 06 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中cookie的使用方法
2014/03/29 PHP
smarty中post用法实例
2014/11/28 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
json 定义
2008/06/10 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python开发常用的一些开源Package分享
2015/02/14 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python实现微信防撤回神器
2019/04/29 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python3.5的包存放的具体路径
2020/08/16 Python
python matplotlib库的基本使用
2020/09/23 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
文秘应届生求职信
2014/07/05 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
向女朋友道歉的话
2015/01/20 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
MySQL笔记 —SQL运算符
2022/01/18 MySQL