首先是得到了支付系统的源码,第一步使用扫描工具进行扫描,没有发现简单的漏洞,决定从网上寻找源码,对比原始文件的方式,查看出题者具体改了哪些代码。
PS:总不可能让我们挖0day吧。
下载链接,0币下载(工具除外)
使用 Beyound Compare 进行文件对比(52上有pj),很快发现了几处修改
第1处
// /includes/cron/cron.php
# 新增
function filter_($str) {
return str_replace("cxyu", "ccxyu", $str);
}
...
# 新增
$data['userdata'] = $_POST['userdata'];
...
# 利用点
$serial_str = filter_(serialize($data));
第2处
// /admin/index.php
# 新增
include("../submit/wxpay/wxpay_notify.php");
...
# 利用点
$data=unserialize(file_get_contents(SYSTEM_ROOT.'db.txt'));
第3处
// /submit/wxpay/wxpay_notify.php
class PayNotifyCallBack extends WxPayNotify
{
...
public function NotifyProcess($data, &$msg)
{
//file_put_contents('log.txt',"call back:" . json_encode($data));
$notfiyOutput = array(