34

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

 4 years ago
source link: https://www.tuicool.com/articles/BFJBbiv
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我在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文件,这里把注册用户的函数写出这个样子(代码敲的是真漂亮。反正我是敲不出这么漂亮的代码)。

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

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

漏洞复现

1. (打个哈欠灭了烟继续写文章) 好了,现在我们进入本地搭建好的环境的主页的注册页面。 jI7bMrj.jpg!web

2. 填入注册信息,其中用户名为我们的xss攻击测试代码 </tExtArEa>'"><sCRiPt>alert(“xss”)</sCrIpT> bEriqij.jpg!web

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

Nfuuamv.jpg!web 4.  好了,现在进入我们的后台。

qE7V7fY.jpg!web 5.  登陆后台,我们来选择一下我们可爱的用户列表选项。

zE7f2yJ.jpg!web 6. 储存XSS管理员权限复现(又一次淫笑~~~)。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK