## **一、插件介绍** 是一个支持文章、页面和评论投票顶踩的插件,你可以将顶踩放在文章、页面评论的任意位置,还可以放在网站首页上。如果你有一定代码修改能里的话,可以将本插件集成到主题里。 ## **二、漏洞概述** Like Dislike Counter 1.2.3及其他版本存在多个SQL注入漏洞,成功利用后可使攻击者执行未授权数据库操作。 ## **三、漏洞描述** Like Dislike Counter 插件SQL注入漏洞存在于**ajax_counter.php**文件中,主要原因是未对POST数据中的**post_id**进行有效过滤,致使非法数据被数据库正常解析执行。 ## **四、漏洞分析** 1、**ajax_counter.php**文件中,POST数据中的**post_id**未做任何过滤的情况下被带入到了 get_post_ul_meta() 函数中 ``` $post_id=$_POST['post_id']; $up_type=$_POST['up_type']; if($up_type=='c_like'||$up_type=='c_dislike') { $for_com='c_'; } else { $for_com=''; } if(!in_array($for_com.$post_id,$posts_present)) { update_post_ul_meta($post_id,$up_type); } echo get_post_ul_meta($post_id,$up_type); ``` 2、get_post_ul_meta()函数位于ldclite-function.php文件中,传入进get_post_ul_meta()函数中$post_id在未做任何处理的情况下与SQL语句拼接,且无单引号保护,由此产生了SQL注入 ``` function get_post_ul_meta($post_id,$up_type) { global $wpdb; $table_name = $wpdb->prefix."like_dislike_counters"; // 1.2.3的修复前语句 $sql="select ul_value from $table_name where post_id=$post_id...
## **一、插件介绍** 是一个支持文章、页面和评论投票顶踩的插件,你可以将顶踩放在文章、页面评论的任意位置,还可以放在网站首页上。如果你有一定代码修改能里的话,可以将本插件集成到主题里。 ## **二、漏洞概述** Like Dislike Counter 1.2.3及其他版本存在多个SQL注入漏洞,成功利用后可使攻击者执行未授权数据库操作。 ## **三、漏洞描述** Like Dislike Counter 插件SQL注入漏洞存在于**ajax_counter.php**文件中,主要原因是未对POST数据中的**post_id**进行有效过滤,致使非法数据被数据库正常解析执行。 ## **四、漏洞分析** 1、**ajax_counter.php**文件中,POST数据中的**post_id**未做任何过滤的情况下被带入到了 get_post_ul_meta() 函数中 ``` $post_id=$_POST['post_id']; $up_type=$_POST['up_type']; if($up_type=='c_like'||$up_type=='c_dislike') { $for_com='c_'; } else { $for_com=''; } if(!in_array($for_com.$post_id,$posts_present)) { update_post_ul_meta($post_id,$up_type); } echo get_post_ul_meta($post_id,$up_type); ``` 2、get_post_ul_meta()函数位于ldclite-function.php文件中,传入进get_post_ul_meta()函数中$post_id在未做任何处理的情况下与SQL语句拼接,且无单引号保护,由此产生了SQL注入 ``` function get_post_ul_meta($post_id,$up_type) { global $wpdb; $table_name = $wpdb->prefix."like_dislike_counters"; // 1.2.3的修复前语句 $sql="select ul_value from $table_name where post_id=$post_id and ul_key='$up_type' ;"; // 1.2.3的修复后语句 //$sql = $wpdb->prepare( "select ul_value from $table_name where post_id = %d and ul_key = %s",$post_id, $up_type ); $to_ret=$wpdb->get_var($sql); if(empty($to_ret)) { $to_ret=0; } return $to_ret; } ``` 3、现在想找到Like Dislike Counter 1.2.3 修复前的代码真的很难了,我翻了好久才找到  ## **四、漏洞利用** 1、此处为盲注,为了更好的做对比我使用了时间延时 未延时前:  延时后:  数据库监听:  2、使用Sqlmap即可出数据