域名反弹链接检测, 是指对存在多层跳转、重定向(301/302/307)或脚本跳转行为的域名链路进行安全审计。其核心目的是识别其中是否包含恶意重定向、钓鱼页面或不可信落地页。当用户访问某域名后被引导至与该域名无业务关联的站点时, 这便构成"反弹"。这种情况属于高风险安全事件。
HTTP重定向链追踪
具体的操作步骤如下, 我们先发送一个请求, 然后去跟踪Location响应头, 这样就记录了完整的跳转链路。
1. 你要使用curl这个工具来运行那段命令代码, 也就是在终端里敲入: curl -v -L"http://目标域名" -o /dev/null, 然后要一条条地去盯着看输出的结果, 主要是去看那些返回3xx这样的状态码到底是多少, 还有去看看它们最终会跳转到什么地方去。
2. 如果跳转的次数超过了3次, 或者跳转的目标和原始域名之间不存在归属上的关联关系域名反弹链接检测域名反弹链接检测杭州市上城区明德公益事业发展中心,这种情形比如说是从企业com的域名跳转到了个人短链平台那里, 系统就会触发高风险告警。
3. 对跳转链进行同步的检测操作, 看看在跳链里面有没有发生证书过期这样的异常, 或者是HTTPS被降级成了HTTP, 还有是不是出现了IP归属地频繁发生改变等情况。
JavaScript跳转分析
有一部分反弹链接它是不靠HTTP重定向的, 它是通过页面里的内嵌JS脚本来做二次跳转的, 这个脚本可能是window.location, 可能是document.write, 也可能是meta refresh, 检测方法如下。
1. 获取目标页面的源代码, 对全文进行搜索查找, 定位诸如location.href、window.open、setTimeout跳转等指令的所在位置。
2. 你需要去检查一下网页上是不是有那些动态加载出来的第三方外部脚本, 也就是看这些脚本的src属性指向的网站是不是不是当前这个网站的域名。因为这种类型的脚本存在一种可能性, 那就是它们会在背后执行一些不被用户注意到的页面跳转操作, 把用户引导去别的地方。
3. 你可以打开浏览器的开发者工具, 具体操作是使用快捷键F12切换到Network面板, 然后在这里过滤出type为document的请求类型, 接下来观察在页面加载完成以后, 是否还触发了针对其他额外域名发出的请求。
落地页内容一致性校验
即便跳转的链路中没有HTTP异常的情况存在, 我们仍然需要去验证终端那个落地页的具体属性是什么。
1. 把落地页里那个域名的WHOIS注册信息拿来跟原始的域名归属方进行比对, 看看这两者到底是不是一致的, 这里的比较内容涵盖了持有者这一项还有注册邮箱这一项以及注册商这一项。
2. 由工作人员利用人工的方式进行比对, 重点检查落地页中的Logo以及页面结构是否存在仿冒知名品牌或者仿冒政府机构的情况。
3. 将落地页放置在隔离的沙箱环境里面去运行, 同时对它进行监控, 来查看这个下载的动作有没有发生, 也就是看是否下载了可执行的文件, 另外还要看是不是向那些已被知的作为命令与控制功能的服务器发出了请求, 还有就是要看有没有植入用于挖矿程序的脚本代码。
检测工具与平台
在日常运维工作之中, 你可以去借用一下那个由 m.dcqzss.cn 所提供的域名安全检测服务功能, 当你把想要检查的目标域名输入进去之后, 它就会自动地把重定向链条展开进行扫描动作, 同时也会对 TLS 这种证书的执行校验操作做完, 并且还会对最终落地的那个页面给出的风险等级做出评定, 最后会输出一份结构化的报告出来, 这份报告的支持面挺广的, 既可以进行批量式的检测操作, 也可以设置成定时执行的任务程序另外像 Shodan、VirusTotal、URLScan.io 这些网络上的平台也是可以拿来当作交叉验证的一种具体手段使用的, 大家可以针对同一个链接, 用多个不同的引擎彼此进行反复比对, 这样做的主要目的是为了能够将漏掉检测的情况率给明显降低掉。
检测注意事项
在对生产环境里的域名执行检测之前, 需要确认那些登录状态验证或者地域访问之类的限制不会触发, 以此来避免出现误判的情况。
在判定是否为反弹的时候, 不能仅仅只去看单次跳转这一种情况。一定要把追踪的目光坚持到最后实际落地的页面去。只要在这中间的任何一个环节进行了替换, 那么就直接视作那条链接已经断裂了。
建议把外链检测这件事,放到日常安全巡检的流程里面去做, 对于那些引用次数特别高的高频外部链接, 每隔七天就要重新扫描一次, 一旦发现了异常情况, 就要马上把它下线, 并且追查源头。


