网站漏洞检测 wordpress sql注入漏洞代码审计与修复



       wordpress系统本身代码,很少出现sql注入漏洞,反倒是第三方的插件出现太多太多的漏

洞,我们SINE安全发现,仅仅2019年9月份就出现8个插件漏洞,因为第三方
开发的插件,技术都

参差不齐,对安全方面也不是太懂导致写代码过程中没有对
sql注入,以及xss跨站进行前端安全过

滤,才导致发生sql注入漏洞。

 
目前发现的wordpress漏洞插件,AdRotate广告插件,NextGEN Gallery图片管理插件,Give赞

赏插件,这些插件使用的网站数量较多,因为开源,免费,功能强大,
使用简单,深受众多站长

们的喜欢,关于该网站漏洞的详情我们SINE安全来详细的
给大家分析一下:看下图的代码

 
在前端进行输入的时候,可以插入恶意的sql注入代码,如果后端没有对前端输入进来的参数值进

行安全过滤拦截,那么就会导致sql注入漏洞的发生,我们来看上
面的一段代码。该代码在写的时

候,会将get中的ID,传入后数据库中进行查询,没有做任何的安
全过滤导致sql注入,在wordpre

ss最新版中以及将get、post、cookies、提交的方
式进行了安全拦截,对一些非法的字符与sql注

入攻击语句加强过滤,但是还是被
绕过,导致sql注入的发生,就拿adrotate插件来说,在dashb

oard目录下的
publisher文件夹下的adverts-edit.php代码中第46行:


 
 
对前端来的get_ad变量只是做了简单的html字符转换操作,并没有实质性的对sql语句进行拦截,

导致可以执行SQL注入代码,获取管理员账户密码。截图如下:


 
give插件,也存在漏洞,漏洞产生的原因是includes目录下的donors文件夹里的class-give

-donors-query.php代码,在获取订单的函数中,没有对其order by字
符进行拦截,导致sql代

码可以到后端进行查询数据库,导致sql盲注。代码如下:
 

 
关于wordpress漏洞修复办法,建议插件的开发公司在对代码编写过程中,对用户的输入,以及提

交,get,post等请求进行全面的安全过滤与安全效验,及时的更新
wordpress的版本以及插件版本

升级,定期对网站代码进行安全检测,检查是否存
在网站木马后门,以及webshell文件,对插件

目录可以设置安全权限部署,防止恶
意篡改,对wordpress的后台登录做安全验证,仅仅使用账户

密码还不行,还要使
用另外一种方式进行验证,短信验证以及google身份验证器。
分享: