在广州和烧卖的师傅吃吃喝喝玩了两天,回来改毕设了

今日把毕设打回来的部分改了一大半,剩下的明天再说。

吃完午饭和学弟打了一把瓦,40杀,爽了一天

image-20240423222622276

下午看了一下午miasm。真的想吐槽miasm的网上的示例,全都是python2版本的,第一次跑必报错。每次翻源码debug好久才能正常跑,而今天的动态符号执行的例子直接寄了,跑出来约束莫得,大概是模拟的时候错了。哎晕了

晚上把安卓的activity漏洞看了一遍,具体就

越权绕过

原理就是把activity设置为导出了,导致可能被其他程序直接调用导致各种风险。按照ctf的话来说就像你直接绕过输入验证的步骤直接跳到了flag的界面。因为flag界面默认设置为导出(我还真这样做出过一道题)。方式也很多,编写apk调用或者用am去直接拉起来都行。

防护就别乱开export,检查intent-filter防止被恶意广播捕获然后干掉了。

钓鱼欺诈

就是在正常程序上面悬浮恶意钓鱼软件的界面,比如你点开微信输入密码后发现输入到的是悬浮的恶意软件的窗口,微信的界面在下面被盖住了。原理也很简单,就是activity的历史栈,如果给activity设置FLAGACTIVITYNEW_TASK标志位就会让它直接到栈顶去,而栈顶就是当前显示的activity。退出的话就弹出栈顶的activity然后到栈顶的下一个activity,也很好理解。偏题了,总而言之原理就是设置标志位丢到栈顶去覆盖原来的activity。

如果要编写示例,需要找到想要劫持的前台的进程,高版本的安卓找这个比较麻烦,因为安卓系统关闭了三方软件对系统进程的访问,所以得找些工具或者另寻它路来获取进程。之前的低版本就直接用api getRunningAppProcesses或者getRunningTasks就行。

看文章里的思路就是首先从/proc目录下找到所有的进程信息并转成pid形式,随后进行筛选

  • 读取cgroup的cpuSubsystemcpuaccctSubsystem,前者是判断是否以当前进程id结尾,后者判断是否包含bg_non_interactive字符串。前者是判断是否是应用进程,后者是筛掉后台进程。

  • 读取cmdline,如果有com.android.systemui就是系统UI进程,筛掉

  • 读取cpuaccctSubsystem,看看uid是否在1000到1038之间,是的话筛掉,因为同样是系统进程

  • 接下来读取oom。找到最低oom的进程。oom是操作系统的经典的内存分配的策略,不在这细说,大概讲一下就是oom是进程终止的优先级,oom分数越低越不会被终止。然后oom最低的就是前台进程。

总而言之就这样,找到前台进程,设置标志位,hack!

防护比较困难,只能在切换进程的时候给个提示。之前日app的时候也是这样。

拒绝服务

就是错误处理没做好导致Intent.getXXXExtra()被恶意构造的错误数据给攻击导致应用寄了。

防护就多写try catch,别乱开export,外部调用检查权限。

差不多就这些?画了今晚和19号的晚上看完,感觉蛮有意思的。过几天看看后面是怎么个事儿。

然后把unity游戏做完了。嗯。感觉可以开始我的东方二创游戏的构思和代码编写了。

今天其他的时间全部在观看闺泣的各种二创,不会有人不看闺泣吧.jpg

过几天交完论文准备一下旅游,然后想学学内核pwn。后天晚上又有闺泣更新看了,充满希望的未来。