【问题标题】:Insecure dependency in printf while running setgid运行 setgid 时 printf 中的不安全依赖项
【发布时间】:2014-08-18 04:31:00
【问题描述】:

作为我的安全课程的一部分,我们不得不利用一些安全性较低的 ubuntu 版本中的漏洞。我解决了所有的挑战,但是我遇到了一个问题,我希望有人能解释一下。

每个挑战都是一个 setgid 二进制文件,当它被接管时,攻击者将获得更高级别的权限。为了被添加到该级别的组中,需要运行命令 l33t,该命令实际上是运行 adduser <user> <group>

在我的一个漏洞利用中,我的 shellcode 只是调用了 exec l33t,我收到了这条消息: 运行 setgid 时 printf 中的不安全依赖项 /usr/share/perl5/Debian/AdduserCommon.pm 第 64 行。

为了解决这个问题,我创建了一个运行良好的两行 bourne shell:

#!/bin/sh
l33t

谁能解释为什么我看到了不安全的依赖问题?

【问题讨论】:

标签: security exploit


【解决方案1】:

如果您还不知道taint mode:它会导致所有用户输入被标记为“污染”,并且将拒绝输出任何“污染”值(这意味着您必须明确地“不污染”不受信任输入)。

无论如何,AdduserCommon.pm 的第 64 行是dief 函数中的sprintf...所以我怀疑发生的情况是,当您直接调用l33t 时,adduser 脚本会遇到某种错误,则当adduser 尝试报告该错误时会引发污染错误。

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 2017-03-16
    • 1970-01-01
    • 2013-05-23
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多