2

嗨,我的任务是尝试破坏我公司使用的专有 Web 服务器程序,我真的没有太多运气。它是用c构建的。

它以 root 身份运行,我试图让它执行命令。网络服务器获取 URL 中发布的命令并使用前缀执行这些命令。现在我可以传递任何命令,例如 '&_cmd=gettimeout' 或 '&_cmd=rm'。该程序将实际运行“prefix rm”

前缀程序将尝试在一组目录中运行该命令,其中没有有用的 unix 命令,因此只会报告找不到命令。也不能在 URL 中传递空格,例如 '&_cmd=rm%20-f',因为 php 脚本会将空格转换为 +。无论如何格式化 &_cmd 字符串以运行真正的 unix 命令?

有点奇怪的任务,但我是一名正在上安全课程的安置学生,我的工作正试图为我找到一些关于我的课程的工作。

谢谢你的帮助

4

1 回答 1

1

有些想法可能有效,但可能无效:

  1. 反引号。运气好的话,他们会在prefix运行前进行评估。如果没有运气,他们可能仍会以某种方式为您服务。
  2. 如果空格不起作用,为什么不尝试其他类型的空格?有标签,还有更多。
  3. 您需要找到确切可以使用的命令,并确定它们是否有帮助。
  4. 您可能会在允许的命令之一中发现缓冲区溢出。通常,这样的超支不是安全风险(如果你接管了vi,你就不能做任何你不能做的事情)。但在这种情况下,您也许可以利用它们。
  5. 如果可以的话,您可能会在 中找到可执行文件/proc/- 它包含指向每个进程命令的链接。
于 2012-01-18T11:14:06.813 回答