前台提交订单处.
/interface/order.php
$ptitle,$tsn都可控,直接带入insert。
正常提交
来看看accept()
这里会把提交的数据转义,但是当$tsn不是数组的时候是这样的
$temp = "wooyun"
$temp[0]的值为w
playload构造:
$tsn参数提交一个' daddslashes(espcms重写的addslashes)将其转义成\'
取$tsn[0],为\
查看订单:
![QQ截图20150117183003.png](../upload/201501/171830126998f324f27517baa37e7f6a12b0e5fc.png)
sql语句相当于
官方DEMO测试:
由于官方demo有阿里的防火墙,我就分两次来获取
![2.png](../upload/201501/1718342633376853c7240bced1343b4e3be2343d.png)
![1.png](../upload/201501/171834423917dc1974d9296e5c4c5cb50c45b2b4.png)
![QQ截图20150117183550.png](../upload/201501/171836048e1eaf584c9f7fc27a0f38132b61a76d.png)
说说getshell,demo上upfile文件夹是没有写入权限的,datacache是没有运行php的权限,而且无法编辑模板,但文件后缀能在后台修改,上传文件的目录可控,所以能拿下shell.
![QQ截图20150117160314.png](../upload/201501/171844015f57c9f4979e470ae55b1ba2c59d01c9.png)
http://**.**.**.**/html/wooyun.php?cmd=phpinfo();
还有一个更加严重的问题,就是DEMO站和主站的隔离没做好。
至于主站我就没深入了
本次测试不涉及数据之类的,厂商可以查看服务器日志。
![QQ截图20150117160300.png](../upload/201501/171841546541fe049c021c4d3c62f390b75df85d.png)