代码审计-74CMS-XSS-添加简历
0x00 前言
如饥似渴的学习ing。
主要是学习了代码审计想找一些cms进行练手但是相对来说,难度还是很大的。
所以我们这里主要是对乌云上出现的一些漏洞进行复现,对漏洞进行一个总结,然后看能不能学到一些东西。
版本
74cms 3.4
其他
我在74cms 3.1 版本上测试,是不存在这个漏洞的,我不知道是不是过滤规则被修改了还是怎么了。为什么版本越后,反而越不行了。所以之后会写一篇博客进行对比。
0x01 start
1.黑盒测试
首先肯定是要搭建好环境的。
然后注册好一个账号。
创建一个简历。
然后在简历名称这里输入我们的payload。
1<img src=1 onerror=alert(/du/)>
然后管理员登录后台。
然后点击这里
点击修改
然后就可以看到xss成功。
0x01 白盒测试
首先来看看user\personal\personal_resume.php这个文件。
132行代码
168行这里
现在数据就已经在数据库里了。
之后来看管理后台。
/admin/admin_index.php
没有找到相关内容。
通过关键字搜索找到admin_personal.php 然后锁定这里。
来看看关键函数:
get_member_one()
这个函数就是用来获取UID的
然后是这个函数:get_resume_uid
这里已经显示备注了,从UID获取所有简历。
$result = $db->query("select * FROM ".table('resume')." where uid='{$uid}' UNION ALL select * FROM ".table('resume_tmp')." where uid='{$uid}' ");
这里发现,对任何字段都没有进行过滤。所以,其实每一个字段都可以进行xss。
然后我们来测试一下其他的字段。
成功触发。