关于大多数网络验证的通用“解决”思路
0x00 事件起因
云安网络验证的管理员授权测试网络验证的强度,结果三下五除二就被跑开了,用到的关键思路就是截取验证软件的数据包,修改为正常用户登录时的数据包,即可绕过验证界面。
目前该验证的技术人员已经将部分关键数据的加密放在了云端,只要拿不到key
基本上无法正常破解的。
顺便,我计划了一个项目,目前正在制作当中,完成后将更加有效方便地利于逆向爱好者对于某些数据的截取。
网劫补丁
0x01 思路描述
大多数的网络验证都会有自己专用的验证API,例如:
http(s)://xxxx/login
并且附加key
、username
和password
等参数请求验证,使用UDP
的验证类型比较少见。
这些验证会请求API,并且通过返回的状态码或者其他代码数据来判断这个用户是否登录成功,而这个过程就容易被利用破解。如果你拥有用户正常登陆时的数据包,那么你完全可以本地伪造登录数据,绕过验证,不排除验证有随机二次的可能,不过对于大多数而言,这点足以成为“致命伤”。
网络数据
而验证登录时所用到的函数InternetReadFile
更是一个验证的突破口,只要是利用网页API
作为登录验证的软件,皆可在该函数上Break Point
(断点),动态分析调试至验证的主体,继而破解验证。
那么我们该如何减少这种程序漏洞带来的危害呢?不使用这种类型的函数,可以有效地减小破解的风险。毕竟办法总比困难多,如果你的技术到家,你可以使用内核编程,或者自写InternetReadFile
这个函数,有效程度可以类比当年的大灰狼TR.downloader
下载者。
0x02 验证实例
本次验证使用了来自ND的一个例子,不涉及其他问题。
首先我们在验证后台注册一个账号,并且充值账户金额,使得能够正常登入软件。本地拦截到的登录数据:
data数据段
获取到这个数据包后,就可以对该验证进行拦截修改,并且能够直接绕过验证。我们将远程URL响应为本地响应,并且为该数据文件,接着来看看验证对该数据的相应效果:
验证成功
不过这个验证的作者还在后续的进入阶段置入了随机种子,解密成功后我们才能进入软件界面。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击