74cms -v3.0 存储型xss 分析与复现
漏洞存在版本为v3.0
进入管理员后台admin_link.php,url为[Powered by 74CMS](http://localhost/74cms/upload/admin/admin_link.php)
点击添加就可以添加友情链接,表单如下
查看admin_link.php的源码
包含了一些头文件,通过smarty模板调用了友情链接的模板admin_link.htm
判断接收的参数act,如果是list,就通过查询数据库取出友情链接的信息,并使用smarty显示出来
act
为del_link
就是删除
act
为add
,使用smarty调用admin_link_add.html
其中admin_link_add.html
在admin/templates/link目录下
跟进查看后,根据html代码,可以判断出这个模板显示的页面是
参数为addsave
猜测应该是对表单处理的数据做了处理,最后调用inserttable
方法构造sql语句将信息存入数据库,再通过前面的方法取出数据库中的友情链接信息
在admin_link_add.htm
中,可以输入logo地址
该logo地址在admin_link.htm
的输出位置如下
在img标签中,通过占位符填充logo的链接,就有存在xss的风险
接下来就是找安全检查
将表单插入到数据库中使用了inserttable
自定义函数,跟进查看
没有对输入做出过滤
输出位置也没有做出过滤
直接在链接logo输入
1 onerror=alert(1)
返回友情链接显示页,将鼠标指针停留在logo,就出现了弹窗