技术开发

linux系统下python版查杀php webshell后门工具

后门这东西好让人蛋疼,第一文件太多了,不容易找,第二,难找,需要特征匹配啊。搞了一个python版查杀php webshell后门工具,大家可以增加后门的特征码,然后甩到后台给他查杀就可以了。

这个代码比较简单,大家可以继续完善下。

#!/usr/bin/python
# -*- coding: utf-8 -*-
#blog:www.jincon.com

import os
import sys
import re

rulelist = [
    '(\$_(GET|POST|REQUEST)\[.{0,15}\]\(\$_(GET|POST|REQUEST)\[.{0,15}\]\))',
    '(base64_decode\([\'"][\w\+/=]{200,}[\'"]\))',
    'eval\(base64_decode\(',
    '(eval\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
    '(assert\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
    '(\$[\w_]{0,15}\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
    '(wscript\.shell)',
    '(gethostbyname\()',
    '(cmd\.exe)',
    '(shell\.application)',
    '(documents\s+and\s+settings)',
    '(system32)',
    '(serv-u)',
    '(提权)',
    '(phpspy)',
    '(后门)',
    '(webshell)',
    '(Program\s+Files)'
]

def Scan(path):
    for root,dirs,files in os.walk(path):
        for filespath in files:
            isover = False
            if '.' in filespath:
                ext = filespath[(filespath.rindex('.')+1):]
                if ext=='php':
                    file= open(os.path.join(root,filespath))
                    filestr = file.read()
                    file.close()
                    for rule in rulelist:
                        result = re.compile(rule).findall(filestr)
                        if result:
                            print '文件:'+os.path.join(root,filespath)
                            print '恶意代码:'+str(result[0])
                            print '\n\n'
                            break

if os.path.lexists(sys.argv[1]):
    print('\n\n开始扫描:'+sys.argv[1])
    print('               可疑文件                 ')
    print('########################################')
    Scan(sys.argv[1])
    print('提示:扫描完成-- O(∩_∩)O哈哈~')
else:
    print '提示:指定的扫描目录不存在---  我靠( \'o′)!!凸'

关键词: python , webshell

php-5.2和php5.3 版本之下修改php源码的方式防止跨站

php-5.2和php5.3 版本之下修改php源码的方式防止跨站。修改文件:

以php-5.2.17版本为例,位置:main/fopen_wrappers.c

» 阅读全文

关键词: 防止跨站 , 修改php源码

书读百遍其义自现之利用usort对二维数组指定键值排序

usort是php自带的可以自定义排序的函数,usort对二维数组指定键值排序。

bool usort ( array &$array , callable $cmp_function )

本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

参数

array

输入的数组

cmp_function

在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。

不说了,PHP手册看看还是非常好的,书读百遍其义自现,看代码:

» 阅读全文

关键词: 二维数组排序 , usort

nodejs的npm安装模块时候报错:npm ERR! Error: CERT_NOT_YET_VALID的解决方法

nodejs我就不介绍了,牛逼的东东,他非常强大。最近在centos6.4简化版的安装了node最新版,但是执行:

 npm install -g supervisor
竟然报错:
[root@localhost ~]# npm install -g supervisor
npm http GET https://registry.npmjs.org/supervisor
npm http GET https://registry.npmjs.org/supervisor
npm http GET https://registry.npmjs.org/supervisor
npm ERR! Error: CERT_NOT_YET_VALID
npm ERR!     at SecurePair.<anonymous> (tls.js:1370:32)
npm ERR!     at SecurePair.EventEmitter.emit (events.js:92:17)
npm ERR!     at SecurePair.maybeInitFinished (tls.js:982:10)
npm ERR!     at CleartextStream.read [as _read] (tls.js:469:13)
npm ERR!     at CleartextStream.Readable.read (_stream_readable.js:320:10)
npm ERR!     at EncryptedStream.write [as _write] (tls.js:366:25)
npm ERR!     at doWrite (_stream_writable.js:226:10)
npm ERR!     at writeOrBuffer (_stream_writable.js:216:5)
npm ERR!     at EncryptedStream.Writable.write (_stream_writable.js:183:11)
npm ERR!     at write (_stream_readable.js:583:24)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 2.6.32-431.5.1.el6.x86_64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "supe   rvisor"
npm ERR! cwd /root
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /root/npm-debug.log
npm ERR! not ok code 0
经过仔细排查和google,原来是ssl 的问题:

解决办法:

 npm config set strict-ssl false
然后就OK啦~~~
npm install -g supervisor

如图:


npm.png

npm.png

大小: 9.68 KB
尺寸: 500 x 158
浏览: 41 次
点击打开新窗口浏览全图

关键词: npm , nodejs

php采集URL远程图片最高效的方法(Curl版本)

php采集远程图片有很多的方法,但是比较高效的个人感觉还是curl环境。

直接分享curl采集远程图片的代码:

function getImg($url = "", $filename = ""){
  $hander = curl_init();
  $fp = fopen($filename,'wb');
  curl_setopt($hander,CURLOPT_URL,$url);
  curl_setopt($hander,CURLOPT_FILE,$fp);
  curl_setopt($hander,CURLOPT_HEADER,0);
  curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
  //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来
  curl_setopt($hander,CURLOPT_TIMEOUT,20);
  curl_exec($hander);
  curl_close($hander);
  fclose($fp);
  Return true;
}

» 阅读全文

关键词: curl采集远程图片 , curl

Discuzx 2.0/2.5/3.0论坛直接发帖接口,Discuzx 接口POST发帖更省事啦

经过做discuz开发的都遇到,需要直接像论坛发帖,譬如马甲贴,譬如做客户端的时候做的POST数据发帖。主要是为了省事吧。

具体代码如下:

» 阅读全文

nodejs如何连接Mysql,分享nodejs连接Mysql数据库的方法

nodejs如何连接Mysql,其实nodejs连接mysql数据库比较简单。

首先创建一个数据库及表。如下:

create databases node;
create table test(
	id  int  AUTO_INCREMENT PRIMARY KEY ,
	name  char(50)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
nodejs连接mysql是需要mysql的驱动支持的:

下面安装MySQL驱动:

» 阅读全文

关键词: nodejs连接mysql , nodejs , mysql

Discuzx安全提问的加密方式和相关存储表

discuzx安全提问的是经过加密存储在ucenter表里面的pre_ucenter_members的secques字段中,

加密方式在:source/function/function_core.php

function quescrypt($questionid, $answer) {
	return $questionid > 0 && $answer != '' ? substr(md5($answer.md5($questionid)), 16, 8) : '';
}
从这个里面可以看到,这种加密方式是不可以解密的。

关键词: discuzx