php网站挂马,转 :php 网站挂马检查

php网站挂马,转 :php 网站挂马检查php后门木马常用的函数大致上可分为四种类型:1.执行系统命令:system,passthru,shell_exec,exec,popen,proc_open2.代码执行与加密:eval,assert,call_user_func,base64_decode,gzinflate,gzuncompress,gzdecode,str_rot133.文件包含与生成:re…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

php后门木马常用的函数大致上可分为四种类型:

1. 执行系统命令: system, passthru, shell_exec, exec, popen, proc_open

2. 代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13

3. 文件包含与生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite

4. .htaccess: SetHandler, auto_prepend_file, auto_append_file

想找一个 关键词是“hellow word” 在哪些文件中有,我们用grep命令

grep –color -i -r -n “hellow word”  /data/www/

这样就能搜索出来 文件中包含关键词的文件

–color是关键词标红

-i是不区分大小写

-r是包含子目录的搜索

-d skip忽略子目录

可以用以上命令查找网站项目里的带有挂马的文件

.两个查后门的实用linux命令:

find /data/web/website/ -iname *.php -mtime -35 找出/data/web/website/目录下 35分钟前新建的php

find /data/web/website/ -name “*.php” | xargs grep “eval($_POST[” 找出/data/web/website/ 里面源码包含eval($_POST[的php文件

例如

注入漏洞eval(base64_decode

grep –color -i -r -n “eval”  /data/www/   找出来对比以前正常的代码,看是否正常。然后用stat查看这个木马文件的修改时间,最后去寻找WEB日志,找出木马从哪里进来的

五:

实用查找PHP木马命令:

查找PHP木马

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc”> /tmp/php.txt # grep -r –include=*.php  ‘[^a-z]eval($_POST’ . > /tmp/eval.txt # grep -r –include=*.php  ‘file_put_contents(.*$_POST\[.*\]);’ . > /tmp/file_put_contents.txt # find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decoolcode|eval\(base64_decoolcode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

1

2

3

4

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc”>/tmp/php.txt

#grep-r–include=*.php'[^a-z]eval($_POST’.>/tmp/eval.txt

#grep-r–include=*.php’file_put_contents(.*$_POST\[.*\]);’ . > /tmp/file_put_contents.txt

# find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decoolcode|eval\(base64_decoolcode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

查找最近一天被修改的PHP文件

#   find -mtime -1 -type f -name \*.php

1

#   find -mtime -1 -type f -name \*.php

修改网站的权限

# find -type f -name \*.php -exec chmod 444 {} \; # find ./ -type d -exec chmod 555{} \;

1

2

# find -type f -name \*.php -exec chmod 444 {} \;

# find ./ -type d -exec chmod 555{} \;

假设最后更新是10天前我们可以查找10天内生成的可以php文件:

find /var/www/ -name “*.php” -mtime -10

也可以通过关键字的形式查找 常见的木马常用代码函数 eval,shell_exec,passthru,popen,system

#find /var/www/ -name “*.php” |xargs grep “eval” |more #find /var/www/ -name “*.php” |xargs grep “shell_exec” |more #find /var/www/ -name “*.php” |xargs grep “passthru” |more

1

2

3

#find /var/www/ -name “*.php” |xargs grep “eval” |more

#find /var/www/ -name “*.php” |xargs grep “shell_exec” |more

#find /var/www/ -name “*.php” |xargs grep “passthru” |more

还有查看access.log 当然前提是你网站的所有php文件不是很多的情况下

一句话查找PHP木马

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decode|spider_bc”> /tmp/php.txt # grep -r –include=*.php ’[^a-z]eval($_POST’ . > /tmp/eval.txt # grep -r –include=*.php ’file_put_contents(.*$_POST[.*]);’ . > /tmp/file_put_contents.txt # find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval(gzuncompress(base64_decode|eval(base64_decode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

1

2

3

4

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decode|spider_bc”> /tmp/php.txt

# grep -r –include=*.php ’[^a-z]eval($_POST’ . > /tmp/eval.txt

# grep -r –include=*.php ’file_put_contents(.*$_POST[.*]);’ . > /tmp/file_put_contents.txt

# find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval(gzuncompress(base64_decode|eval(base64_decode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

查找最近一天被修改的PHP文件

# find -mtime -1 -type f -name *.php

以下其实是多余的操作了其实,但是还是有值得看的地方

检查代码。

肯定不是一个文件一个文件的检查,Linxu有强悍的命令

grep ‘eval’ * -R 全盘搜索当前目录所有文件(包含子目录)中带有eval的文件,这条可以快速查找到被挂马的文件。

关于eval,请自行google一句话php代码。

2,查看日志。

不到这个时候不知道日志的可贵啊。

还是以grep命令为主。

思路:负责的站点是Linux,只开了2个端口,一个22和80,外部的执行命令是由从80端口进来,Selinux报httpd访问/boot文件,确认被挂马。而所有的命令执行必须POST提交给执行的文件。所以,查找日志中所有的POST记录。

cat access_log_20120823.log | grep ‘POST’ | grep -v ‘反向查找’ | less,通过grep -v排除正常post,egrep也支持正则,但是太复杂了,看懂不知道怎么运用。

(这里不建议用cat,用tail可以追加一个文件来看)

这可以防患于未然,防止不知道哪天又被人黑进来了。每天看一眼日志。

3,对于网页目录,只给apache用户rx权限,不要给w权限,目录设置要加上rx,不要给w,个别文件除外。所以,配合2使用,Linux下可以快速过滤刷选出来不规则的POST请求。

综合1,2其实就可以快速查找被黑的页面,被修改的文件替换干净的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187612.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu clion 激活码【在线注册码/序列号/破解码】

    ubuntu clion 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    35
  • 26Region_awing

    26Region_awing给出 n 个点的一棵树,多次询问两点之间的最短距离。注意:边是无向的。所有节点的编号是 1,2,…,n。输入格式第一行为两个整数 n 和 m。n 表示点数,m 表示询问次数;下来 n−1 行,每行三个整数 x,y,k,表示点 x 和点 y 之间存在一条边长度为 k;再接下来 m 行,每行两个整数 x,y,表示询问点 x 到点 y 的最短距离。树中结点编号从 1 到 n。输出格式共 m 行,对于每次询问,输出一行询问结果。数据范围2≤n≤104,1≤m≤2×104,0<k≤1

    2022年8月9日
    4
  • WinAPI CreateThread

    WinAPI CreateThreadHANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,DWORDdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);编辑本段参数说明…

    2022年7月11日
    16
  • 浅析如何把ER模型转换为关系模式

    浅析如何把ER模型转换为关系模式本篇文章讲解的内容是“浅析如何把ER模型转换为关系模式”。在做ER图题目时,有些同学还是经常会做错,最主要原因是没有理解他们之间转换的原理。本文通过理论分析和例题来浅析这块知识点,当理解后,可以趁热打铁,把后面推荐的例题题目做一下,即可完全吸收这块内容。

    2022年7月16日
    18
  • Linux零拷贝_Linux开发教程

    Linux零拷贝_Linux开发教程引言传统的Linux操作系统的标准I/O接口是基于数据拷贝操作的,即I/O操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘I/O的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘I/O操作。但是数据传输过程中的数据拷贝操作却导致了极大的CPU开销,限

    2025年11月26日
    3
  • git切换远程分支然后怎么拉取(从远程拉取分支到本地分支)

    Git拉取远程分支到本地本地新建一个空白文件夹folder;进入folder目录,打开gitbash,用命令行初始化git仓库;$gitinit3.与远程仓库建立连接;//`http://xxx…`该网址为远程仓库`Game`的ip地址,可在远程仓库`Game`中进行查看$gitremoteaddoriginhttp://192.168.22.88:8000/102840/Game.git拉取远程分支到本地;//`cs`替换为远程分支名$gitf

    2022年4月18日
    163

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号