在计算机安全中,我们知道软件中的弱点称为漏洞(如果与安全相关)。一旦发现漏洞,理论上它需要一段代码作为概念证明(这称为漏洞利用)。在这种情况下,还提到了术语有效载荷。
那么,“payload”和“exploit”有什么区别呢?
在计算机安全中,我们知道软件中的弱点称为漏洞(如果与安全相关)。一旦发现漏洞,理论上它需要一段代码作为概念证明(这称为漏洞利用)。在这种情况下,还提到了术语有效载荷。
那么,“payload”和“exploit”有什么区别呢?
漏洞利用是传递有效载荷的原因。以导弹为例。你有火箭和燃料以及火箭中的所有其他东西,然后你有造成实际伤害的弹头。没有弹头,导弹击中时不会做太多事情。此外,如果弹头在没有火箭发射的情况下在您的掩体中爆炸,它就没有多大用处。
发射系统(导弹)是漏洞利用,有效载荷(弹头)是实际执行某些操作的代码。
漏洞利用使您能够“弹出外壳/运行有效负载代码”。
示例有效负载是木马/RAT、键盘记录器、反向 shell 等。
只有在可以执行代码时才引用有效负载,而不是在使用诸如拒绝服务漏洞之类的东西时。
您已经知道什么是漏洞。
漏洞利用是为利用特定漏洞而编写的一段代码。有效负载是通过所述漏洞执行的一段代码。
看看 Metasploit 框架。它只是漏洞利用和有效负载的集合。每个漏洞利用都可以附加各种有效负载,例如反向或绑定 shell、meterpreter shell 等。
Metasploit 框架的美妙之处在于它是模块化的。您可以混合和匹配不同的有效负载和漏洞利用来实现所需的结果。
我准备了一个更易于阅读的图表版本(我相信)。它遵循与@D3C4FF 的出色答案相同的基本原则。我很想先用他的比喻,但由于最近发生的事件和当前的全球政治气候,我认为这不合适。
目标(黑冠黑猕猴的自画像)很可爱,而香蕉正是我认为适合该场合的类比。两者都不是令人反感的。
显然,单个漏洞利用可以将多个有效负载传递给单个或多个目标。在后一种情况下,一箱香蕉与一只猿,或一箱香蕉在动物园中用于多个目标,可用于描述参与开发过程的各个实体(在这种情况下,板条箱将成为漏洞,而香蕉在它有效载荷)。;)
单独的实体用颜色编码;)
虽然这个示例图可能看起来有点奇怪,但我实际上相信它不仅是有争议的(正如当前对这篇文章的投票所示)。香蕉,在其他明显的用途中,实际上已经被建议作为药物的传递机制,而普通的疫苗接种不会那么有效。
香蕉皮也完美地表示了一个漏洞利用,因为它后来就像漏洞利用一样被丢弃,而有效载荷被目标通过漏洞(或者在我们的例子中,可爱的猕猴的嘴)消耗和消化。