Thinkphp5.0 最新SQL注入漏洞利用详情

2018-10-1109:48:29WEB安全防护Comments5,155 views字数 824阅读模式

ThinkPHP 5.0是目前最新的版本,历经多年的升级完善,深受网站设计公司的喜欢,在互联网上也是一个开源的,免费、多个功能插件、API接口功能强悍的PHP 语言开发的一款程序,ThinkPHP从设计以来一直秉承简洁实用的设计原则,在保证出色的性能和至简的代码的同时,也很注重实用性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

SINE安全公司在对其最新版本的程序进行网站安全审计的时候,发现该程序存在数据库密码信息泄露漏洞,在PDO PHP查询中可以阻止大多数的恶意参数攻击,而且ThinkPHP 5.0框架要求的是在php 5.4版本上运行,这也就防止了php在5.3.6版本下的SQL查询注入的漏洞。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

在对其代码进行安全审计,其实这是一个SQL注入点,可以查询到一些数据库的账号以及密码等安全信息。Thinkphp5.0里代码设计里调用到了函数input来替代3.2.3版本里的I函数,利用该函数,控制了in语句的数值位置,即可通过传入一个数组并带入恶意的参数,来构造SQL注入语句,进行获取数据库的账号密码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

在$bindName参数里我们对网站进行了详细的网站安全检测,将$k数值写进到了$bindName里,并在$value数值确实为一个数组的同时,这里边会遍历全部的$value的数值,也就是说我们控制了预编译SQL语句中的键名,也是可以控制了预编译的SQL语句,这个在理论上来说是一个SQL注入漏洞。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

这漏洞过程当中涉及到预编译的执行过程了。通常PDO PHP预编译执行过程分三步:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

一、prepare($SQL) 编译SQL语句文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

二、bindValue($param, $value) 将value绑定到param的位置上文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

三、execute() SQL语句执行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

这个漏洞实际上就是控制了第二步的$param变量,这个变量如果是一个SQL语句的话那么在第二步的时候是会抛出错误的:Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/6536.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/anquan/6536.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定