代码审计-74CMS-XSS-添加简历

0x00 前言

如饥似渴的学习ing。
主要是学习了代码审计想找一些cms进行练手但是相对来说,难度还是很大的。
所以我们这里主要是对乌云上出现的一些漏洞进行复现,对漏洞进行一个总结,然后看能不能学到一些东西。

版本

74cms 3.4

其他

我在74cms 3.1 版本上测试,是不存在这个漏洞的,我不知道是不是过滤规则被修改了还是怎么了。为什么版本越后,反而越不行了。所以之后会写一篇博客进行对比。

0x01 start

1.黑盒测试

首先肯定是要搭建好环境的。
然后注册好一个账号。
代码审计-74CMS-XSS-添加简历
创建一个简历。
然后在简历名称这里输入我们的payload。
代码审计-74CMS-XSS-添加简历

1<img src=1 onerror=alert(/du/)>

然后管理员登录后台。
代码审计-74CMS-XSS-添加简历
然后点击这里
代码审计-74CMS-XSS-添加简历

点击修改
代码审计-74CMS-XSS-添加简历
然后就可以看到xss成功。
代码审计-74CMS-XSS-添加简历

0x01 白盒测试

首先来看看user\personal\personal_resume.php这个文件。
132行代码
代码审计-74CMS-XSS-添加简历

168行这里
代码审计-74CMS-XSS-添加简历
现在数据就已经在数据库里了。

之后来看管理后台。
/admin/admin_index.php
没有找到相关内容。
通过关键字搜索找到admin_personal.php 然后锁定这里。

代码审计-74CMS-XSS-添加简历
来看看关键函数:
get_member_one()
代码审计-74CMS-XSS-添加简历
这个函数就是用来获取UID的
然后是这个函数:get_resume_uid
代码审计-74CMS-XSS-添加简历
这里已经显示备注了,从UID获取所有简历。

$result = $db->query("select * FROM ".table('resume')." where uid='{$uid}'   UNION ALL select * FROM ".table('resume_tmp')." where uid='{$uid}' ");

这里发现,对任何字段都没有进行过滤。所以,其实每一个字段都可以进行xss。

然后我们来测试一下其他的字段。

代码审计-74CMS-XSS-添加简历

成功触发。

代码审计-74CMS-XSS-添加简历