一文彻底说明白溯源反制以及对抗

感觉很多人都对溯源反制这个事情,感觉很神奇。

今天就讲一下我所知道的目前的溯源反制的手段,以及技术原理

1.ip层面

这个维度主要就是对攻击者的ip进行威胁情报查询,微步在线跑一遍,重点关注历史绑定域名、绑定域名的备案等等。或者可以扫一下攻击ip开发的端口等等,可能有一些脆弱服务什么的。

2.浏览器层面

也就是目前蜜罐主流的手段,

2.1 jsonp

浏览器层面主要发力点是在JSONP漏洞上,jsonp是早期浏览器对跨域支持不完善,开发人员想到的一种绕过机制。

大家都知道在HTML页面中,我a站直接ajax b站,如果没有做特别配置的话,浏览器肯定是会直接拦截的。

示例代码如下

图片

在开发者工具中看流量记录,test.php报了CORS错误。

图片

这个是肯定,具体的浏览器跨域策略,有兴趣可以百度了解,我这里不深入了。

早期的web开发者也遇到过这个问题,于是想到了一个很巧妙的办法来进行跨域。

大家看前面的示例代码,ajax是被拦截了。但是前面的script标签中的jquery.min.js文件可是被正常加载了。

script标签是可以正常跨域的,那么我如果想让a站从b站上获取数据,进行跨域的话,我只需要在b站构造一个特别的js文件即可完成数据交换,代码如下。

在b站写入如下t2.php文件

<?php
header('Content-type: application/json');
$uid = 123;
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);
echo $jsoncallback . "(" . $uid . ")";

然后a站代码如下

<script>
    function a(data){
        alert(data);
    }
</script>
<script src="http://127.0.0.1:8082/t2.php?jsoncallback=a"></script>

我们提前定义好函数a,然后引入前面写好的文件,成功获取到b站中存储的uid,完成跨域。

图片

在很多大型网站中,比如百度、腾讯网站中也会存在jsonp这种机制,用了和一些网站跨站,而且这些接口传递的数据中很可能就包含了一些个人信息,如昵称、QQ号啥的。

而蜜罐只需要找到这些特殊的接口,然后自己构造好a函数,就能接受到这些个人信息了。

比如我以前挖到过的某一个大站的jsonp漏洞,就包含了昵称信息,还有一些唯一标识码

图片

虽然jsonp可以直接跨域交换信息,但是也要依托于浏览器的登录状态,就像csrf漏洞。但是如果你在b站上压根都没登录的话,那么也是无法获取到个人信息的。而且新版的chrome内核在加载js的时候,已经是不会再传递cookie了。

图片

cookie中还是为空,可以一定程度上避免此类问题。

图片

但是如果是运营商层面的话,就有点难顶了。毕竟是直接流量层面的。这种要么有线挂代理要么匿名物联网卡。

2.2 云指纹

这个我也是在一篇文章中看过,大概过程是。将蜜罐部署在多家单位中,然后攻击者访问了a单位的a网站,又访问了和a单位完全没有任何关系的b单位的b网站。那么可以大概率确定是该访问对象为攻击者。

那么蜜罐是如何确定是同一个人访问了A、b两个网站的呢。a和b是两个独立的网站,依托cookie来进行确定肯定是不行的,因为cookie肯定是不共享的,单独引入一个第三方域来做统计的话,那下次别人只要看到这个第三方域就知道是蜜罐了,那肯定不行。

这就要用到浏览器指纹技术了,浏览器指纹顾名思义就是用来标识唯一浏览器的。具体效果就是,你用电脑上的chrome浏览器去访问任何一个网站,通过一段js代码都能运算出一个相同的标识符。该标识符不受cookie、无痕模式的影响。只受浏览器的影响,需要你换一个其他浏览器可能改标识符才会改变。

常见的浏览器指纹技术有Canvas指纹、AudioContext指纹、硬件指纹

什么是 Canvas 指纹?

从根本上来说,每一种浏览器都会使用不同图像处理引擎,不同的导出选项,不同的压缩等级,所以每一台电脑绘制出的图形都会有些许不同,这些图案可以被用来给用户设备分配特定编号指纹),也就是说可以用来识别不同用户。

那么,如何给我们的网站增加 Canvas指纹 呢?

我们可以通过html5canvas接口,在网页上绘制一个隐藏的画布图像。

值得注意的是,如果用户的设备操作系统浏览器都一样的话,计算出来的 canvas 指纹是一样的。换句话说:canvas 指纹不具备唯一性,要和其他的浏览器指纹相互结合利用来进一步计算出区分度更高的指纹标识。

以Canvas指纹举例,通过这个链接可以获取到自己浏览器的Canvas指纹

https://jsbin.com/qisodaz/edit?html,js,output

以我的chrome浏览器打开,结果如下。可以看到是不受无痕模式的影响的。

图片

那么如何对抗这种指纹检测技术呢?

我个人使用的Brave浏览器,也是内核也是用的chrom的内核。

图片

但是更加注重隐私,示例如下

图片

然后配合上,会放心一点

图片

Canvas指纹只是浏览器指纹技术的一种,不保证Brave浏览器能对抗所有指纹。

3.钓鱼

这个层面常见的套路有

1.mysql弱口令,故意给你扫出来一个mysql弱口令。然后你去连接的话,服务器端会尝试获取你的微信id、浏览器的sqlite文件等等。最好规避的方法就是在虚拟机中去链接,千万避免物理机直接链接。

2.搞一个vpn软件和账号密码放到网站目录下或者藏到一个比较容易获取到的地方。你一看这不是妥妥的内网的诱惑吗,赶紧安装。然后就中木马了,场面一度十分尴尬。

3.chrome 0day,如果你的价值毕竟高的话,不排除防守方会申请浏览器的0day来专门反制你,这种也很好解决。懂得都懂。

图片

Python面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作封装在对象中,通过对象之间的交互实现程序的设计和开发。下面是一些关键概念,帮助你更好地理解Python面向对象编程。 1. 类(Class):类是对象的蓝图或模板,描述了对象的属性和行为。它定义了对象的特征和方法。例如,我们可以定义一个名为"Car"的类来表示汽车,其中包含属性(如颜色、型号)和方法(如加速、刹车)。 2. 对象(Object):对象是类的实例,是具体的实体。通过实例化类,我们可以创建一个对象。例如,我们可以创建一个名为"my_car"的对象,它是基于"Car"类的实例。 3. 属性(Attribute):属性是对象的特征,用于描述对象的状态。每个对象都可以具有一组属性。例如,"Car"类的属性可以包括颜色、型号等。 4. 方法(Method):方法是对象的行为,用于定义对象的操作。每个对象都可以具有一组方法。例如,"Car"类的方法可以包括加速、刹车等。 5. 继承(Inheritance):继承是一种机制,允许我们创建一个新类(称为子类),从现有类(称为父类)继承属性和方法。子类可以扩展或修改父类的功能。继承可以实现代码重用和层次化设计。 6. 多态(Polymorphism):多态是一种特性,允许不同类的对象对同一方法做出不同的响应。多态提高了代码的灵活性和可扩展性。 7. 封装(Encapsulation):封装是一种将数据和操作封装在对象中的机制,隐藏了对象的内部实现细节,只暴露必要的接口给外部使用。这样可以保护数据的安全性,提供了更好的模块化和代码复用性。 通过理解这些概念,你可以更好地掌握Python面向对象编程。在实践中,你可以使用类来创建对象,操作对象的属性和调用对象的方法,通过继承和多态实现代码的灵活性和可扩展性,通过封装保护数据的安全性和提高代码的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值