
数据库连接软件连接,导入根目录下cati.sql文件

访问到就ok

漏洞复现

漏洞分析
根据漏洞简介,最终在pollers.php文件第427行发现可疑点,很明显的sql拼接

寻找一下poller_host_duplicate方法的调用处,在该文件中只有一处位于form_save方法的321行调用到

继续寻找发现在action参数为save时,form_save方法会被调用到

现在的调用链就很清楚了
action=“save”–>from_save()–>poller_host_duplicate()–>sql注入
可以看到 h o s t 变量的值由 f o r m s a v e 方法 host变量的值由 form_save方法 host变量的值由formsave方法save[‘dbhost’]传递,通过form_input_validate(get_nfilter_request_var(‘dbhost’), ‘dbhost’, ‘’, true, 3)来获取


在get_nfilter_request_var方法用来获取请求中dbhost变量的值

在form_input_validate方法中也没有对sql注入的防范,以至于$save[‘dbhost’]就是用户输入的值

总结
关键的两个参数dbhost和action,dbhost参数是注入点,action的值需要为save