training-5

dawn_r1sing Lv3

week3-4(2)

XSS

利用XSS漏洞想要接收到信息需要测试平台

文件上传(检测):

一开始想从网上找一个,但是找了六七个要么打不开要么¥

就想着自己搭一个,周末一直在摸索这个(搞这么久的失误点应该是在数据库名和文件夹名混乱+杀千刀的花生壳笑脸

最终在周日晚上两个平台相继测试成功(我是废物XSS Plateform一直没成转头蓝莲花又掉回头继续搞的同时有必要记录一下做的第一笔投资:8r


(以下均为个人理解,如若有误,烦请指出)

反射型

反射体现在用户输入后网站会有相应的回显,比如能直接看到get取参的url,攻击者将别有用心的代码注入到这个参数中构造危险url,之后发给用户,用户点击,浏览器发送这个带有危险的请求给服务器,服务器又没有安全过滤行为直接将请求解析,导致危险代码执行。故用户点击链接后就会执行危险代码,将敏感数据发送到攻击者自己的服务器中,实现攻击。

在这道题里的体现就是在有XSS漏洞(可以用弹窗检验)的地方注入JS代码,功能是 让用户访问我的xss检测平台的JS代码,这段代码功能是返回用户敏感信息。形成的这段含恶意内容的url给机器人(受害者)访问,机器人的敏感信息(此题特指cookie)就会被我提取。

存储型

原理与反射型一致,不同之处在于攻击者在第一次注入上传之后恶意代码就被保存在服务器中了(依旧是服务器没有进行安全过滤直接保存),之后每一位访问这个网页的用户在向服务器发送请求时都会执行一遍恶意代码,敏感信息都会被攻击者获取。

典型情景像一些评论区、讨论区之类的。


过滤空格、过滤关键字

1
2
空格:/**/
关键字:大小写、双写

DOM反射

与前两种不同的是,DOM(一种标准API)反射利用的是前端JS代码的漏洞,前面两种是利用后端漏洞

源代码:

1
2
3
4
5
6
7
8
9
10
<hr>
<div>
<h1>Hello, CTFHub
</h1>
<p id="text"></p>
<script>
$("#text")[0].innerHTML = 'CTFHub is very niubility';
</script>
</div>
<hr>

进行注入(闭合标签,弹窗检验)

image-20231106093522236

注入成功!

把内容添上平台信息,生成url发给机器人

image-20231106091745671

获得flag


DOM跳转

源代码:

1
2
3
4
5
6
<script>
var target = location.search.split("=")
if (target[0].slice(1) == "jumpto") {
location.href = target[1];
}
</script>

location.search:取url的?的后面的内容

split(“=”):以“=”为界将字符串分开

target[0].slice(1):target数组的第0个元素的第一个字符开始

location.href:在当前页面跳转新页面

按照上面的要求构造url:

1
/?jumpto=xxxxxx

后面那些自然是我们要注入的JS代码

(查“地址栏运行JS”的时候发现一个好玩的,当元素指定contenteditable属性后,元素的内容会成为可编辑状态)

capture_20231106165452569

getScript() 方法:通过 HTTP GET 请求载入并执行 JavaScript 文件(文件带双引号)

构造的url:

image-20231106174742159

传给机器人,成功

image-20231106175538123

  • Title: training-5
  • Author: dawn_r1sing
  • Created at : 2023-11-16 22:31:26
  • Updated at : 2023-11-16 22:52:53
  • Link: https://dawnrisingdong.github.io/2023/11/16/training-5/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
training-5