深信服edr 2020HW行动0day 漏洞细节
漏洞1
一下4个漏洞触发都在其他文件,这里只进行漏洞点的分析。
漏洞点tool\log\c.php
启动c.php大约140行-148行
这里执行了两个方法 show_form 与main
这里追踪show_form
内容如下图:
这里的extract存在变量覆盖。也就是说, 这里的你可以控制任何参数,用输入参数进行替代即可。这里的strip_slashes方法简单提一句,改方法做了一下普通的过滤
最后再改文件第8行左右可以看见改函数如何执行
该函数包含再call_user_func中,作为回调函数的值进入call_user_func 被执行。
可以说, 这是一个非常好的bypass webshell
漏洞2
tool\php_cli.php
一样的实现方法, 内容作为call_user_func的参数的回调值进入call_user_func中去。
漏洞3
tool\ldb_cli.php
一样的内容, 同样是引用了$show_form的问题
漏洞4
tool\mdd_sql.php
这里的图都懒得贴了。
神他妈 懂的都懂
漏洞5 任意文件读取
store\cat.php
文件大概400行左右
是由start()进行启动的,
filename 变成变量$fname 并没有过滤直接到了read_file($file_list)
而file_list与fname有关。参与运算的方法是parse_path
至此形成任意文件读取。