看wooyun上看到了有人提了BiWEB的一个XSS漏洞: WooYun: BIWEB商城版XSS盲打cookie ,我来找找其他的漏洞吧。去官网下BiWEB商城版最新的5.8.4来看看。
在用户操作订单的时候有个SQL注入漏洞,error-based blind 失败,bool-based blind成功,下面是分析产生过程及注入证明。
BiWEB首先对GET和POST进行了过滤,/config/filtrate.inc.php
这里就先不说这种过滤的脑残之处了。
继续往下看,处理用户订单的文件/deal/adminu/my_deal.php(测试时记得要先注册一个用户并登录)。
这是操作订单的代码,就是取消订单,可以看到,需要POST一个数组,但是POST的数据是数字型的,也就可以绕过全局过滤了。再看看后面有没有对这里POST的值进行过滤,上面代码执行了$arrInfo = $objWebInit->getDeal($strId);,去看看getDeal()。
到这里问题就来了,直接执行SQL了。登录,抓包,修改,增加payload。
Payload:
因为是bool-based blind,所以当猜测正确时,是这样的
SQL执行情况
如果猜测不对
手工只是为了证明存在漏洞,利用时,可以写脚本,可以用工具,否则手工会累死人。