婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 精確查找PHP WEBSHELL木馬 修正版

精確查找PHP WEBSHELL木馬 修正版

熱門標簽:遼寧秒客來電話機器人 自己做的電銷機器人 浙江營銷外呼系統有哪些 地圖標注店鋪地圖標注酒店 哈爾濱公司外呼系統代理 惠安地圖標注 上海銷售電銷機器人軟件 淄博市張店區地圖標注 山東外呼系統聯系方式
先來看下反引號可以成功執行命名的代碼片段。代碼如下:
復制代碼 代碼如下:

`ls -al`;
`ls -al`;
echo "sss"; `ls -al`;

$sql = "SELECT `username` FROM `table` WHERE 1";

$sql = 'SELECT `username` FROM `table` WHERE 1'
/*
無非是 前面有空白字符,或者在一行代碼的結束之后,后面接著寫,下面兩行為意外情況,也就是SQL命令里的反引號,要排除的就是它。
*/

正則表達式該如何寫?
分析:
對于可移植性的部分共同點是什么?與其他正常的包含反引號的部分,區別是什么?
他們前面可以有空格,tab鍵等空白字符。也可以有程序代碼,前提是如果有引號(單雙)必須是閉合的。才是危險有隱患的。遂CFC4N給出的正則如下:【(?:(?:^(?:\s+)?)|(?:(?Pquote>["'])[^(?P=quote)]+?(?P=quote)[^`]*?))`(?Pshell>[^`]+)`】。

解釋一下:

【(?:(?:^(?:\s+)?)|(?:(?Pquote>["'])[^(?P=quote)]+?(?P=quote)[^`]*?))】匹配開始位置或者開始位置之后有空白字符或者前面有代碼,且代碼有閉合的單雙引號。(這段PYTHON的正則中用了捕獲命名以及反向引用)

【`(?Pshell>[^`]+)`】這個就比較簡單了,匹配反引號中間的字符串。

python腳本檢測PHP WEBSHELL
然后我將這段代碼寫入程序中,測試跑了一下discuz的程序。結果有一個誤報。誤報的位置為“config.inc.php”中的“define(‘UC_DBTABLEPRE', ‘`ucenter`.uc_');”,什么原因造成的?這行代碼符合了前面有閉合的引號,也有反引號的使用,所以,符合要求,被檢測到了。如何再排除這種情況呢?這個有什么特殊的?前面有逗號“,”?如果是字符串連接的點號“.”呢?再排除逗號?

好吧,我錯了,我不該用我的思維來誤導你。換個思路。找下反引號可執行的代碼的前面字符串的情況,他們只能是行的開始,或者有空白字符(包括空格,tab鍵等),再前面也可以有代碼的結束標識分號“;”,其他的情況,都是不可以執行的吧?嗯,應該是這樣。(如有錯誤,歡迎斧正)既然思路有了,那正則代碼更好寫了。如下【(^|(?=;))\s*`[^`]+`】,解釋一下,【(^|(?=;))】匹配位置,是行的開始,或者前面有分號“;”。【\s*`[^`]+`】空白字符任一個,然后是….(你懂的)。OK,寫好之后,檢測,又發現一個問題。

匹配引入文件的正則也匹配了“require_once ‘./include/db_'.$database.'.class.php';”這種代碼,什么原因造成的,您自己分析吧。
給出修復之后的python代碼,如下:
復制代碼 代碼如下:

#!/usr/bin/python
#-*- encoding:UTF-8 -*-
###
## @package
##
## @author CFC4N cfc4nphp@gmail.com>
## @copyright copyright (c) Www.cnxct.Com
## @Version $Id: check_php_shell.py 37 2010-07-22 09:56:28Z cfc4n $
###
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.path.isdir(dirs):
print "directory %s is not exist"% (dirs)
return
lists = os.listdir(dirs)
for list in lists:
filepath = os.path.join(dirs,list)
if os.path.isdir(filepath):
if liston == '1':
listdir(filepath,'1')
elif os.path.isfile(filepath):
filename = os.path.basename(filepath)
if re.search(r"\.(?:php|inc|html?)$", filename, re.IGNORECASE):
i = 0
iname = 0
f = open(filepath)
while f:
file_contents = f.readline()
if not file_contents:
break
i += 1
match = re.search(r'''(?Pfunction>\b(?:include|require)(?:_once)?\b)\s*\(?\s*["'](?Pfilename>[^;]*(?!\.(?:php|inc)))["']\)?\s*;''', file_contents, re.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(?Pfunction>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*`(?Pshell>[^`]+)`\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[1])
listdir(path,liston)
else:
liston = sys.argv[2]
path = os.path.realpath(sys.argv[1])
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.path.isdir(dirs):
print "directory %s is not exist"% (dirs)
return
lists = os.listdir(dirs)
for list in lists:
filepath = os.path.join(dirs,list)
if os.path.isdir(filepath):
if liston == '1':
listdir(filepath,'1')
elif os.path.isfile(filepath):
filename = os.path.basename(filepath)
if re.search(r"\.(?:php|inc|html?)$", filename, re.IGNORECASE):
i = 0
iname = 0
f = open(filepath)
while f:
file_contents = f.readline()
if not file_contents:
break
i += 1
match = re.search(r'''(?Pfunction>\b(?:include|require)(?:_once)?\b)\s*\(?\s*["'](?Pfilename>[^;]*(?!\.(?:php|inc)))["']\)?\s*;''', file_contents, re.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(?Pfunction>eval|proc_open|popen|shell_exec|exec|passthru|system|assert|fwrite|create_function)\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*`(?Pshell>[^`]+)`\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
match = re.search(r'(?Pshell>\$_(?:POS|GE|REQUES)T)\s*\[[^\]]+\]\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[1])
listdir(path,liston)
else:
liston = sys.argv[2]
path = os.path.realpath(sys.argv[1])
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()
您可能感興趣的文章:
  • PHP常見過waf webshell以及最簡單的檢測方法
  • PHP實現webshell掃描文件木馬的方法
  • 一個ASP.Net下的WebShell實例
  • php木馬webshell掃描器代碼
  • 精確查找PHP WEBSHELL木馬的方法(1)
  • Webshell基礎知識深入講解

標簽:泰州 綿陽 重慶 宣城 長沙 西安 銅川 無錫

巨人網絡通訊聲明:本文標題《精確查找PHP WEBSHELL木馬 修正版》,本文關鍵詞  精確,查找,PHP,WEBSHELL,木馬,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《精確查找PHP WEBSHELL木馬 修正版》相關的同類信息!
  • 本頁收集關于精確查找PHP WEBSHELL木馬 修正版的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩精品在线一区| 精油按摩中文字幕久久| 美日韩黄色大片| 94-欧美-setu| 亚洲天堂av老司机| 99久久精品99国产精品| 成人免费一区二区三区视频 | 狠狠色狠狠色综合日日91app| 欧美肥妇毛茸茸| 国产精品性做久久久久久| 精品国产精品网麻豆系列| 久久精品国产精品亚洲红杏| 精品久久久久久亚洲综合网 | 亚洲在线观看免费视频| 欧美午夜精品理论片a级按摩| 亚洲成人资源网| 精品国免费一区二区三区| eeuss鲁片一区二区三区在线看| 亚洲另类在线制服丝袜| 日韩三级中文字幕| 日韩avvvv在线播放| 91精品国产乱| 成人午夜免费视频| 人人爽香蕉精品| 一区二区三区精品| 中国av一区二区三区| 制服丝袜国产精品| 一本到三区不卡视频| 国产经典欧美精品| 久久精品99国产国产精| 亚洲免费伊人电影| 日本一区二区久久| 欧美videossexotv100| 欧洲一区二区三区免费视频| 国产米奇在线777精品观看| 午夜精品久久久久久不卡8050 | 国产一区二区日韩精品| 亚洲制服丝袜av| 欧美日韩国产一二三| 欧美三区免费完整视频在线观看| 亚洲综合一区在线| 亚洲欧洲另类国产综合| 日韩一区二区三区电影| 在线91免费看| 欧美日韩一区二区三区在线| 99精品在线观看视频| 国产经典欧美精品| 成人一区二区三区在线观看| 国产超碰在线一区| 福利视频网站一区二区三区| 国产精品1024| 9色porny自拍视频一区二区| 白白色亚洲国产精品| 91亚洲大成网污www| 欧美日韩国产不卡| 欧美xxxx老人做受| 国产精品天干天干在线综合| 亚洲激情校园春色| 日本美女一区二区三区| 国产suv精品一区二区6| 在线亚洲精品福利网址导航| 欧美视频精品在线| 精品播放一区二区| 自拍偷自拍亚洲精品播放| 亚洲午夜电影网| 国产高清久久久| 欧美亚洲综合在线| 久久久一区二区三区捆绑**| 亚洲国产视频在线| 国产suv一区二区三区88区| 欧美日韩一区二区三区高清| 国产精品久久久久久户外露出| 亚洲国产美国国产综合一区二区| 国产精品69久久久久水密桃| 欧美日韩电影一区| 一区二区三区视频在线观看| 国产成人精品aa毛片| 日韩午夜激情电影| 日本在线不卡视频一二三区| 99精品国产99久久久久久白柏| 精品入口麻豆88视频| 亚洲va欧美va国产va天堂影院| 懂色一区二区三区免费观看| 精品粉嫩aⅴ一区二区三区四区 | 亚洲成人午夜影院| 久久精品国产999大香线蕉| 欧美日本国产一区| 洋洋成人永久网站入口| 99久久伊人精品| 亚洲日本在线观看| 91美女蜜桃在线| 亚洲午夜精品一区二区三区他趣| 色狠狠桃花综合| 日本不卡123| 国产日韩精品一区| 91在线云播放| 午夜不卡av免费| 久久嫩草精品久久久精品一| 成人精品电影在线观看| 亚洲女人小视频在线观看| 在线影视一区二区三区| 麻豆91精品视频| 国产精品日韩成人| 91精品午夜视频| av一区二区三区四区| 日韩专区欧美专区| 欧美一级一级性生活免费录像| 99re成人精品视频| 一区二区三区在线视频观看58| 欧美疯狂做受xxxx富婆| 国产电影一区二区三区| 亚洲国产日韩精品| 国产精品五月天| 欧美精品一区二区三区在线 | 午夜免费久久看| 国产校园另类小说区| 欧美三级在线视频| 91丝袜美女网| 国产iv一区二区三区| 精品一区二区在线观看| 亚洲大片精品永久免费| 伊人色综合久久天天| 最近中文字幕一区二区三区| 亚洲精品在线一区二区| 日韩亚洲欧美一区| 日韩免费看网站| 日韩你懂的电影在线观看| 日韩一级免费观看| 日韩欧美视频在线 | 一区二区三区精品| 亚洲女爱视频在线| 亚洲第一综合色| 日韩电影网1区2区| 日本免费新一区视频| 日本视频一区二区| 裸体歌舞表演一区二区| 久久疯狂做爰流白浆xx| 精品一区二区三区免费毛片爱| 久久精品99国产国产精| 成人黄色小视频| 日本韩国一区二区| 欧美精品日韩精品| 国产亚洲精品7777| 一区二区三区资源| 日韩高清在线观看| 国产成a人无v码亚洲福利| 91一区一区三区| 日韩一区二区高清| 国产精品国产三级国产aⅴ中文 | 中文字幕免费一区| 亚洲成国产人片在线观看| 精品一区二区免费在线观看| 99久久精品国产观看| 91精品中文字幕一区二区三区| 国产日韩欧美精品综合| 亚洲午夜免费电影| 大白屁股一区二区视频| 欧美一区二区三区四区高清| 亚洲欧美激情插| 激情综合色综合久久综合| 成人中文字幕合集| 欧美一区二区美女| 亚洲黄色尤物视频| 久久电影网站中文字幕| 欧美日韩一区在线| 亚洲三级小视频| 99天天综合性| 国产精品三级av| 国产成a人亚洲精品| 久久综合久色欧美综合狠狠| 五月婷婷色综合| 欧美人与z0zoxxxx视频| 性做久久久久久| 日韩亚洲国产中文字幕欧美| 日本一区中文字幕| 精品国产91乱码一区二区三区 | 精品久久国产97色综合| 五月天欧美精品| 91麻豆精品国产91久久久资源速度 | 国产欧美日韩亚州综合| 国产福利91精品| 17c精品麻豆一区二区免费| 91一区在线观看| 亚洲成av人影院| 欧美成人官网二区| 国产成人精品网址| 日韩一区欧美一区| 欧美日韩在线三区| 日本少妇一区二区| 中文字幕av在线一区二区三区| 99国产精品久| 捆绑调教美女网站视频一区| 国产日韩精品一区二区浪潮av| 成人av电影在线网| 日韩电影在线一区| 中文字幕一区二区三区不卡在线| 欧美亚洲高清一区二区三区不卡| 麻豆精品久久精品色综合| 国产精品久久久爽爽爽麻豆色哟哟| 在线观看免费视频综合|