• 关注官方微信 微信公众号 添加方式:
    1:搜索微信号(gogolinux
    2:扫描左侧二维码
  • 登录 注册
  • 一起学LINUX - GOGOLINUX

    查看: 380|回复: 0
    打印 上一主题 下一主题

    检测php网站是否已经被攻破的方法

    [复制链接]

    2

    主题

    2

    帖子

    12

    积分

    新手上路

    Rank: 1

    积分
    12
    跳转到指定楼层
    楼主
    发表于 2019-6-5 14:21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    0x01?查看访问日志?
      看是否有文件上传操作(POST方法),
    IPREMOVED--[01/Mar/2013:06:16:48-0600]"POST/uploads/monthly_10_2012/view.php?HTTP/1.1"20036"-""Mozilla/5.0"?
    IPREMOVED--[01/Mar/2013:06:12:58-0600]"POST/public/style_images/master/profile/blog.php?HTTP/1.1"20036"-""Mozilla/5.0"?
      nginx默认记录的日志格式为:
    access_log?logs/access.log?
    或?
    access_log?logs/access.log?combined;?
      nginx默认记录日志的位置为:
    nginx安装目录/log/?
    0x02?查找含有恶意php代码的文件?
      2.1?查找最近发生变化的php文件
    find.-typef-name'*.php'-mtime-7?
      -type?f?表示搜索正常的一般文件?-mtime?-7?表示7*24小时内修改的文件
      结果可能如下:
    ./uploads/monthly_04_2008/index.php?
    ./uploads/monthly_10_2008/index.php?
    ./uploads/monthly_08_2009/template.php?
    ./uploads/monthly_02_2013/index.php?
      2.2?查找文件中是否存在疑似代码
    find.-typef-name'*.php'|xargsgrep-l"eval?*("--color?
      (*代表任意个空格)
    find.-typef-name'*.php'|xargsgrep-l"base64_decode?*("--color?
    find.-typef-name'*.php'|xargsgrep-l"gzinflate?*("--color?
    find?.?-type?f?-name?'*.php'?|?xargs?grep?-l?"eval?*(str_rot13?*(base64_decode?*("?--color?
      注解:很多命令不支持管道传递参数,而实际上又需要这样,所以就用了xargs命令,这个命令可以用来管道传递参数;grep?-l表示只包含某个字符串的文件名,如果去掉-l则会显示匹配特定字符串的行内容
      几个特殊字符串的意义:?eval()把字符串按照php代码来执行,是最常见的php一句话木马
      base64_decode()?将字符串base64解码,攻击的时候payload是base64编码,则这个函数就有用武之地了
      gzinflate()?将字符串解压缩处理,攻击的时候payload用gzdeflate压缩之后,使用这个函数进行解压缩
      str_rot13()?对字符串进行rot13编码
      也可以使用正则表达式来搜索文件,查找可以代码:
    find.-typef-name'*.php'|xargsegrep-i"(mail|fsockopen|pfsockopen|stream\_socket\_client|exec|system|passthru|eval|base64_decode)?*("?
      下面解释webshell常用的函数:
      mail():可用来向网站用户发送垃圾邮件
      fsockopen():打开一个网络连接或者一个unix套接字连接,可用于payload发送远程请求
      pfsockopen():和fsockopen()作用类似
      stream_socket_client():建立一个远程连接,例子如下:
    ?
      exec():命令执行函数
      system():同exec()
      passthru():同exec()
      preg_replace()正则表达式由修饰符"e"修饰的时候,替换字符串在替换之前需要按照php代码执行,这种情况也需要考虑到,这种情况可采用这种以下扫搜:
    find.-typef-name'*.php'|xargsegrep-i"preg_replace?*\((['|\"])(.).*\2[a-z]*e[^\1]*\1?*,"--color?
    0x03?比较代码文件?
      这种情况需要有一份干净的代码,这份代码和正在使用的代码进行比较。例如
    diff-rwordpress-clean/wordpress-compromised/-xwp-content?
      上面的例子是比较wordpress-clean/?和wordpress-comprised/两个目录,并且目录里面的wp-content/子目录不比较
    0x04?搜寻可写的目录?
      看这个目录里面是否有可疑文件,如下脚本查找权限为777的目录是否存在php文件
    #!/bin/bash?
    search_dir=$(pwd)?
    writable_dirs=$(find$search_dir-typed-perm0777)?
    fordirin$writable_dirs?
      do
      #echo?$dir
      find$dir-typef-name'*.php'
    done?
      黑客经常在jpg文件中插入php代码,因此在查询这些目录的时候也要查询jpg文件:
    findwp-content/uploads-typef-iname'*.jpg'|xargsgrep-iphp?
      注意:-iname?表示文件名不区分大小写?grep?-i?也表示不区分大小写
    0x05?检测iframe标签?
      黑客经常做的是嵌入iframe标签,因此可以查看网页的源代码,并且搜索其中是否存在iframe标签,可使用如下命令:
    grep-i'
    分享到:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    官方微博:

    官方头条号:

    官方微信

    手机访问:

    官方微信

    QQArchiver 手机版 小黑屋 一起学LINUX - GOGOLINUX 闽ICP备18025837号-1 Discuz! X3.4 Powered by ? 2001-2013 Comsenz Inc. 

    本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

    快速回复 快速发帖 返回顶部 返回列表