这篇贴主要是分析了支付宝、亚马逊等登陆设计。指出登陆信息被截获并且用于重放攻击可能性,指出登陆设计存在改进空间。附近中是POC(Proof of Concept)程序,在浏览器内部抓取POST登陆信息,保存在c:hijackhttp.txt中,亚马逊,支付宝的登陆信息可以明文重现。
正文
OWASP对web登录设计给出的建议包括密码要具有一定的长度和复杂度,正确的登录提示,始终使用TLS加密通道传输密码防止密码被截获等。参考:
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
但是仅仅是加密通道传输登陆信息仿佛还是不够,因为即使是通过TLS加密的传输的登录信息也可能被截获。
登陆case分析:
首选看几个站点的登陆设计。
1. 亚马逊
亚马逊将用户登陆信息用户名和密码使用https传输。这里从截获的数据中可以清楚的看到登录email和相应的password。
2. 某论坛http://bbs.xxx.com/login.php?do=login
论坛使用http明文传输登录信息,password做了一次MD5运算。由于MD5是不可逆的,理论上无法推出password。但对于黑客来说其实无需知道password具体是多少,用password的MD5值构造一个数据包模拟发送给服务器,同样可以收到有效的cookie信息成功登陆。这就是所谓的重放攻击。下图是登陆数据包,202cb962ac59075b964b07152d234b70是密码123的MD5值。
3.淘宝/支付宝
淘宝,支付宝的非控件登陆和亚马逊的相同。直接将用户名和密码等登陆信息使用https传输。使用控件登陆时password进行了加密处理,但是经过分析得知控件加密时密钥是固定,只要password相同,加密后的密文永远不变。这意味着即使password被加密了,也不能抵御重放攻击。经过试验利用抓取的password密文构造数据包模拟登陆,确实可以登陆成功。
以上web登陆设计主要问题在于不能抵御重放攻击,一旦登陆信息被截取就可以被利用来登陆。像支付宝一控件登陆一样的,密钥永远不变的加密没任何意义。支付宝登陆密码加密,亚马逊登陆密码明文,他们的安全性相同,攻击利用难度相似。
然而遗憾的是登陆数据包是可以被截获的,即便使用了https加密通道。
截获数据包的方法
方法一:架设代理服务器比如Burp Proxy,然后设置浏览器使用代理服务器。这样浏览器所有的http以及https数据都会被Burp Proxy代理截获,并且可以查看https解密后的明文数据。当https数据被截获后,浏览器会验证主机的证书,证书验证不通过时浏览器会发出访问安全警告阻止用户继续访问。所以这种方法通常用于http和https数据包分析。Firefox的代理设置:
方法二:注入代码到浏览器进程中,从浏览器内部截取明文登陆数据。Firefox使用函数Pr_write()发送http数据,IE使用函数HttpSendRequest()发送http数据。只有hook相关函数就可以截取到http/https的明文数据。
我以Firefox为例做了实验,可以抓取网站的登陆信息。实验工具在附件中,有兴趣的可以自己测试。
Hook Pr_write。虽然网上有很多hook库,但都不够稳定。微软detours库是最好用最稳定的hook库。Hook Pr_write时不能简单替换前5个字节,因为它前2条指令并不是5个字节。Detours会反编译相关指令然后根据需要替换不通长度字节的指令,稳定性好。
中国大部分电脑上都装有360杀毒,而貌似360对各个代码注入路径都防的很死。进程注入不了,就改注入文件。修改firefox.exe或者相关DLL的PE导入表,从而加载hook的DLL. 附件中setdll.exe是命令行工具可以将指定DLL加入到PE文件导入表中。
改进方法:
一家韩国游戏公司的登陆设计可以用来参考。登陆地址
https://nid.naver.com/nidlogin.login
他的登陆过程分为两步, 首先从
www.nid.naver.com/login/ext/keys.nhn
获取公钥加密key,然后利用上一步得到的key加密用户名和密码,提交加密后的用户名和密码到
www.nid.naver.com/nidlogin.login
。由此得到的登陆信息是动态变化的,不可重放。
往期精彩
登陆页面的检测及渗透
渗透实战篇(一)
渗透测试信息收集的方法
常见Web中间件漏洞利用及修复方法
内网渗透 | 流量转发场景测试
Waf从入门到Bypass
实战渗透-看我如何拿下学校的大屏幕
技术篇:bulldog水平垂直越权+命令执行+提权
渗透工具实战技巧大合集 | 先收藏点赞再转发一气呵成
感兴趣的可以点个关注!!!
本文始发于微信公众号(安全先师):Web登录安全隐患分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论