freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

对于TPCMF框架的一次代码审计
2019-06-07 08:00:03

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

我在FreeBuf上每天都可以学到很多新思路新技术,感谢这个平台,为了回馈FreeBuf的小伙伴们,写下这篇文章,希望在可以为奋斗在网络安全路上的小伙伴们提供一些新奇小思路,其实挖洞并不难,也希望大家能把分享的精神发扬光大。

概述

天睿PHP内容管理框架(简称TPCMF)基于PHPCMF框架采用PHP7技术+CodeIgniter4作为系统核心部件,由系统框架+应用插件快速组建Web应用。

相关环境

源码信息:TPCMF框架-安装包-201905171230.zip

漏洞类型:储存型XSS

下载地址:http://www.tpcmf.com/down/

漏洞文件:/dayrui/Fcms/Library/Form.php

漏洞分析

1.首先我们来看看这次漏洞的配角 /dayrui/Core/Controllers/Member/Register.php文件,这里把注册用户的函数写出这个样子(代码敲的是真漂亮。反正我是敲不出这么漂亮的代码)。

对于TPCMF框架的一次代码审计2.这里呢,我们发现第75行对用户名的检查的时候调用了check_username()这个函数(打了个哈欠点了跟烟),嗯,好的,我们来跟进一下check_username()这个函数看看这个函数都干了什么,这个函数的位置在 /dayrui/Fcms/Library/Form.php, 这个文件是我们这次漏洞的的主角。

对于TPCMF框架的一次代码审计3.跟进函数之后我们发现check_username()似乎并没有对$value的值进行检查(淫笑中~~),那么这次我们的漏洞成因就十分明确了,由于check_username函数只对用户名是否注册过进行了检查,并没有对其中的内容进行检查,所以我们可以通过注册账户,在账户名中插入xss的payload对其进行攻击,对于没有开启httponly的站直接钓走cookie。(对于开启httponly的站我们怎么办呢,我会在下一篇文章中讲述一下如何对开启httponly的站点进行钓鱼攻击)。

漏洞复现

1. (打个哈欠灭了烟继续写文章) 好了,现在我们进入本地搭建好的环境的主页的注册页面。对于TPCMF框架的一次代码审计

2. 填入注册信息,其中用户名为我们的xss攻击测试代码 </tExtArEa>'"><sCRiPt>alert(“xss”)</sCrIpT>对于TPCMF框架的一次代码审计

3. 单机确认,储存XSS用户权限漏洞复现(再一次淫笑~~~)。

对于TPCMF框架的一次代码审计4.  好了,现在进入我们的后台。

对于TPCMF框架的一次代码审计5.  登陆后台,我们来选择一下我们可爱的用户列表选项。

对于TPCMF框架的一次代码审计6. 储存XSS管理员权限复现(又一次淫笑~~~)。

对于TPCMF框架的一次代码审计

结语

很多刚刚入坑的萌新们认为代码审计似乎很难,想挖到漏洞似乎只有大佬们才能实现,但是其实我想说挖到属于自己的漏洞其实并不难,需要的是你能够平静下急功近利的心,耐得住漏洞挖掘中的乏味,不断去磨练自己的意志,增长自己的经验,相信自己,你是醉棒的,你也可以成为别人眼中的大佬!

*本文作者:chenchuan,转载请注明来自FreeBuf.COM

# 代码审计 # TPCMF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者