1. # coding:utf-8
  2.  
  3. import os
  4. import sys
  5. import re
  6.  
  7. rulelist = [
  8. '(\$_(GET|POST|REQUEST)\[.{0,15}\]\(\$_(GET|POST|REQUEST)\[.{0,15}\]\))',
  9. '(base64_decode\([\'"][\w\+/=]{200,}[\'"]\))',
  10. 'eval\(base64_decode\(',
  11. '(eval\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  12. '(assert\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  13. '(\$[\w_]{0,15}\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  14. '(wscript\.shell)',
  15. '(gethostbyname\()',
  16. '(cmd\.exe)',
  17. '(shell\.application)',
  18. '(documents\s+and\s+settings)',
  19. '(system32)',
  20. '(serv-u)',
  21. '(提权)',
  22. '(phpspy)',
  23. '(后门)',
  24. '(webshell)',
  25. '(Program\s+Files)'
  26. ]
  27.  
  28. def Scan(path):
  29. for root,dirs,files in os.walk(path):
  30. for filespath in files:
  31. isover = False
  32. if '.' in filespath:
  33. ext = filespath[(filespath.rindex('.')+1):]
  34. if ext=='php':
  35. file= open(os.path.join(root,filespath))
  36. filestr = file.read()
  37. file.close()
  38. for rule in rulelist:
  39. result = re.compile(rule).findall(filestr)
  40. if result:
  41. print '文件:'+os.path.join(root,filespath)
  42. print '恶意代码:'+str(result[0])
  43. print '\n\n'
  44. break
  45.  
  46. if os.path.lexists(sys.argv[1]):
  47. print('\n\n开始扫描:'+sys.argv[1])
  48. print(' 可疑文件 ')
  49. print('########################################')
  50. Scan(sys.argv[1])
  51. print('提示:扫描完成-- O(∩_∩)O哈哈~')
  52. else:
  53. print '提示:指定的扫描目录不存在--- 我靠( \'o′)!!凸'

  

php后门简单检测脚本的更多相关文章

  1. 简单shell脚本

      简单shell脚本备忘   #!/bin/sh num= ] do table_num=`printf %03d ${num}` echo album_info_${table_num} #mys ...

  2. [shell编程]一个简单的脚本

    首先,为什么要学习shell呢?哈哈,当然不是shell能够怎样怎样然后100字. 最近看到一篇博文<开阔自己的视野,勇敢的接触新知识>,读完反思良久.常常感慨自己所会不多,对新知识又有畏 ...

  3. 查看当前支持的shell,echo -e相关转义符,一个简单shell脚本,dos2unix命令把windows格式转为Linux格式

    /etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bi ...

  4. Redis + keepalived 高可用行配置检测脚本

    Redis 在生产配置中:除redis集群.哨兵模式之外:主从模式还是比较普遍的. 配置 redis 多主从:由 keepalived 做 VIP 地址漂移.可以实现redis的高可用性. keepa ...

  5. 安全运维之:Linux后门入侵检测工具的使用

    安全运维之:Linux后门入侵检测工具的使用 https://blog.csdn.net/exitgogo/article/details/39547113

  6. 【javascript】浏览器用户代理检测脚本实现

    以下是完整的用户代理字符串检测脚本,包括检测呈现引擎.平台.Windows操作系统.移动设备和游戏系统. var client = function(){ // 呈现引擎 var engine = { ...

  7. keepalived检测脚本及注意事项

    keepalived检测脚本的作用及注意事项: 默认每隔3秒钟执行一次检测脚本,检查nginx服务是否启动,如果没启动就把nginx服务启动起来,如果启动不成功,就把keepalived服务down掉 ...

  8. selenium从入门到应用 - 2,简单线性脚本的编写

    本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下 ...

  9. Linux学习之十七-配置Linux简单的脚本文件自启动

    配置Linux简单的脚本文件自启动 在Linux中使用shell脚本解决一些问题会比单独执行多条命令要有效率,脚本文件规定命名以.sh结尾,最基本的规则就是其内容是命令,想要脚本文件开机自启动,就需要 ...

随机推荐

  1. Vue avoid mutating a prop directly since the value will be overwritten

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. python - linux下 no module named pip

    有网络的情况下,linux系统提示无法使用pip命令: 有两种解决方式: 第一种: =============================== 敲命令:python -m ensurepip 得到 ...

  3. pid稳态控制

    https://blog.csdn.net/qq_25352981/article/details/81007075

  4. C#连接内存数据库redis【1、Redis存读取数据】

    这一节演示下载.NET中怎样使用Redis存储数据.在.net中比较常用的客户端类库是ServiceStack,看下通过servicestack怎样存储数据. DLL下载:https://github ...

  5. win10下用Anaconda安装TensorFlow | 后附JetBrains测试

    从意识上认识Anaconda(音标:[ˌænəˈkɑ:ndə])/(拼读:安娜康达). Anaconda:水蟒的意思,如图logo像不像水蟒.其最后五个字母是conda(包管理器),而Anaconda ...

  6. IntelliJ IDEA 2019 注册码 (激活码) 有效期至2100年

    IntelliJ IDEA 2019 注册码 (激活码) 有效期至2100年 本人使用的IDEA是最新版:IntelliJ IDEA 2018.3.3 x64 (IntelliJ IDEA官网下载地址 ...

  7. ubuntu安装软件失败,出现404错误,更新软件源

    更新源方法 备份原来的源 首先备份原来的源,用来出错后进行恢复 sudo cp /etc/apt/sources.list/etc/apt/sources.list_backup 1 如果更新源后出错 ...

  8. JavaScript数值千分位格式化的方法和性能

    瞎掰的前提 前端嘛,经常处理数值和时间. 所以数值和时间的格式化少不了. 最近一直在面试前端, 就出了一个如何给数值添加千分位的面试题. 至于答案,我一直都有一种标准, 一是基于你现有的知识可以实现, ...

  9. react 添加代理 proxy

    react package.json中proxy的配置如下 "proxy": { "/api/rjwl": { "target": &quo ...

  10. Linux增加虚拟内存方法

    例如增加2G虚拟内存,操作如下: [root@gamedb ~]# free -m[root@gamedb tmp]# dd if=/dev/zero of=/tmp/big_swap bs=1024 ...