RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 663883
Accepted
user216109
user216109
Asked:2020-05-10 02:22:52 +0000 UTC2020-05-10 02:22:52 +0000 UTC 2020-05-10 02:22:52 +0000 UTC

如何为黑客设下陷阱,或充分击退攻击?

  • 772

帮帮伙计们。我被黑了,厚颜无耻地跟我扯上关系,要钱。我是这个行业的新手,我认为在我学习的同时,办公室宁愿让我下班。

最近网站开始卡顿了,貌似是DDOS攻击。用IP封禁他,但无济于事。我厌倦了追逐 IP 并禁止它们,原则上这不是一个选项。就在我和黑客通信的时候,他打了几个洞,说他连我的数据库都可以攻破。当我在过载期间检查数据库时,它没有负载,主要是在服务器上。每次我更改所有可能的密码,但黑客很容易绕过它们。

因此,四处翻找,寻找弱点,我发现我的服务器不仅为index.php,而且还为发布页面abc.php, xyz.php。我不知道,该死的,但我用鼻子感觉到这个混蛋隐藏了一些文件并正在访问它。刹车的地方,100% 填充通道。原则上,可以从此文件 ( DELTE FROM tbl_name) 中删除基数。

怎样才能找到这个文件,或者怎样才能理解对服务器的一些异常输入?我有 Symfony 1.4 PHP 框架。5年前的网站。重写它?(不是一个选项,至少现在不是)。我在额外的文件存储层中遗漏了什么?还是我挖错了方向?

听朋友说,这里面90%都是竞争对手。将其黑掉后,DDoS 通常会停止。但是因为你的弱点而伤害某人的想法并没有激发什么。

他要求黑客给他时间据称与他的老板讨论分叉的问题。

php
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Best Answer
    Vanya Avchyan
    2020-05-12T05:26:40Z2020-05-12T05:26:40Z

    原则上,无论您是被黑客攻击还是正在尝试被黑客攻击都没有关系,因为我们迟早会面临这种威胁。

    下面介绍的所有行动将帮助您了解自己的弱点和弱点,帮助您改正错误,帮助您在未来胜任和有效地保护自己并有效地与这种邪恶作斗争。我们将学习为入侵者设置陷阱的方法和技术(Honeypot - 一罐蜂蜜)。

    以下是第一步:

    如果您已经被黑客入侵:

    • 我们更改服务器(Linux、MySQL 等)的登录名和密码。
    • 我们确保我们至少有两组具有不同权限的用户。假设web和root,其中web此权限适用于所有残障用户(禁止下载除 之外的文件image type)。如何授予权限?阅读如何提高服务器的安全性和可用性,为后续步骤打下坚实的基础。.

    • 如果 GIT没有显示不寻常的变化,那么可能值得查看它之外的目录。通常,这些目录是我们允许用户上传的图像或其他文件上传的目录。

    • find . -type f -name '*.php' | xargs grep -l "eval *(str_rot13 *(base64_decode *(" --color该命令将查找包含的 php 文件eval(str_rot13(base64_decode((您也可以在数据库中搜索SELCT col_nam FROM tbl_name WHERE col_name LIKE '%eval(str_rot13(base64_decode(%')。grep 语法非常简单,您可以更改它以满足您的需要。

    PHP级别:

    1. **限制在 php.ini 中使用危险的 php 函数 **
      ( disable_functions = "show_source, system, shell_exec, exec, eval" )。您可以关闭该函数。并通过套接字连接mail()修复对端口 25 的调用。SMTP
    2. 在这里我将重点介绍功能eval。如果 PHP 代码以某种方式隐藏在您的代码中,那么它的执行eval将不会发生。可以根据需要补充或减去此列表。每个人都禁用了编写的任何 PHP 脚本,我希望不是我们。

    3. 跨站请求伪造( CSRF):

      • 许多流行的框架都有针对它的全面保护,包括你的。一种常见的保护方法是当一个额外的密钥与每个用户会话相关联时的机制,并且当在带有参数的地方发送请求时,发送生成的令牌。和然后将生成的token和请求过来的token进行比较,如果匹配,那么这个请求是未伪造的。高效执行POST, PUT, DELETE, STORE查询。
    4. 跨站点脚本(XSS)。在输入页面时显示您未保存在页面上的文本。这里有一些细微差别。

      • 如果用户在您的数据库或其他地方保存文本(例如,发表评论或在网站上进行搜索),那么您需要考虑是否只需要文本,然后在保存之前清除不需要的文本标签(对于 PHP strip_tags -HTML从字符串中删除 PHP- 标签)。
      • 如果还需要跳过标签,那就先做一些初步的验证,或者按照原则输入标记stackoverflow textarea。我们在发布问题或者答案的时候,是不能输入任何标签的,我只是忘记了这些文字标记叫什么: )
      • 始终仔细检查通过表单或其他方式上传到服务器的文件。检查它们的扩展名和内容。通常,在没有适当安全控制的情况下上传文件会导致漏洞,这在实践中已成为 PHP web 中的一个真正问题应用程序。为确保它确实是图像,请勿使用getimagesize()来检查文件是否为图像文件。出于这些目的,请使用Fileinfo扩展名。值得补充的是,最好将文件转换为特定格式,例如png. 投射时,图片元数据会丢失,安全性得到切实保障,上传中是否存在带有类型扩展名的文件,在建站.php之初就应该检查是否存在,如果存在,则应立即丢弃。

    在 .htaccess 级别

    1. 限制站点上的入口点。

      • 例如,在框架中,访问主要通过index.php. 或您知道的其他文件 ( admin.php,back.php, ...)。您始终可以跟踪对另一个文件的访问,并且始终可以在单独的日志中记录有关对可疑文件的访问的信息。
      • 检查.htaccess文件是否有可疑更改。auto_append_file并auto_prepend_file在所有 PHP 脚本的开头或结尾包含其他 PHP 文件,攻击者可以使用它们来包含他们的代码。 find . -type f -name '\.htaccess' | xargs grep -i auto_prepend_file;

      • 以下命令在所有子目录中搜索.htacсess包含“ http”的文件。搜索的结果将是所有重定向规则的列表,其中可能包含恶意规则find . -type f -name '\.htaccess' | xargs grep -i http;。

      • .htaccess将具有以下内容的文件添加到所有可写目录:

        php_flag engine 0

        RemoveHandler .phtml .php .php2 .php3 .php4 .php5 .php7 .phps .cgi .pl .asp .aspx .shtml .shtm .fcgi .fpl .htm .html

        AddType text/plain .phtml .php .php2 .php3 .php4 .php5 .php6 .php7 .phps .cgi .pl .asp .aspx .shtml .shtm .fcgi .fpl .htm .html

    通过这样做,我们在此目录中禁用 PHP,并强制所有脚本显示为 HTML。这可以以防万一。肯定不会多余。

    或禁止执行:

    <FilesMatch ".(php|asp|fcgi| ...) $">
    Order Allow,Deny
    Deny from all
    </FilesMatch>
    

    在数据库级别,特别是 MySQL:

    • 始终使用准备好的查询和存储过程:

    • 大多数数据库都支持准备好的查询的概念。这是什么?这可以描述为某种已编译的 SQL 查询模板,它将由应用程序运行并配置输入参数。准备好的查询有两个主要优点:

      • 查询必须准备一次,然后可以根据需要多次运行,既可以使用相同的参数,也可以使用不同的参数。
      • 准备好的查询参数不需要用引号转义;驱动程序会自动执行此操作。如果应用程序使用专门准备好的查询,开发人员可以确定不会发生 SQL 注入(但是,如果查询文本的其他部分使用未转义字符编写,SQL 注入仍然是可能的;我们在这里谈论的是参数)。
    • 保护自己免受 SQL 注入

      • 直接 SQL 注入恶意语句是一种攻击者创建或修改当前 SQL 查询以显示隐藏数据、更改数据甚至在数据库服务器上执行危险操作系统命令的技术。该攻击基于从用户输入和静态参数构建 SQL 查询的应用程序。

    在 Linux 系统级别...

    • 我不知道还有什么比这些真正防御 DDOS 的服务更好的了。我使用它们 。

    如何为黑客设置陷阱(Honeypot - 一罐蜂蜜):

    如果您没有足够的知识和技能,请不要这样做,黑客可以在您自己的陷阱中击败您。

    Honeypot(蜜罐)早已广泛应用于计算机安全领域,它是一种资源,其任务是投降给目标为接受测试、攻击和被黑的黑客。

    它可以是另一个系统或应用程序的模拟器,某种“埋伏的地牢”,或者只是一个标准系统。不管你怎么造你的锅,它的主要任务就是被攻击并详细告诉你。

    • 快速简单的 PHP 蜜罐垃圾邮件预防
    • 简单的 PHP HoneyPot 教程
    • 探索与计算机和网络攻击相关的工具、策略和动机,并分享经验教训。

    自然,不可能在这篇文章中列出所有内容。但是如果您尝试实施本文中列出的所有内容,您可以学习如何保护自己而不是生病。对于每个要点,您总是可以提出问题或寻找更多信息以获得更详细和正确的实施。

    有用的材料:

    • 用于检查网站病毒的 Web 服务https://habrahabr.ru/post/303956/

    • 对抗 DDoS 攻击的方法https://habrahabr.ru/post/129181/

    • 对抗 DDOS 攻击的 5 个技巧http://www.securitylab.ru/analytics/442099.php

    • 不惜一切代价抵制:应对DoS/DDoS攻击的方法https://xakep.ru/2009/10/14/49752/

    • 5 个用于分析您网站安全性的程序https://seo-zona.ru/5-programm-dlya-analiza-bezopasnosti-vashego-sajta-2015-03-31.html

    • 如何了解您的网站已被黑客入侵https://www.siteguarding.com/ru/kak-poniat-chto-your-sait-byl-vzloman

    免费的在线病毒扫描程序:

    • QUTTERA 网络爬虫https://quttera.com/
    • ReScan.pro 网络扫描仪https://rescan.pro/
    • VirusTotal https://www.virustotal.com/ru/
    • Sucuri 网络爬虫https://sitecheck.sucuri.net/
    • Dr.Web 在线扫描仪https://vms.drweb.ru/online/

    用知识武装自己。保持警惕。.

    祝你好运 :)

    • 86
  2. jashka
    2020-05-10T02:34:17Z2020-05-10T02:34:17Z

    至少做到

    • 备份所有内容
    • 按日期搜索项目以查找新文件
    • 在某个地方检查你的来源,MB 会发现一些使用已经存在的病毒签名的东西。
    • 最重要的是,不清楚您为什么仍在使用 Symfony 1.4。
    • 我认为这个版本或您的代码中可能存在错误。
    • 查看您上传文件的位置。
    • 为Nginx安装一个模块(如果安装了,如果没有安装)一个抗ddos的模块。这是文章https://habrahabr.ru/post/139931/
    • 我同意评论,看看项目grep'omeval
    • 16
  3. Andrey Fedorov
    2020-05-10T02:42:30Z2020-05-10T02:42:30Z

    对于 KO 级别的建议,提前表示抱歉。然而...

    注意项目的细节。如果您的客户来自俄罗斯,请切断所有外国 ip。攻击者很可能正在通过外部代理访问您。

    我建议将攻击者感兴趣的主窗体放在主窗体上,但对客户端不感兴趣。例如,经销商/批发商/合作伙伴的入口。最有可能的是,攻击者会尝试通过暴露他的 ip 来攻击新的形式。

    评估内部威胁的可能性。难不成这就是组织的员工之一?

    试试公共安全扫描仪,比如https://observatory.mozilla.org/ 当然,这些服务是相当偏执的,并不是所有的东西都需要在生产项目上实现。但也许你可以填补一些漏洞。

    我认为最好通知管理层。也许这将有助于为付费安全审计找到资金。

    • 11

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5