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中用于计算对数的log()方法
May 15 Python
python Tkinter版学生管理系统
Feb 20 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
详解如何减少python内存的消耗
Aug 09 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
python批量处理txt文件的实例代码
Jan 13 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
python的pip有什么用
Jun 17 Python
python中有帮助函数吗
Jun 19 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
快速一键生成Python爬虫请求头
Mar 04 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
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
php fread函数使用方法总结
2019/05/28 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
javascript深入理解js闭包
2010/07/03 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python中int()函数的用法浅析
2017/10/17 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
精选干货:Java精选笔试题附答案
2014/01/18 面试题
广告学专业求职信
2014/06/19 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
重阳节慰问信
2015/02/15 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL