看到wooyun上有人提了几个iweshop(2014-11-18更新)的漏洞( WooYun: iWebShop开源电子商务系统SQL注入漏洞 ),去官网看了看,在2014-12-16 已更新到了 iwebshop2.9.14121000,下下来研究研究,希望不要重复。
注入一枚:POST /index.php?controller=seller&action=order_delivery_doc POST参数中的sendgoods过滤不完全,注入成功,文件在/controllers/seller.php的order_delivery_doc()方法中
看看代码/controllers/seller.php
$sendgoods 是这样获得的$sendgoods = IFilter::act(IReq::get('sendgoods'));
,去看看IFilter::act
/lib/core/util/filter_class.php
因为在获取$sendgoods时,act()没有指定第二个类型参数,所以,把$sendgoods 当作string过滤,这里是数字型的,不用闭合单引号。
再去看看Order_Class::sendDeliveryGoods
其中的$order_goods_relation即为$sendgoods,全程没有再过滤,造成了注入
测试方法:测试方法:申请开店后,发布一个商品并且上架后->另一个账号购买(选择货到付款)->发货
Payload:POST提交
因为是time-based blind 注入,猜测管理员用户名的第一个字母时,若错误,延迟2s左右,如下图
若正确,延迟3s左右,如下图
按上面的方法依次做下去(burp intruder或者自己写个脚本跑),可测试管理员用户名为:admin,密码为: f6fdffe48c908deb0f4c3bd36c032e72