SQL注入漏洞分析2
数据库连接软件连接,导入根目录下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