解决 Android 中的 DNS 域名劫持问题

article/2025/9/16 12:41:42

1、文章背景

在客户端进行业务接口请求时,往往会在线上出现解析JSON响应内容失败而导致的应用崩溃,但是在实际开发测试过程中却没有遇到此问题。解决办法就是对JSON解析进行异常捕获,然后将实际响应内容上报到服务端,从而查看具体问题。

对上报到服务端的实际响应内容进行分析后,发现响应内容变成各种html文本,以下是常见的几种:

1、安全DNS服务门户:Fortinet Secure DNS Service Portal

<html> <head>   <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />   <title>Fortinet Secure DNS Service Portal</title>  </head>  <body>   <center>    <h2>Web Page Blocked!</h2> You have tried to access a web page which belongs to a category that is blocked.   </center>   </body></html>

2、安全软件重定向:SHP Redirector

<!DOCTYPE html><html> <head>   <title>SHP Redirector</title>   <meta charset="UTF-8" />   <meta name="description" content="SHP Redirector" />   <script type="text/javascript" src="http://shgw.router:8080/ids.js"></script>   <script src="http://blockpg.lion.shp.mcafee.com/blockpage/third-party/jquery-3.3.1.min.js"></script>   <script src="http://blockpg.lion.shp.mcafee.com/blockpage/js/redirector1.1.js"></script>  </head>  <body>   <div id="settings" blockpage="http://blockpg.lion.shp.mcafee.com/blockpage/?" server="xxx.xxx.xxx">    </div> </body></html>

3、运营商广告劫持:

https://www.twmbroadband.com

<html> <head>  <meta charset="big5" />  <title></title>  <style><!-- A{text-decoration:none} --></style>  <script src="/redirect/js/jquery-1.6.2.min.js"></script>  <script>function btnSub(btnId){ $("#accept_redirect").append("<input type='hidden' name='btnId' value="+btnId+" />"); $("#accept_redirect").submit(); } $(document).ready(function() { $(window).bind("beforeunload", function() { $("form").submit(); }); });  </script> </head> <body>  <div align="center">   <form id="accept_redirect" name="accept_redirect" method="post" action="php_bin/recovery_sub.php">    <div>     <input type="hidden" name="url" value="" />     <input type="hidden" name="system" value="NX" />     <input type="hidden" name="so" value="PHC" />     <input type="hidden" name="flag" value="1" />     <input onclick="btnSub(1);" value="線上刷卡" type="button" style="font-size:16px;height:6%;width:30%; margin : 80px;margin-bottom : 5px;margin-top : 5px;" />     <input type="hidden" value="https://www.twmbroadband.com/T01/service-online-payment_5_1062_1113.html" name="url1" id="url1" />     <input onclick="btnSub(2);" value="我已閱讀此網頁,回到我要去的網頁" type="button" style="font-size:16px;height:6%;width:30%; margin : 80px;margin-bottom : 5px;margin-top : 5px;" />    </div>    <div>     <img src="/redirect/images/R1_PHC_pc.jpg" style="height: 80%;width: 80%; margin : 5px;" />    </div>    <div></div>   </form>  </div> </body></html>

        以上几种均是DNS劫持导致的结果,想知道DNS是如何被劫持的,需要先理解DNS域名是如何解析的。

2、DNS域名解析过程

当用户在浏览器地址栏输入域名时,DNS解析有大致十个过程:

1、浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。

2、如果浏览器缓存中没有,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程,即通过hosts文件来设置,如果在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。

3、如果至此还没有命中域名,才会真正地请求本地域名服务器(LDNS)来解析这个域名。

4、如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析。

5、根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址。

6、此时LDNS再发送请求给上一步返回的gTLD。

7、接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器。

8、Name Server根据映射关系表找到目标ip,返回给LDNS。

9、LDNS缓存这个域名和对应的ip。

10、 LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束。

(图片来自知乎@寒夜客来)

缓存是DNS被劫持的根本原因,在DNS解析过程的各个缓存中均有可能被劫持。主要包括本机的hosts篡改劫持,和运营商的Local DNS劫持等。

3、HTTPNS防止域名劫持

HttpDNS是使用HTTP协议向DNS服务器的80端口进行请求,代替传统的DNS协议向DNS服务器的53端口进行请求。也就是使用Http协议去进行DNS解析请求,将服务器返回的解析结果,直接向该IP发起对应的API服务请求,代替使用域名。    

    

域名解析请求直接发送到HTTPDNS服务器,绕过运营商Local DNS,避免域名劫持问题。


HTTPDNS在阿里云和腾讯云服务器均有支持,读者们可以在其官网中自行查看了解。

4、推荐阅读

从代码上看鸿蒙 APP 与安卓 APP 的关系

Android 记一次解决问题的过程

webview内存泄漏终极解决方案

Android 一套完整的 Socket 解决方案

Android Fragment 被回收后显示空白问题解决方案


如果你有写博客的好习惯
欢迎投稿

点个在看 你最好看


http://chatgpt.dhexx.cn/article/SZNkhyTJ.shtml

相关文章

子域名劫持漏洞

转发:原文先知社区:https://xz.aliyun.com/t/2414 在搜资料的时候偶然发现了这么一种子域名劫持&#xff08;Subdomain Takeover&#xff09;漏洞&#xff0c;平时没遇到过&#xff0c;感觉很有趣&#xff0c;可以利用劫持玩出很多花样&#xff0c;同样&#xff0c;HackOne上也…

子域名劫持漏洞详解、挖掘和防护

总之&#xff0c;你挖掘漏洞的方法越奇特&#xff0c;详尽&#xff0c;你所能挖到的东西也就越多。 一、理解子域名劫持漏洞 这个分标题只为了回答一个问题&#xff1a;子域名劫持是怎么形成的、怎么理解它&#xff1f; 一个域名对应着一个提供服务的服务器IP&#xff0c;如何…

Kali渗透-DNS域名劫持

DNS域名劫持 ettercap -i eth0 -Tp -M arp:remote -P dns_spoof /192.168.195.132// /192.168.195.2//说明: eth0为Kali本机的网卡名 192.168.195.132 是被攻击机器 192.168.195.2 是局域网的网关地址 打开 Kali 攻击机终端窗口&#xff0c;输入命令vim /etc/ettercap/etter.…

域名劫持原理及实现

目录 1.从输入URL到页面加载发生了什么 2 1.1 DNS解析 2 1.2 TCP连接 2 1.3发送HTTP请求 2 1.4服务器处理请求并返回HTTP报文 2 1.5浏览器解析渲染页面 3 1.6连接结束 4 2.dns劫持 4 3.url重定向 6 3.1.前端实现 6 3.1.1 html页面跳转方式 6 3.1.2 JS页面跳转方式 6 3.2.后端实…

域名劫持的几种方法

科普文。。我看完以后的一个想法就是一但获得了域名的控制权。。如果真想干坏事。那就转移域名。而不只是简单的改DNS。。居然还敢卖域名。。这个第一次看到。。我是好人。。 一. 介绍 在2012年10月24日。社会化分享网站Diigo域名被盗&#xff0c;导致500万用户无法使用网站。…

域名劫持

作者&#xff1a;sarleon 来自&#xff1a;freebuf.com 01 原理 DNS决定的是我们的域名将解析到哪一个IP地址的记录&#xff0c;是基于UDP协议的一种应用层协议 这个攻击的前提是攻击者掌控了你的网关&#xff08;可以是路由器&#xff0c;交换机&#xff0c;或者运营商&#…

域名劫持原理

实验步骤一 实验中提供了一台邮件服务器&#xff0c;该服务器同时提供DNS服务&#xff0c;测试者通过入侵到该服务器&#xff0c;修改DNS服务中的正向解析与反向解析文件实现劫持。 首先我们打开 http://mail.test.com&#xff0c;看到一个邮件登录入口。 这里我们先使用burp…

域名劫持原理与实践

实验简介: 实验所属系列&#xff1a;web安全 实验对象&#xff1a;本科/专科信息安全专业 相关课程及专业&#xff1a;信息网络安全概论 实验时数&#xff08;学分&#xff09;&#xff1a;1学时 实验类别&#xff1a;实践实验类 预备知识&#xff1a; 了解域名及域名劫持 由于…

什么是域名劫持?遇到域名劫持要怎么处理

互联网的应用在我们生活、工作中的应用日益加深&#xff0c;在众多设备的加入下&#xff0c;网络环境也也变得更加复杂。因此&#xff0c;我们在运营网站的过程中&#xff0c;常常出现网站无法打开、或者打开后跳转至其他页面的情况&#xff0c;这就是我们常说的域名劫持。 网…

网站域名被劫持、网站dns被劫持 域名跳转到别的网站的解决方法

网站域名被劫持&#xff0c;网站dns被劫持&#xff0c;域名跳转到别的网站怎么解决&#xff1f; 网站域名被劫持&#xff0c;网站dns被劫持&#xff0c;域名跳转到别的网站怎么解决&#xff1f; 出现网站域名跳转到其他网站&#xff0c;这一现象很可能是域名被劫持。 【网站域名…

【教程分享】大数据视频教程

总预览 下载地址 地址&#xff1a;https://pan.baidu.com/s/1ighogyDQDbMN7Wpe5-VSYg 提取码&#xff1a;rv7h

wpe简介

wpe简介   WPE&#xff08;Winsock Packet Editor&#xff09; 它的中文名称是&#xff1a; 网络封包编辑器 在大多数的编程工具中winsock已经封装成一个控件&#xff0c;成为网络编程的控件&#xff0c;是非常方便的&#xff0c;利用这个控件&#xff0c;编程工具就可以编写…

U盘WPE安装原版Win7系统教程

转载链接&#xff1a;https://jingyan.baidu.com/article/e8cdb32b00472537052bad0b.html 制作U盘pe 1.连接一个空U盘 2.打开pe制作工具&#xff0c;选择安装方式为“U盘” 3.选择好“待写入U盘”&#xff0c;然后点击“立即安装进U盘”&#xff0c;其它默认即可 PS&#xff1…

WPE详细教程四 滤镜制作(3)

为了大家能深入了解滤镜的制作&#xff0c;这里再给大家举些例子&#xff0c;供大家参考学习 当FILTER在启动状态时 &#xff0c;ON的按钮会呈现红色。当您启动FILTER时&#xff0c;您随时可以关闭这个视窗。FILTER将会保留在原来的状态&#xff0c;直到您再按一次 on / off 钮…

kindeditor=4.1.5上传漏洞复现

0x00 漏洞描述 漏洞存在于kindeditor编辑器里&#xff0c;你能上传.txt和.html文件&#xff0c;支持php/asp/jsp/asp.net,漏洞存在于小于等于kindeditor4.1.5编辑器中 这里html里面可以嵌套暗链接地址以及嵌套xss。Kindeditor上的uploadbutton.html用于文件上传功能页面&#x…

【vulhub】ThinkPHP5-rce 5.0.22/5.1.29 远程代码执行漏洞复现getshell

漏洞复现&#xff08;5-rce&#xff09; poc&#xff1a; /index.php?sindex/\think\app/invokefunction&functionphpinfo&vars[0]100payload11111: 代码执行 格式&#xff1a; index.php?sindex/think\app/invokefunction&functioncall_user_func_array&am…

java 富文本 xss_KindEditor开源富文本编辑框架XSS漏洞

原标题&#xff1a;KindEditor开源富文本编辑框架XSS漏洞 *原创作者&#xff1a;卫士通 安全服务事业部 天龙&#xff0c;叶龙&#xff0c;本文属FreeBuf原创奖励计划&#xff0c;未经许可禁止转载 001 前言 KindEditor 是一套开源的在线HTML编辑器&#xff0c;主要用于让用户在…

CTFshow——信息收集11-20

Web11 解题方法&#xff1a; 发现本题没有可配置环境&#xff0c;题目提示域名其实也可以隐藏信息&#xff0c;比如ctfshow.com就隐藏了一条信息 我们在网络搜索一个域名服务对ctfshow.com进行查询 查看更多&#xff0c;在TXT记录中发现了flag Web12 解题方法&#xff1a;…

kindeditor=4.1.5文件上传漏洞复现

0x00&#xff1a;背景 KindEditor是一套开源的HTML可视化编辑器&#xff0c;主要用于让用户在网站上获得所见即所得编辑效果&#xff0c;兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。 0x01:漏洞描述 漏洞存在于小于等于kindeditor4.1.5 编辑器里&#xff0c;你能上传…

KindEditor编辑器上传修改拿shell漏洞

法客论坛《team.f4ck.net》 90sec论坛《www.90sec.org》 疯子博客《http://Madman.in》 作者&#xff1a;relywind 影响版本&#xff1a; KindEditor 3.5.2~4.1 漏洞利用&#xff1a; 打开编辑器&#xff0c;将一句话改名为1.jpg 上传图片&#xff0c; 打开文件管理&#xff0c…