Yunoon的文章

openwrt 搭建日志

0 条评论 默认分类 小记录 Yunoon

前言

一直想弄个openwrt环境,用软路由出网的,但入了CR6606后,由于其他事情,没时间折腾,买来直接插电、网线直接用了。

由于朋友整了太Quest2 就有了路由器出网的需求,,近期就好好折腾玩玩吧hhhh。

记录点

重置充值路由器的方法

  1. 断点
  2. 按住重置按钮(可能是要用牙签插进去/也可能是按钮)
  3. 插电,等待呼吸灯闪烁(具体看型号)
  4. 访问重置后的路由器(openwrt是192.168.1.1),其他请查看官方/第三方文档

正文

目前的解决方案

  1. 恩山上的通过一台openwrt+CR6606
    https://www.right.com.cn/forum/thread-5400725-1-1.html
  2. 普通路由器+CR6606+主机/笔记本
    https://haoyu.love/blog1389.html
  3. 拆机连串口
    https://blog.csdn.net/humphreyandkate/article/details/127328785

采用方案2

配置单
CR6606 (A)
另外一台路由器(B)
笔记本/主机 (C)

  1. 由于没有另一台openwrt就采用了第二个方案(其实也有一台已经刷好了其他系统的路由器,但当时没找到如何使用。

  2. 把家里的一台AP重置了来做的

  3. 这里要注意,路由器的版本要刷到1.0.103以下

  4. 别的就照着方案2来实现就行,没有其他问题。

  5. 贴个169.254.31.1的flask脚本

    from flask import Flask
    import json
    app = Flask(__name__)
    
    
    @app.errorhandler(404)
    def unlock(foo):
        return json.dumps({
            "code": 0,
            "token": "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
        }), 200
        
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=80, debug=True)
        # 必须是80端口,因为到时候默认请求的是169.254.31.1。
        
    

    如果80端口有其他服务的话,关了就行。
    lsof -i tcp:80
    类似于这样

    然后给kill掉就行
    kill -9 <PID>

  6. SSH启动后,通过root登录,官方版本可以算出来,其他版本看路由器背面

  7. 正常刷入PD就行

  8. 刷好PD后,建议不要用openwrt官方的镜像,不适合纯新人。


    1. 因为默认的init镜像是不启动luci的,需要自己装,最新的镜像还有很多不兼容的问题。
    2. 我也偷懒就直接拿别人做好的 「OpenWrt R21.6.14」 的镜像就行了,东西都挺全。
      https://www.right.com.cn/forum/thread-4413820-1-1.html
      https://wwa.lanzoui.com/iMBhpqkcfoh
      后台登录地址:192.168.2.1
      初始管理帐号密码:root/password
  9. 刷入后,接上网线,弄好v2ray的订阅就行。


Quest 2 踩坑日志

0 条评论 默认分类 小记录 Yunoon

前言

朋友整了台Qeust2,在搭建好openwrt后,就可以访问外网开始玩了,但中间还是遇到了一些坑点,故记录下。

正文

重置账户

  1. 这个其实挺坑的,因为是收的二手,但上家转手的时候没退账号,导致更新版本后要用原先的账号激活。
  2. 好在和上家有保持联系,提供了账号密码成功重置。

Facebook账号被ban

  1. 因为Facebook的审核机制,导致非实名用户的账号被ban了,这个数据和Quest2官网的数据不互通,所以直接在Quest2 官网上注册即可。

账号申请开发者权限

  1. 有2种渠道


    1. 填写手机号
    2. 添加信用卡
  2. 不知道为什么手机号添加不了,Google Voice和国内手机号都不行,就选择了用国内的Visa卡注册。

使用开发者权限安装第三方APK

  1. 开始折腾了半天,发现这个需要用手机安装 Quest2 App后,连接上设备,在头戴设备设置中开启开发者选项。
  2. 然后ADB命令一把梭就行

Steam串流

  1. ADB安装ALVR后,电脑端也安装好后,即可。
  2. 自带的Air Link还没用过,就不多说了。

【CatCTF 出题人WP】ez_js解题思路

0 条评论 默认分类 WP Yunoon

前言

web签到题,f12看源码找接口就行。

正文

  1. 失败后发现弹114514,搜就行。

  2. get_flag()函数返回接口

  3. 访问接口即可


【CatCTF 出题人WP】CatJump解题思路

0 条评论 默认分类 WP Yunoon

前言

出题5天,被秒半小时,当时做环境的时候数据忘了清干净,导致被非预期了,原本挺有趣的题目没多少人玩到。
感兴趣的师傅后续也可以试试原有的解题思路,希望可以给各位有些帮助。

出题灵感来源

  1. 一直在玩黑苹果,虽然11代intel已经是黑果的绝唱了,但中间的一些思路倒是很有意思的。
  2. 安装黑果的重点就在于硬件能否被苹果系统识别,因此就有了本题,大致就是通过检测系统的硬件配置,实现一个简单的macOS检测机制。
  3. 选手需要通过oc或者其他方式修改nvram中的内容,让程序识别到该系统的某些配置。

正文

当时预设了2种解题方式

解题思路1

  1. 拿vmdk文件,提取其中的可执行文件进行分析,最终锁定openssl解密的部分,利用题目描述中的「cat_jump」进行解密获得flag。

解题思路2

  1. 拿到vmdk,进行仿真挂载,但发现该磁盘无法在ubuntu等预设中进行挂载,因为这里用的是Alpine Linux,并且是Alpine是UEFI,Vmware中一般都是bios引导启动,如果是vmware workstation的话需要在创建完毕后,高级中设置为UEFI启动,即可进入游戏。

  2. 进入游戏后,这里有个小脑洞,一般的游戏都会有「退出」模块,一般为「q」,但这里用的是「]」,退出后即可发现读取文件失败了。

  3. 读取的是nvram中的一个特定变量,如无法检测到这个变量的话,即使进了系统登录界面也无济于事。

  4. 通过opencore做一个引导驱动,在nvram中写入报错中的特定变量名和变量值,将该引导挂载到虚拟机中,我这直接用的U盘创了个ESP分区,把EFI丢进去了。


    如果U盘是USB3.1的记得改下兼容性

  5. 启动到固件后,选择opencore启动,这样EFI引导就是走的opencore,模拟出的nvram也就能获取到。

  6. 最终进入启动界面即可获取flag。

解题思路3(非预期)

  1. strings cat_jump_clean.vmdk | grep CatCTF{
  2. 010编辑搜索
  3. 取证大师提取原始数据
  4. 记事本打开
  5. .....

总之就是磁盘数据没清干净,被一把梭了。


CatJump出题思路

0 条评论 默认分类 WP Yunoon

Date Created: November 15, 2022 9:13 AM
Status: To Do

灵感

  1. 一直在玩黑苹果,虽然11代intel已经是黑果的绝唱了,但中间的一些思路倒是很有意思的。
  2. 安装黑果的重点就在于硬件能否被苹果系统识别,因此就有了本题,大致就是通过检测系统的硬件配置,实现一个简单的macOS检测机制。
  3. 选手需要通过oc或者其他方式修改nvram中的内容,让程序识别到该系统的某些配置。

思路

  1. 利用opencore进入引导后,通过某些open core的特性来查看flag
  2. efi和镜像文件均放在dumpit导出的镜像中

实现方式

  1. 用户态
    1. 利用Linux系统init的过程中,在login之前拉起检测程序
  2. 内核态
    1. 在Linux内核中添加一个读取efi变量的模块,编译完毕后,通过qemu拉起系统。

相关技术

UEFI仿冒、Linux用户态

具体实现流程

  • 拉取镜像
  • 安装efivar、g++等环境
  • 编写CatJump Game模块
  • 编写读取EFI变量模块
  • 更改Init,将编写好的模块放入login模块前
  • 导出vmdk镜像