相关疑难解决方法(0)

可利用的PHP功能

我正在尝试构建一个可用于任意代码执行的函数列表.目的不是列出应列入黑名单或以其他方式禁止的功能.相反,我希望在搜索受感染的后台服务器时,有一个grep可用的红旗关键字列表.

这个想法是,如果你想构建一个多用途的恶意PHP脚本 - 比如像c99或r57这样的"web shell"脚本 - 你将不得不使用一组或多组相对较小的函数文件中的某个位置,以便允许用户执行任意代码.搜索这些功能可以帮助您更快地将数万个PHP文件的大海捞变到相对较小的脚本集中,这些脚本需要仔细检查.

显然,例如,以下任何一种都会被视为恶意(或可怕的编码):

<? eval($_GET['cmd']); ?>

<? system($_GET['cmd']); ?>

<? preg_replace('/.*/e',$_POST['code']); ?>
Run Code Online (Sandbox Code Playgroud)

等等.

前几天通过一个被入侵的网站进行搜索,我没有注意到一段恶意代码,因为我没有意识到preg_replace使用该/e标志可能会造成危险(严重的是,为什么即使那样?).还有其他我错过的吗?

到目前为止,这是我的清单:

Shell执行

  • system
  • exec
  • popen
  • backtick operator
  • pcntl_exec

PHP执行

  • eval
  • preg_replace(带/e修饰符)
  • create_function
  • include[ _once]/require[ _once](有关漏洞利用详情,请参阅mario的回答)

拥有一个能够修改文件的函数列表可能也很有用,但我想99%的时间漏洞利用代码至少包含一个上述函数.但是如果你有一个能够编辑或输出文件的所有功能的列表,请发布它,我会在这里包含它.(而且我不算数mysql_execute,因为那是另一类漏洞利用的一部分.)

php security grep

277
推荐指数
15
解决办法
12万
查看次数

检查变量是否是PHP中的整数

我有以下代码

    $page = $_GET['p'];

    if($page == "")
    {
        $page = 1;
    }
    if(is_int($page) == false)
    {
        setcookie("error", "Invalid page.", time()+3600);
        header("location:somethingwentwrong.php");
        die();
    }
    //else continue with code
Run Code Online (Sandbox Code Playgroud)

我将用它来查看数据库的不同"页面"(结果1-10,11-20等).但是,我似乎无法使is_int()函数正常工作.将"1"放入url(noobs.php?p = 1)会给出无效的页面错误,以及类似"asdf"的内容.

php

67
推荐指数
5
解决办法
10万
查看次数

可以采取哪些步骤来确保PHP应用程序的安全性?

在银行网站上填写安全表格时,我一直想知道他们如何知道他们的应用程序是完全安全的.当然你知道你使用SSL,你的帐户"应该"是安全的,并且希望安全问题,帐户限制,超时等应该保证您的帐户安全.但测试这个的最佳方法是什么?什么决定了你的应用程序的"安全"程度?如果您的代码中存在某个错误,那么您拥有多少安全措施并不重要.

我最近创建了一个网站登录,该网站将在15分钟后自动将用户注销,在3次尝试失败后锁定其帐户,包含安全问题,并在SSL上运行.但我需要知道是什么决定了程序的安全性.

谢谢你的帮助!
都会

编辑

主要问题是."测试PHP安全性的最佳方法是什么?" 是否有采取措施来确保这一点.当然必须有.

php security

3
推荐指数
1
解决办法
801
查看次数

让我的网站破解证明的提示

可能的重复:
我应该在PHP中注意哪些安全问题
开发人员在构建公共网站之前应该知道什么?

我正在进行的项目已经接近完成并接近启动,但我想确保它是防黑客的,因为我的朋友/合作伙伴认为我们有一些敌人可以雇用聪明的黑客来使网站失效.

如果在HTTPS下安全地运行我的网站,将有所帮助,如果我有很多用户,它会难以在CPU上运行吗?

请告诉我所需的所有安全检查.

php security

-2
推荐指数
1
解决办法
3622
查看次数

标签 统计

php ×4

security ×3

grep ×1