首先使用md5进行比较,但使用的是strcmp,比较的字符串中含有\0,可以导致截断
于是可以爆破出符合的key
edit中存在off by one,可以通过溢出来扩大tcache bin chunk的size,然后delete后申请回来,就能制造overlap chunk,然后控制func指针和参数即可
首先使用md5进行比较,但使用的是strcmp,比较的字符串中含有\0,可以导致截断
于是可以爆破出符合的key
edit中存在off by one,可以通过溢出来扩大tcache bin chunk的size,然后delete后申请回来,就能制造overlap chunk,然后控制func指针和参数即可
通过patch掉一些无关的语句,就可以使用IDA查看伪代码了,发现delete存在UAF
add中如果分配的地址超出了ptr范围,会调用exit退出,且add只能malloc(0x10)
url校验不充分,我们注册了ha1vktoutiao.com,并绑定了自己的服务器,实现了校验的绕过
TestActivity中的WebView允许执行JS,而Flag存储在Cookie数据库里
PendingIntent使用了空的Intent,因此我们可以在其他APP中劫持PendingIntent,任意修改Intent的action,实现广播
与easydroid的思路类似,我们利用PendingIntent发送com.bytectf.SET_FLAG的广播,目的是在flag文件中注入一段XSS,然后利用软连接建立一个symlink.html,并加载,实现将整个flag文件反弹
MainActivity.java