作为我的安全课程的一部分,我们必须在Ubuntu版本不太安全的版本中利用许多漏洞。我解决了所有挑战,但是我遇到了一个问题,希望有人能阐明一些问题。

每个挑战都是一个二进制的二进制文件,当接管时将为攻击者带来下一个级别的特权。为了将其添加到该级别的组中,将运行命令L33T基本上运行 adduser <user> <group>.

在我的一个利用中,我的ShellCode只是致电了Exec L33T,我收到了此消息:printf中的不安全依赖性在运行setGid at/usr/share/perl5/perl5/debian/addusercommon.pm line 64。

为了解决这个问题,我创建了一个两行Bourne Shell,可以正常工作:

#!/bin/sh
l33t

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

有帮助吗?

解决方案

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

无论如何,第64行 AdduserCommon.pm 是一个 sprintf 在里面 dief 功能……所以我怀疑发生了什么事,当你打电话时 l33t 直接, adduser 脚本遇到某种错误,然后在 adduser 试图报告该错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top