Oliver Bayes-Shelton Asked: 2010-04-01 06:48:20 +0800 CST2010-04-01 06:48:20 +0800 CST 2010-04-01 06:48:20 +0800 CST 有人如何通过我的站点运行 shell 命令,我该如何阻止它们? 772 我相信有人正在通过我的站点在我的服务器上运行 shell 命令。 用户怎么会这样做? 我怎样才能阻止他们这样做? php security 5 个回答 Voted Shawn Steward 2010-04-01T06:55:31+08:002010-04-01T06:55:31+08:00 http://www.addedbytes.com/writing-secure-php/ marr75 2010-04-01T06:57:38+08:002010-04-01T06:57:38+08:00 我会说寻找评估未经验证的用户输入。一般来说,寻找未经验证的用户输入。 Arkh 2010-04-01T07:07:50+08:002010-04-01T07:07:50+08:00 检查您的代码中是否调用了 eval 函数。当你拥有它时,检查 eval 中的内容,如果使用了任何用户输入,那是你的罪魁祸首。 然后,检查您的 fopen、fwrite、error_log 和 file_put_contents 调用。是否使用用户输入来创建文件路径($_FILES 数组是用户输入)?另一种可能的攻击媒介。 检查您的包含和要求:您是否使用用户输入来创建您正在加载的文件的路径? 让我们再来一个:你有什么让用户上传的东西吗? Bart van Heukelom 2010-04-01T07:09:48+08:002010-04-01T07:09:48+08:00 您exec在任何地方使用和它的朋友吗?检查那里。 Sripathi Krishnan 2010-04-01T09:06:29+08:002010-04-01T09:06:29+08:00 我相信有人正在通过我的站点在我的服务器上运行 shell 命令。 你知道正在运行什么样的命令吗?如果是,您可能可以查看您的网络访问日志并确定是否存在任何可疑活动。 你使用数据库吗?MS SQL Server 具有相当于 exec() 命令的功能,允许攻击者运行 shell 命令。即使使用 MySQL,也有运行 shell 命令的方法,前提是您有一个具有写入/执行权限的目录。看到这篇文章 - http://www.greensql.net/publications/backdoor-webserver-using-mysql-sql-injection
http://www.addedbytes.com/writing-secure-php/
我会说寻找评估未经验证的用户输入。一般来说,寻找未经验证的用户输入。
检查您的代码中是否调用了 eval 函数。当你拥有它时,检查 eval 中的内容,如果使用了任何用户输入,那是你的罪魁祸首。
然后,检查您的 fopen、fwrite、error_log 和 file_put_contents 调用。是否使用用户输入来创建文件路径($_FILES 数组是用户输入)?另一种可能的攻击媒介。
检查您的包含和要求:您是否使用用户输入来创建您正在加载的文件的路径?
让我们再来一个:你有什么让用户上传的东西吗?
您
exec
在任何地方使用和它的朋友吗?检查那里。你知道正在运行什么样的命令吗?如果是,您可能可以查看您的网络访问日志并确定是否存在任何可疑活动。
你使用数据库吗?MS SQL Server 具有相当于 exec() 命令的功能,允许攻击者运行 shell 命令。即使使用 MySQL,也有运行 shell 命令的方法,前提是您有一个具有写入/执行权限的目录。看到这篇文章 - http://www.greensql.net/publications/backdoor-webserver-using-mysql-sql-injection