一个京东登录的安全漏洞

我的博客:http://blog.striveforfreedom.net

Table of Contents

1 简介

最近在看一个开源网站的代码,发现如果登录页面是通过http协议请求的,会重定向到使用https协议的url,这样可以保证登录安全。今天心血来潮,想看看京东有没有这样处理,意外发现京东在这方面存在安全漏洞。

2 检查过程

先运行Wireshark,Filter用http contains jd.com。京东登录页面地址是https://passport.jd.com/new/login.aspx, 把https改成http,在浏览器地址栏里输入http://passport.jd.com/new/login.aspx, 回车,然后查看Wireshark的抓包,并没有发现重定向响应。然后在登录页面的用户名和密码输入框处分别填上faked_user和faked_password,点击登录。再查看Wireshark,发现一个post请求,传输的数据是uuid=4b72722f-58a1-4c4c-9364-db663ca9e8a4&loginname=faked_user&nloginpwd=faked_password&loginpwd=faked_password&machineNet=&machineCpu=&machineDisk=&authcode=&ZWprDUvAGW=sNKhf,里面赫然可以发现loginname=faked_user&nloginpwd=faked_password&loginpwd=faked_password,这说明在这种情况下京东是以明文传输密码的。这就存在一个安全漏洞,如果攻击者把使用http协议的登录地址发布在网络上,诱使受害者点击,攻击者就有机会截取受害者的用户名和密码了。

发现京东存在这样的问题之后,好奇心驱使我又试了其他几家电商的登录页面。我首先试了亚马逊的登录页面,发现亚马逊没有这种问题,如果用户是使用http协议访问登录页面,亚马逊会返回一个HTTP/1.1 302 Moved Temporarily响应,Location响应头字段里会包含使用https协议的url,浏览器则会被重定向到访问安全的登录地址。淘宝/苏宁/易迅也一样,都重定向到了https地址,新蛋直接禁止了以http方式访问登录页面(客户端TCP SYN包发出之后,收到了服务器的RST包,应该是登录服务器上的80端口没有打开),1号店使用iframe来嵌入登录页面,在iframe的src属性里找到登录页面的url,把https改成http然后访问,没有重定向,但在提交登录的javascript函数里明确使用了https来发送登录请求,这种攻击方式也用不上。

3 小结

这种问题很容易修复,只要在登录页面里检查协议,如果发现访问登录页面使用的是http协议,则重定向到使用https协议的地址。相对来说,京东这个还是小问题,购书网站互动出版网 竟然是直接用明文传输用户名和密码的,实在让人无语。

posted on   striveforfreedom  阅读(5207)  评论(14编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示