xss跳转代码_从某cms的xss漏洞来学习代码审计

327e7e6c5bfca745f9d9e794ca01e40c.png

原创: xiaoyuer 合天智汇

各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻。如有写的不对的地方请轻拍。
cms选择了efucms:https://github.com/phplaber/efucms
按照readme中给出的安装方式进行安装;
安装完成后的界面如图所示:

8637b50e01a89255e039301197292d83.png


随便点开一个文章:
发现文章最下方有发表评论的内容,那么首先想到的是xss漏洞。

2144e4f032dc8693c9e192c1525d1c41.png

存储型XSS漏洞验证过程:
在评论的称呼中写入
test</textarea><script>alert(1)</script>

2db220a3234d946d2921badb8534357f.png


提交发表,发现已经弹窗执行了脚本(在此之前并没有注入xss脚本);

1b28083d137865a508a1657c76a5ce1f.png


登录后台:

39d26ac61f6a07e45169fe807a3dd064.png


在后台管理界面,点击评论管理可以看到代码也已经执行:

ef646c66f8d2031e9f2b7a1f585711e7.png


所以,存在存储型xss漏洞;漏洞分析首先,未过滤就存进了数据库:
查看源代码:

9488cb1a27aee3a79348af17971cc807.png


POST到了article/comment中

54ad88554bf414f6f1c90ef08d7949a0.png


跳转定位到对应的位置:

a0295c3d31ede8ade7c1dcdaf53d4f92.png


发现引用了M函数;然后调用create方法,最后在87行写入了数据库;
首先分析M函数是否有过滤:
M函数定义位于:
ThinkPHPCommonThinkPHPCommon目录下functions.php

b29587bcf68e4600f1f8488c63d6886c.png


发现没有;
之后创建了一个comment的Model

a03083ef9e26b4f30333e89fcce356a7.png


也并未进行过滤;
最后通过add方法就存进了数据库;

387473b2d7a14b7f0e378c862d7e838c.png

在管理员界面显示处也未过滤:
在adminRunCache下生成的一个运行时文件(我这里是:e050f9b27a9bbae1b0a3c73a95217912.php)

0713507763c765f4ee335668be994b39.png


直接就进行了echo输出。
最终导致了xss的发生。
下一次将挖掘SQL注入漏洞,并进行代码审计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值