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