qemu、iptables和交叉编译

上周huiming和hyperchem大佬带我搞了一发mips的路由器,遇到了一些坑,在这儿做些记录方便以后查看。

固件解包

用binwalk分离文件然后用对应的文件系统解包工具解开。

osx上可以使用 https://github.com/cinquemb/firmware-mod-kit-osx

查看更多

分享到 评论

我是如何用Hrida自动生成签名的

这应该是最后一次写用frida来hook安卓的东西了 = = 当然,最主要的目的还是为这个小脚本打个广告。

这次的小玩意叫Hrida,思路来自于BridaHrida可以看作是frida的http接口,可以通过http请求获取在frida脚本中导出函数的执行结果。

Hrida的用法见Github页面

查看更多

分享到 评论

jQuery里的html()

在看一个浏览器插件,发现可以在插件内部的页面中插入任意的 html 标签,但是由于 CSP 的限制,只能script-src 'self' 'unsafe-eval'; object-src 'self',并不支持unsafe-inline

出现问题部分的代码为

1
g.html('<iframe src="' + a.url + "?id=" + a.id '" frameborder="0" scrolling="no"></iframe>').show()

其中 a.url 和 a.id 没有过滤可以完全控制。思路很简单,闭合 iframe 标签插入新的标签即可。在测试的时候发现,利用 img 标签的 onerror 事件就会引发 CSP 的报警,而用 script 标签则不会。一脸懵逼。

本地搭建环境,引用最新的 jQuery 库(3.2.1),用同样的方法却发现无论 img 还是 script 标签都会触发 CSP 的报警。两脸懵逼。

问过大佬,大佬说 jQuery 的.html方法调用的是 eval,而 CSP 中允许了 unsafe-eval,所以能执行 JavaScript。三脸懵逼。

查看更多

分享到 评论

fastjson 调试利用记录

前几天和雨日一个站,发现有fastjson的问题,死活利用不成功。找大佬们帮忙要来exp弹shell成功了,事后学习下原理。
之前从来没搞过java,于是拉着雨对着Ricter的博客一起跟了一遍流程,带我学习了一波。

查看更多

分享到 评论

记一次apk检测

之前在日一个APP。去官网下apk回来,手机运行,发现走的https协议,请求带有一个签名参数,修改请求会导致签名不对无法通过验证。签名是40位的,看起来像是sha1
Inspeckage,在log里也没发现与请求相关的hash函数。

拖到jeb里,发现加壳了。粗略看了下应该是梆梆的壳,渣渣如我根本不会脱壳。找大佬帮忙脱壳,却发现签名算法是放在native里的。。
硬着头皮把so拖到ida里,却发现整个so的结构非常奇怪,没有JNI_OnLoad,导出表里的函数对应位置也不对。应该还是壳的问题,把so也加固了。
adb shell到手机上,发现有好几个此apk的进程,从其中一个进程里的maps里找到加载这个so的地址,想直接dd出来,却发现一但dd进程就会退掉。。
尝试挂上ida远程调试,却发现无论如何也attach不上这个进程,猜测可能是被它的父进程ptrace了 = = 杀掉父进程这个子进程也就退出了。。
然后尝试直接hook脱壳后java里的一些方法,也不能hook到。想直接调用so,由于连JNI_OnLoad都没有,看起来也不像能直接调用的样子。
作为一个web狗碰到这些,在心里不知道念了多少次mdzz了。。

查看更多

分享到 评论

某智能设备固件解密

获取固件

拿到硬件设备的第一个想法就是获取固件。通常来说获取固件有三种方式:从设备官方网址下载,抓包固件升级过程,从设备固件存储器中获取。

此设备的官网提供在线升级的功能,升级过程需要读取硬件的一些基本信息,而此设备恰好不被支持。抄起工具把网站日了下来,却发现网站上只提供其他型号的升级包,而且是加过密的。于是只能从现有的设备入手了。

观察电路板,发现板子上主控芯片为ATMEL SAMA5D2系列的芯片,无明显的UART和JTAG接口,存在SOP8封装的型号为N25Q032A的Flash芯片。所以固件只能从Flash里读取出来了。

从Flash里读固件第一步是把芯片从板子上焊下来,对于SOP8封装的芯片建议用电风枪吹下来,血泪教训告诉我们,用电烙铁非常容易把芯片弄坏。

把Flash芯片焊下来之后就是从芯片里读取固件内容了。这里推荐用编程器来读,淘宝一两百人民币就能买到。我们也尝试过用FlashROM来读,但是有时候会很不稳定,对于有的型号并不能完整的将Flash读出来。

查看更多

分享到 评论

SESSION 中的手机验证码

之前在检测某网站的时候发现了一个好玩的逻辑问题,可以在更换手机号的时候,可以不用原手机的验证码解绑,只需要新手机接收验证码就能绑定手机。

漏洞的成因是新旧手机的验证码在 session 中用同一个变量名存储,更换手机号的时候运行越过前面几步直接向新手机发送短信验证码。此时新手机的短信验证码就被当成了第一步解绑老手机时发往老手机的验证码,导致攻击者可以直接用自己的手机绑定到受害者的账号上。

查看更多

分享到 评论

关于联通机顶盒

装联通宽带送了个机顶盒,没啥用,只能看一些收费的节目。看起来是个安卓的盒子,那就搞一搞吧。

ZTE机顶盒

第一次送的机顶盒是中兴的,有个现成的工具可以开启adb,直接搞定。

工具下载

顺便提取出来的还有一些奇怪的网站,可以下到所有版本的固件,附后。

查看更多

分享到 评论

php里的随机数

这次来填一个关于php随机数预测的坑。php5和php7中的随机数产生机制已经大有不同,本文将详细讲一讲这些区别和爆破种子的时候会产生的问题。

php中常用的随机数产生函数是rand()mt_rand()。下面将针对这两个函数展开。

查看更多

分享到 评论

CDN安全小结

CDN作为反向代理服务器,除非操作系统或者反向代理软件爆出严重的漏洞,其本身是不存在较大的安全问题的。扫描CDN服务器的端口往往会发现只开了80(http)和443(https),而这两个端口又不运行动态脚本,作为攻击者很难从这里下手。

尽管CDN服务器看起来固若金汤,但是攻击CDN可以从CDN运行逻辑入手。CDN安全主要出现在环路攻击上,一旦流量形成环,则整个CDN会带着流量不断消耗自身的资源,造成拒绝服务。

查看更多

分享到 评论