Google Play 的应用内购买机制的实现上存在的漏洞,在用户在Android 应用内购买某些数字资产时会从Play市场获取是否已经付费的验证数据,对这块数据的解析验证的代码存在逻辑问题,导致攻击者可以绕过验证不用真的付费就能买到东西。验证相关的代码如下:
代码会先检查回来的数据签名是否为空,不空的话检查签名是否正确,如果不对返回失败。问题在于如果签名是空的话并没有对应的else逻辑分支来处理,会直接执行最下面的return true 操作,导致的结果是只要返回的消息中签名为空就会返回验证通过。 输入验证类
漏洞来源都是由于对来自用户输入没有做充分的检查过滤就用于后续操作,绝大部分的CGI漏洞属于此类。所能导致的后果,经常看到且威胁较大的有以下几类:
SQL 注入
跨站脚本执行
远程或本地文件包含
命令注入
目录遍历
SQL注入
Web 应用对来自用户的输入数据未做充分检查过滤,就用于构造访问后台数据库的SQL 命令,导致执行非预期的SQL 操作,最终导致数据泄露或数据库破坏。
实例:
HP Data Protector Media Operations DBServer.exe 目录遍历漏洞
在HP Data protecetor Media Operations 的客户端连接服务端时,通过私访有的通信协议,客户端会首先检查[系统分区]:\Documents and Settings\[用户名]\Application Data 下面是否有相应的资源(如插件等),如果没有,则会向服务器请求需要的文件,服务器没有验证请求的文件名的合法性,而且这个过程不需要任何验证,攻击者精心构造文件名,可以读取服务端安装目录所在分区的任意文件。