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 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
Python Queue模块详细介绍及实例
Dec 27 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
利用python循环创建多个文件的方法
Oct 25 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
python的slice notation的特殊用法详解
Dec 27 Python
PyTorch-GPU加速实例
Jun 23 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
聊聊Python String型列表求最值的问题
Jan 18 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搜索加分页
2016/10/12 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
vue 组件高级用法实例详解
2018/04/11 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
python发腾讯微博代码分享
2014/01/10 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
法国足球商店:Footcenter
2019/07/06 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
教师专业自荐信
2014/05/31 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
合同补充协议书
2016/03/24 职场文书