前言
某JA
模块注入漏洞分析
漏洞分析
1.POC
先注册一个账号,然后在用户的地址管理处,添加新的地址信息,并且payload为{$=phpinfo()}
接着访问../wdja/passport/address/manage.php
2.漏洞分析
这是一个模块注入,导致的代码执行漏洞,从payload来看这里没有做出过滤等操作。
首先看到index.php
,并且结合写入地址信息时,访问的url
中的action=add
,在index.php
中调用了wdja_cms_module_action()
跟进看一下,这里可看到action=add
的时候,将会调用wdja_cms_module_adddisp()
跟进wdja_cms_module_adddisp()
看一下,可见这是在往数据库中添加数据
我们在sql语句
后debug一下,看看这个语句操作的是哪个数据表。
然后回显是如下数据表。也就是说用户的地址信息等将会被存入这个表中。
然后我们看向manage.php
,然后我们跟进,$mybody
是我们回显phpinfo()
的位置
跟进wdja_cms_admin_manage()
然后跟进wdja_cms_admin_manage_list()
,这里也用die()
来看一下执行的sql语句
是什么。
同一个数据表。
继续看到最下面,跟进ii_creplace()
ii_creplace()
中对传入参数的要求就只有要满足{\$=(.[^\}]*)}
跟进ii_eval()
,发现漏洞触发点。