NSSCTF刷题-20230627

1、[SWPUCTF 2022 新生赛]什锦

题目包含3个附件

CodeA=Decode(友善爱国平等友善自由友善敬业爱国诚信文明诚信自由平等友善平等友善公正诚信民主友善自由友善爱国公正敬业爱国爱国诚信自由友善爱国自由诚信民主爱国诚信民主友善平等友善爱国公正敬业公正爱国法治友善爱国公正敬业爱国爱国诚信自由诚信自由平等敬业文明爱国诚信文明诚信自由爱国诚信民主富强敬业富强)
CodeB=Decode(CodeB.png)
CodeC=Decode(CodeC.txt)
flag=MD5(CodeA+CodeB+CodeC)

CodeA社会主义核心价值观,解码之后得到富强明主文明和谐
CodeC.txt是brainfuck编码,解码之后得到但是猪猪好好吃诶
CodeB.png是猪圈密码,解密之后得到PIGISSOCUTEWHYYOUKILLPIG,字符串需要小写

flag=md5(富强明主文明和谐pigissocutewhyyoukillpig但是猪猪好好吃诶)=c05485d678cb8a6beb401f31d762532a

2、[SWPU 2020]来猜谜了

010edit打开图片发现文件结构正确,那么通过stegsolve打开之后在RGB 0通道发现zip压缩包,导出之后发现mi.jpg和uuu.pcap文件,其中流量文件发现是键盘流量通过脚本提取之后得到

[+] Found : <CAP>ag<SPACE>dx<SPACE>ag<SPACE>dx<SPACE>ag<SPACE>dx

那么字符串就是ag dx ag dx ag dx
看到ag dx想到adfgx密码,根据编码表

A D F G X
----------------
A | p h q g m
D | e a y n o
F | f d x k r
G | c v s z w
X | b u t i/j l

然后得到gogogo字符串,同时结合未使用的图片,那么gogogo应该是一个密码
jpg隐写主要有jsteg、steghide、outguess
通过提示发现是outguess密码

┌──(root㉿kali)-[~/Desktop/MISC]
└─# outguess -k gogogo -r mi.jpg -t out
Reading mi.jpg....
Extracting usable bits:   43231 bits
Steg retrieve: seed: 118, len: 28

┌──(root㉿kali)-[~/Desktop/MISC]
└─# cat out
flag{Out9uEsS_1s_V4rY_e4sy}

3、[SWPU 2019]easyapp

题目下载之后是一个apk文件,然后通过jadx打开文件之后发现
在这里插入图片描述
然后再com.example.ndktest2包中的MainActivity中导入了native-lib文件,同时会判断输入的字符串和Encrypt是否一致,然后通过JEB3将lib.so文件导出

在这里插入图片描述
然后通过ida将lib.so文件打开

在这里插入图片描述
然后发现flag字样的内容,将字符串拼接之后发现提交不对

然后通过后来搜索test字符串发现test函数

在这里插入图片描述

发现特殊的函数名Aa aA aa AA,然后追踪过去发现

在这里插入图片描述

通过大厨异或得到uoY

在这里插入图片描述

然后将其他三个函数同样计算后发现

uoY era eht B3ST
想到数值的大小端问题,将前面的三个字符串逆转,拼接后得到
YouaretheB3ST

提交YouaretheB3ST

在这里插入图片描述

这个题目还有一种解法就是hook 加密算法,然后通过加密算法的返回值得到flag

首先打开夜神模拟器,然后通过adb连接进行连接

在这里插入图片描述

everything搜索adb.exe

adb connect 127.0.0.1:62001
   already connected to 127.0.0.1:62001 连接成功
adb shell 进入shell模式
cd data/local/tmp/
./frida-server-15.1.13-android-x86 运行firda程序

然后通过objection自动搜寻app并进行转入,然后hook程序执行

objection -g com.example.ndktest2 explore
objection -g 程序包 explore

hook关键函数函数

android hooking watch class_method com.example.ndktest2.MainActivity.Encrypt --dump-args --dump-backtrace --dump-return

android hooking watch class_method com.example.ndktest2.MainActivity.Encrypt(类名称) --dump-args --dump-backtrace --dump-return

在这里插入图片描述

然后就可以得到返回值

同时还可以主动调用函数输出结果

android heap search instances com.example.ndktest2.MainActivity #搜索类名,获得hashid

Class instance enumeration complete for com.example.ndktest2.MainActivity
 Hashcode  Class                              toString()
---------  ---------------------------------  -----------------------------------------
262889158  com.example.ndktest2.MainActivity  com.example.ndktest2.MainActivity@fab5ec6

android heap execute 262889158 Encrypt 执行类中的函数


com.example.ndktest2 on (samsung: 7.1.2) [usb] # android heap execute 262889158 Encrypt
Handle 262889158 is to class
        com.example.ndktest2.MainActivity
Executing method: Encrypt()
(agent) [821992] Called com.example.ndktest2.MainActivity.Encrypt()
(agent) [821992] Backtrace:
        com.example.ndktest2.MainActivity.Encrypt(Native Method)

(agent) [821992] Return Value: YouaretheB3ST
YouaretheB3ST
com.example.ndktest2 on (samsung: 7.1.2) [usb] #

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值