题
作为我的安全课程的一部分,我们必须在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
试图报告该错误。
不隶属于 StackOverflow