实战介绍Windows下的PC客户端常见漏洞挖掘(2)
Reg add HKCU\Software\客户端名字\一个位置 /v Nowtimes /t REG_DWORD /d 0 /f 这个漏洞的成因主要是因为试用次数认的方法太简单了,不联网不加密直接写进注册表中,并且键名还那么浅显易懂叫做“Nowtimes”,这种存在在注册表的漏洞发掘和利用方法还是比较简单的,但是问题是这样的漏洞还蛮多的,所以大家在挖掘时注意关注注册表。另外如果注册表禁止监控,我们可以用REGshot来保存前后的快照进行比对分析。 2.基于网络授权验证的hosts欺骗破解 这一部分内容需要用到一部分逆向工程的知识。这次破解的客户端没有设置试用机制,所以第一种路子行不通 ,我们转而把眼光放到它的网络验证模式上来,看看到底这个客户端的网络授权验证方式是如何工作的。 关键位置打码处理 随便输一个注册码进去 随便输入一个注册码然后确定,根据弹出的错误窗口来定位到客户端的注册检测验证的函数处。拖入OLLYdbg查找字串“注册码有误”,并跟踪到汇编窗口。 于是我们得到了注册授权的服务器地址。为了进一步验证,我们使用wireshark来分析这个客户端注册时的网络请求。 <>可以看出客户端携带着我们的机器码和几个其他数据请求了服务器的/verifycheck/login.php 再回到我们的汇编窗口中,我们可以看到几个unicode的编码,疑似服务器的返回,记录下来。 直接用浏览器访问,可以发现返回值和汇编窗口的记录值中的一条相同,所以我们猜测可以构造一个假服务器,修改主机的hosts文件来实现请求重定向,让我们的服务器返回注册成功的信息。 修改hosts文件,将服务器域名绑定到我们自己的假服务器的ip地址 在服务器上构造不同的payload,可以得到客户端不同的反应,说明漏洞成功了一半。
至此我们可以排除掉其他的payload,从而确定一个格式化日期返回值是注册成功的标志。所以我们构造一个格式化时间,并且重新打开客户端输入任意注册码注册,即可看到注册成功的窗口。 最终的payload 这一漏洞的成因为客户端软件在校验注册码返回时的数据太过简单,进而非常容易构造注册成功的返回。并且客户端的反编译能力也非常差,敏感信息在反编译后直接就能够看到。在挖掘这一类漏洞时,我们需要一些逆向工程的基本知识,以及计算机网络的一些基础知识,重点关注客户端与网络服务器之间的通讯数据,利用抓包工具来进行漏洞挖掘。 客户端的网络服务漏洞: 由于想拿来做例子的漏洞厂商还没有修复,所以这里不放例子了。网络服务漏洞发掘主要采用客户端网络请求分析的方式,主要的工具就是前面提到的进程抓包工具以及Wireshark, 大部分网络服务漏洞起因是由于在客户端的网络请求中没有采取验证方式或者采取了安全性非常低的验证方式,从而使得任何人都可以以客户端合法的名义来请求这个网络服务,实现没有权限的调用私有网络服务接口。常常出现在客户端vip付费资源的试听服务,客户端付费的查询功能接口处等,不安全的客户端请求可以被拦截并分析,进而实现越权调用无权限的资源或接口。在挖掘这类漏洞时,我们需要更多的关注客户端的网络传输层面上的东西,尽可能的分析客户端的每一个通过网路服务器实现的功能,来进行漏洞挖掘。 【编辑推荐】
点赞 0 (编辑:ASP站长网) |