国内某知名软件更新的安全分析

13 篇文章 0 订阅
6 篇文章 0 订阅

bytedance某软件更新抓包(虽然是https,但是未验证https数字证书,存在https证书劫持漏洞)如下:

GET /service/settings/v2/?iid=1&app=1&caller_name=tt_webview&sdk_version_code=104&sdk_upto_so_versioncode=001001&os_type=android&os_api=27&device_platform=PBEM00&device_manufacturer=OPPO&deviceid=62100553568&channel=lite_oppo&aid=35&app_version_code=6780&os_version=8.1.0&package_name=com.ss.android.article.lite&network_type=wifi HTTP/1.1
User-Agent: Dalvik/2.1.0 (Linux; U; Android 8.1.0; PBEM00 Build/OPM1.171019.026)
Host: lf.snssdk.com
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: odin_tt=a598890b25d7705269c70563f4d9d0ecf4dd3f231c1759e1244916c1c852ca38a3ff5e899400223ad5a2952a1c29be06; install_id=65756668975; ttreq=1$f623ac6d91bd4aa56cd1155842ce74e1b0f88e4d; tt_diamond_env=prod; sid_guard=724690a5c1f9b4975538fdcd8dd4bbbe%7C1552309752%7C5184000%7CFri%2C+10-May-2019+13%3A09%3A12+GMT; uid_tt=e990ec92fc0b281f97e6a6c35cf6e832; sid_tt=724690a5c1f9b4975538fdcd8dd4bbbe; sessionid=724690a5c1f9b4975538fdcd8dd4bbbe

HTTP/1.1 200 OK
Server: Tengine
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Date: Mon, 11 Mar 2019 13:09:14 GMT
Vary: Accept-Encoding
X-TRANS-LEVEL: 0
X-Tt-Logid: 20190311210914010006028208214054B
Vary: Accept-Encoding
Content-Encoding: gzip
Via: cache8.cn615[54,0]
Timing-Allow-Origin: *
EagleId: 3d93df1c15523097542013467e

{"data":{"app":{"tt_lite_net":{"net_dns_dualsocket":true,"net_features_port_from_ttnet_enabled":true,
"net_flow_count":false,"net_http_dns_ali_domains":"is.snssdk.com##lf.snssdk.com##v3.365yg.com##v3.ixigua.com##v3.xiguavideo.com##p3.pstatp.com##v7.pstatp.com##s3.pstatp.com##ichannel.snssdk.com##isub.snssdk.com##log.snssdk.com##s0z.pstatp.com##a3.pstatp.com##p3.pstatp.com##api.amemv.com##aweme-eagle.snssdk.com##api-eagle.amemv.com","net_http_dns_bypass_domains":"dns.google.com##dig.bdurl.net",
"net_http_dns_enabled":true,"net_http_dns_google":false,"net_http_dns_perfer":true,
"net_http_dns_tt_domains":"365yg.com##ad.doubleclick.net##adwmcdn.suning.com##amemv.com##api.map.baidu.com##app.qlogo.cn##at.pinduoduo.com##bytecdn.cn##bytedance.com##bytedance.org##cdn.zampdsp.com##dl.weshineapp.com##douyin.com##edt.fp.ps.netease.com##f2.p0y.cn##faceu.mobi##g.cn.miaozhen.com##gma.alicdn.com##huoshan.com##huoshanzhibo.com##iesdouyin.com##imagepa.suning.cn##img-x.jd.com##img.alicdn.com##img1.360buyimg.com##img1.imgtn.bdimg.com##img3.imgtn.bdimg.com##imggen.alicdn.com##imgservicepa.suning.cn##ixigua.com##ixiguavideo.com##maps.googleapis.com##p0.meituan.net##p1.meituan.net##pic2.58cdn.com.cn##pstatp.com##push-rtmp-l1.hypstarcdn.com##q.qlogo.cn##r1.ykimg.com##ribaoapi.com##sl233.com##snssdk.com##soulkiller.bytedance.net##t1.market.xiaomi.com##thirdqq.qlogo.cn##thirdwx.qlogo.cn##timgsa.baidu.com##toutiao.com##tp1.sinaimg.cn##tp2.sinaimg.cn##tp3.sinaimg.cn##tp4.sinaimg.cn##tuchong.com##tva1.sinaimg.cn##tva2.sinaimg.cn##tva4.sinaimg.cn##unidesk.alicdn.com##v.admaster.com.cn##ww2.sinaimg.cn##ww4.sinaimg.cn##www.baidu.com##www.cmpassport.com##wx.qlogo.cn##wx4.sinaimg.cn##ych-files-oss.oss-cn-beijing.aliyuncs.com##zjurl.cn##anote-app.com##anotecdn.com##byteoversea.com##www.akamai.com##haoyuntianqi.com##seniverse.com##caiyunapp.com",
"net_main_frame_4xx5xx_retry_enabled":true,"net_main_frame_read_headers_retry_enabled":true,
"net_prefetch_enabled":true,"net_tcp_socket_connect_retry_enabled":true,"net_tt_http_dns_transaction_enabled":true},
"tt_lite_sdk":{"abtest":0,"sdk_download_url":"https://lf6-ttcdn-tos.pstatp.com/obj/rocketpackagebackup/bugfix_online/1549012319libwebview.so",
"sdk_enable_ttwebview":false,"sdk_is_stable":false,
"sdk_signdata":"gCl1oEQ/qdv1mE94VFV9w5jyv/tyqRkMc8AaOjsSuarND2YeSkVPSirB/Mzrhr5DTasAwW7zyGxntuk7pPAcMw==",
"sdk_upto_so_md5":"7755cd882bae7d91f3ad1364288b8971","sdk_upto_so_versioncode":"104006"},
"tt_lite_video":{"video_ttmp_switch":true}}},"message":"success"}

写代码验证之:

		RSACheck rsaCheck = new RSACheck();
		boolean ret = rsaCheck.testkey("gCl1oEQ/qdv1mE94VFV9w5jyv/tyqRkMc8AaOjsSuarND2YeSkVPSirB/Mzrhr5DTasAwW7zyGxntuk7pPAcMw==", 
				"7755cd882bae7d91f3ad1364288b8971");
package com.javatest;

import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Signature;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;



public class RSACheck {

	
	public boolean testkey(String sign,String md5){
		
		boolean ret = false;
		try {
			 String pubkeyString = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ9Z9a6Yn/vYSp7bytaE0ILOke8/0czT69fnKC5hmTQ5P3SLYRqdhC0Lvv6Jt2UHzw6MQsSI7Zqp59gpFK4GDiMCAwEAAQ==";
			 byte[] asckey = Base64.getDecoder().decode(pubkeyString.getBytes(StandardCharsets.UTF_8));
			 
			 PublicKey pubkey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(asckey));

		      StringBuilder localStringBuilder = new StringBuilder();
		      localStringBuilder.append("CheckWithRsa = ");
		      localStringBuilder.append(sign);

		      Signature sig = Signature.getInstance("SHA1withRSA");
		      sig.initVerify(pubkey);
		      sig.update(md5.getBytes());
		      
		      byte[] signret = Base64.getDecoder().decode(sign.getBytes(StandardCharsets.UTF_8));
		      ret= sig.verify(signret);
		} catch (Exception e) {
			e.printStackTrace();
		}

	      
	      return ret;
	}
}

其中公钥为:
8345910282858689665508154778403752650318388917246338200298139537509839167538282614056082188321103626981966672842819448911145140515983395753756974555467299

根据测试,其数据包中的sdk_signdata字段就是sdk_upto_so_md5字段的rsa加密值,其rsa为:
gCl1oEQ/qdv1mE94VFV9w5jyv/tyqRkMc8AaOjsSuarND2YeSkVPSirB/Mzrhr5DTasAwW7zyGxntuk7pPAcMw==,其长度为88字节,也就是512位。

下载该升级包,发现并没有android安装包中的数字签名验证:
在这里插入图片描述
在这里插入图片描述

META-inf下仅有一个manifest.mf文件。

由此得出,抖音插件包升级私钥存在被爆破的风险,容易被不法分子攻击植入后门程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值