网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 正则表达式 > 正文

精确查找PHPWEBSHELL木马修正版

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
.IGNORECASE| re.MULTILINE)
if match:
function = match.group("function")
filename = match.group("filename")
if iname == 0:
info = ''\n[%s] :\n''% (filepath)
else:
info = ''''
info += ''\t|-- [%s] - [%s] line [%d] \n''% (function,filename,i)
flog.write(info)
print info
iname += 1
match = re.search(r''\b(?P<function>eval|proc_open|popen|shell_exec|exec|passthru|system)\b\s*\('', file_contents, re.IGNORECASE| re.MULTILINE)
if match:
function = match.group("function")
if iname == 0:
info = ''\n[%s] :\n''% (filepath)
else:
info = ''''
info += ''\t|-- [%s] line [%d] \n''% (function,i)
flog.write(info)
print info
iname += 1
match = re.search(r''(^|(?<=;))\s*`(?P<shell>[^`]+)`\s*;'', file_contents, re.IGNORECASE)
if match:
shell = match.group("shell")
if iname == 0:
info = ''\n[%s] :\n''% (filepath)
else:
info = ''''
info += ''\t|-- [``] command is [%s] in line [%d] \n''% (shell,i)
flog.write(info)
print info
iname += 1
f.close()
flog.close()
if ''__main__'' == __name__:
argvnum = len(sys.argv)
liston = ''0''
if argvnum == 1:
action = os.path.basename(sys.argv[0])
print "Command is like:\n %s D:\wwwroot\ \n %s D:\wwwroot\ 1 -- recurse subfolders"% (action,action)
quit()
elif argvnum == 2:
path = os.path.realpath(sys.argv)
listdir(path,liston)
else:
liston = sys.argv
path = os.path.realpath(sys.argv)
listdir(path,liston)
flog = open(os.getcwd()+"/check_php_shell.log","a+")
ISOTIMEFORMAT=''%Y-%m-%d %X''
now_time = time.strftime(ISOTIMEFORMAT,time.localtime())
flog.write("\n----------------------%s checked ---------------------\n"% (now_time))
flog.close()

稍微检测了一下Discuz7.2的代码,还是有误报的,误报的为这种包含sql的代码:
复制代码 代码如下:
$query = $db->query("SELECT `status`,`threads`,`posts`
FROM `{$tablepre}forums` WHERE
`status`=''1'';
");

稍微检测了一下Discuz7.2的代码,还是有误报的,误报的为这种包含sql的代码:
复制代码 代码如下:
$query = $db->query("SELECT `status`,`threads`,`posts`
FROM `{$tablepre}forums` WHERE
`status`=''1'';
");

由于这个脚本是按照一行一行的代码来处理的,所以,有这种误报。您自己去修复吧。相对网上流传的脚本来说,还是比较准确的。
欢迎转载。转载请注明来源,以及留下博客链接,同时,不能用于商业用途。(已经修复,增加了反引号后面【\s*;】的判断。2010-07-27 17:06)

PS:如果说上传文件也算是危险的、值得注意的操作的话,建议加上move_uploaded_file函数的检测。你知道在哪里加的。^_^

2010-12-17 关于这些代码,已经放到google 的代码托管上了。SVN地址为 http://code.google.com/p/cnxct/ 大家个获得最新版。

我是一个PHPer,写的python有点憋,有点懒,还请各位安全界的大牛,程序界的前辈不要鄙视,要给建议,谢谢。php版的以后在写吧。同时,也欢迎各位安全爱好者反馈最新的web shell特征代码,我尽力增加到程序中区。
完整的代码
复制代码 代码如下:
#!/usr/bin/python
#-*- encoding:UTF-8 -*-
###
## @package
##
## @author CFC4N <cfc4nphp@gmail.com>
## @copyright copyright (c) Www.cnxct.Com
## @Version $Id$
###
import os
import sys
import re
import time
def listdir(dirs,liston=''0''):
flog = open(os.getcwd()+"/check_php_shell.log","a+")
if not os.pa
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师