当前位置:网站首页>gethostbyname \ getaddrinfo 解析域名IP地址不安全的原因
gethostbyname \ getaddrinfo 解析域名IP地址不安全的原因
2022-08-01 07:18:00 【kim-2006】
第 1 步:
使目标域名指向假的服务器IP,格式如下:
假服务器IP地址 网站域名在 %Systemroot%\System32\Drivers\Etc\hosts 文件中写入:
127.0.0.1 blog.csdn.net第 2 步:
运行以下测试代码就会发现域名已被指向假的服务器IP地址, 会造成什么危害呢?导致软件轻易被破解,用户访问假的服务器后,导致用户数据被盗窃。
测试代码:
// ----解析域名IP测试开始----
/*
在 hosts 文件写入: 127.0.0.1 blog.csdn.com 后,
gethostbyname \ getaddrinfo 获得的 ip 地址将是 127.0.0.1, 这就是所谓的不安全的原因
*/
//WSADATA wsaData;
//WSAStartup(MAKEWORD(2, 2), &wsaData);
struct addrinfo *result = nullptr, *curr = nullptr;
struct addrinfo hints = { 0 };
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
int nRet = getaddrinfo("blog.csdn.net", "443", &hints, &result);
if (0 != nRet)
{
int nError = WSAGetLastError();
CString szMSG;
szMSG.Format(_T("getaddrinfo 调用失败, 错误代码: %d.\r\n"), nError);
Log(szMSG);
return;
}
char chIP[16];
for (curr = result; curr != nullptr; curr = curr->ai_next) {
inet_ntop(AF_INET, &(((struct sockaddr_in *)(curr->ai_addr))->sin_addr), chIP, 16);
Log(CString(chIP) + CString(_T("\r\n")));
}
freeaddrinfo(result);
//WSACleanup();
// ----解析域名IP测试结束----边栏推荐
- 史上超强最常用SQL语句大全
- Json对象和Json字符串的区别
- R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
- C语言学习概览(三)
- 测试工具(四)Jenkins环境搭建与使用
- Generate pictures based on the content of the specified area and share them with a summary
- MATLAB程序设计与应用 2.5 MATLAB运算
- "By sharing" northwestern university life service | | bytes a second interview on three sides by HR
- Golang: go open web service
- 微信小程序请求封装
猜你喜欢

阿里三面:MQ 消息丢失、重复、积压问题,该如何解决?

Dell PowerEdge Server R450 RAID Configuration Steps

对于升级go1.18的goland问题

升级为重量级锁,锁重入会导致锁释放?

Three aspects of Ali: How to solve the problem of MQ message loss, duplication and backlog?

爬虫框架 Scrapy 详解

MATLAB program design and application of MATLAB 2.5

小程序全面屏手势配置案例

研发过程中的文档管理与工具
![Explosive 30,000 words, the hardest core丨Mysql knowledge system, complete collection of commands [recommended collection]](/img/7f/08b323ffc5b5f8e3354bee6775b994.png)
Explosive 30,000 words, the hardest core丨Mysql knowledge system, complete collection of commands [recommended collection]
随机推荐
LeetCode240+312+394
crypto-js uses
表的创建、修改与删除
电磁兼容简明教程(6)测试项目
rhcsa 第三次
Golang:go静态文件处理
信息系统项目管理师必背核心考点(五十六)配置控制委员会(CCB)的工作
微信小程序请求封装
安装SQL Server详细教程
POJ2031空间站题解
R语言使用tidyquant包的tq_transmute函数计算持有某只股票的天、月、周收益率、ggplot2使用条形图可视化股票月收益率数据、使用百分比显示Y轴坐标数据、使用不同的色彩表征正负收益率
并发编程13-JUC之CountDownLatch
VSCode插件推荐(Rust环境)
VoLTE基础学习系列 | 什么是SIP和IMS中的Forking
从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
POJ2421道路建设题解
Summary of test points about app updates in different ways
响应式织梦模板园林花卉类网站
Compare two objects are the same depth
爆肝3万字,最硬核丨Mysql 知识体系、命令全集 【建议收藏 】