对我来说还是有点难了,web方向的phpstudy那道题,不知道为什么,xss就是打不进去,第二道python反序列化还没有理解,所以就先发一道misc
MISC
sudo
记CVE-2023-22809
一、漏洞范围
sudo 1.8.0到1.9.12p1版本受影响
二、漏洞概述
sudo使用用户提供的环境变量让用户选择他们所选择的编辑器。的内容其中一个变量扩展了传递给sudo_edit()函数的实际命令。
然而,后者依赖于--参数的存在来确定要编辑的文件列表。注入在一个已授权的环境变量中使用额外的--参数可以更改此列表并导致特权通过编辑具有RunAs用户权限的任何其他文件来升级。这个问题发生在sudoers之后。
三、漏洞成因
由于Sudo中的sudoedit对处理用户提供的环境变量(如SUDO_EDITOR、VISUAL和EDITOR)中传递的额外参数存在缺陷。当用户指定的编辑器包含绕过sudoers策略的 -- 参数时,拥有sudoedit访问权限的本地攻击者可通过将任意条目附加到要处理的文件列表中,最终在目标系统上实现权限提升。除外,该漏洞还影响部分QNAP操作系统:QTS、QuTS hero、QuTScloud、QVP(QVR Pro设备)。
猜测:我们可以利用SUDO_EDITOR、VISUAL、EDITOR传递参数进行提权攻击
四、漏洞分析
sudoers策略插件首先调用sudoers_policy_main()来处理的查找和验证使用sudoers_lookup()的策略。不过,在此功能结束后,策略成功验证时,使用名为find_editor()的编辑器查找方法重写命令。
// plugins/sudoers/sudoers.c@sudoers_policy_main()
int
sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[],
bool verbose, void *closure)
{
// [...]
validated = sudoers_lookup(snl, sudo_user.pw, &cmnd_status, pwflag);
// [...]
if (ISSET(sudo_mode, MODE_EDIT)) {
// [...]
safe_cmnd = find_editor(NewArgc - 1, NewArgv + 1, &edit_argc, &edit_argv, NULL,
&env_editor, false);
代码解释:
该代码片段是在
sudoers/sudoers.c文件中的sudoers_policy_main函数的一部分。与sudo程序中sudoers策略的实现相关,该策略负责确定是否允许用户以管理员权限执行给定的命令。在这个特定的代码片段中,
sudoers_policy_main函数被传入了几个参数:argc和argv,表示传递给sudo的命令行参数,pwflag是一个表示与密码相关的行为的标志,env_add是一个要设置的额外环境变量数组,verbose是一个表示是否启用详细输出的标志,closure是一个指向其他数据的通用指针。在函数内部,调用了
sudoers_lookup函数,传递了snl(可能是某种数据结构)和sudo_user.pw(表示sudo用户的密码)作为参数,并将结果保存在validated变量中。然后,根据sudo_mode中的MODE_EDIT标志,执行了一些与编辑器相关的操作,其中find_editor函数用于查找适当的编辑器并返回相关参数。
该函数首先使用用户提供的三个环境变量执行编辑器查找文档,SUDO_EDITOR, VISUAL和EDITOR。
// plugins/sudoers/editor.c@find_editor()
char *
find_editor(int nfiles, char **files, int *argc_out, char ***argv_out,
char * const *allowlist, const char **env_editor, bool env_error)
{
// [...]
*env_editor = NULL;
ev[0] = "SUDO_EDITOR";
ev[1] = "VISUAL";
ev[2] = "EDITOR";
for (i = 0; i < nitems(ev); i++) {
char *editor = getenv(ev[i]);
if (editor != NULL && *editor != '\0') {
*env_editor = editor;
editor_path =

文章详细分析了sudo编辑器在处理用户环境变量时存在的漏洞,特别是SUDO_EDITOR、VISUAL和EDITOR如何被利用进行权限提升。通过环境变量注入额外参数,攻击者可以改变编辑文件列表,影响sudoers策略,实现权限升级。文中提供了一个利用示例,展示了如何通过修改环境变量和sudoedit命令来修改系统敏感文件,如/etc/passwd,从而改变用户权限。
最低0.47元/天 解锁文章
9520

被折叠的 条评论
为什么被折叠?



