Welcome
题目描述
每次接待重要人物来访,金融技术部的小张都会准备一个欢迎来访的横幅挂在楼前。某日一位安全专家来访,横幅的内容却是一串数字,你能猜透这个横幅的含义吗?
102 108 97 103 123 119 101 108 99 48 109 101 95 50 95 67 84 70 45
119 111 114 108 100 125
解题方法
此题为签到题,对题目中的数字进行ASC II码转换即可得到flag:
flag{welc0me_2_C TF-world}
docx
题目描述
金融系统中的保密要求一向以严格著称。近日,大楼保安抓到了一个疑似通过 U 盘窃取数据的外来者。可是查找 U 盘之后,内部只有一个公开文档信息安全技术金融信息保护规范.docx。被抓到的可疑人员坚称自己没有偷走数据,作为安全专家的你能帮助保安确认到底有没有数据泄漏的可能吗?
解题方法
docx实际上是一种打包了多个文件的容器格式,现有的很多解压缩软件例如WinZip、WinRAR、7zip都能解开它,解开后我们就能看到里面包含了一个名字为 flag{maybe_docx_is_a_structured_file(s)} 的文件。
USB
题目描述
安全评测人员在对某银行卡密码输入系统进行渗透测试的过程中,截获了一段通过USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB 设备的流量,你能从中恢复出6位数字密码吗?
*最终提交的flag格式为flag{6位数字密码}。
解题方法
使用Wireshark打开流量,可以看到其中主要有有两种USB通信流量: USB端点1.9.1和host之间的,以及USB端点1.10.1和host之间的。其中,1.9.1 的流量少一些,可以判断为USB键盘;数据多很多的1.10.1可以猜测为USB鼠标数据。因此我们重点来看一下从USB端点1.9.1发送的数据。
通过在Wireshark中设置Filter: usb.src == “1.9.1”,可以看到从键盘往主机依次发送的数据。仔细观察数据之间的变化,我们不难找到键盘发送的扫描码,例如下图中第一个数据包中的键盘扫描码为0x24。
我们将所有的扫描码找出来,依次是:
24 1f 27 27 2a 22 20 2a 26 20 28
网上可以找到键盘扫描码对照表,如下所示:
我们可以还原出最终的键盘按键序列:<7> <2> <0> <0> <5> <3> <9>
<3>。从中不难得出密码为720593,因此最终flag为:flag{720593}。
Client
题目描述
如果针对金融机构内部管理客户端做安全测试,客户端登陆需要口令,你能破译嘛?
解题方法
题目附件提供的是一个Windows图形界面程序,很明显需要通过逆向分析来找到程序的用户名和密码,如下图所示:
用IDA打开程序,首先在Strings窗口中能找到一系列关键的字符串。
通过交叉引用可以定位到登陆成功后打印flag的函数sub_401090,继续往上跟,可以找到点击了确认按钮之后,程序用来检查用户名和密码的代码DialogFunc。
仔细阅读代码,可以分析出以下逻辑: 用户名必须为explorer 密码长度为30位密码由”welcome_to_th“和”e_world_of_binary“拼接而成。然后使用分析得到的账号登陆,即可看到flag如下:
2048
题目描述
你一定玩过2048这个游戏吧!二二得四,四四得八,八八得十六 让人
想到复利的力量,你能通关吗?
解题方法
题目的附件给了一个安卓应用的APK文件,安装运行后界面如下:
很明显是一个游戏题,2048是一个比较有名的小游戏,玩法是相同数字方块相加,最终得到和为2048即可过关。把apk拖进jeb等工具中,发现该应用为纯Java应用,代码量不多也不少。通常来说,字符串是个很好的入口:
可以注意到由一个比较关键的 “You Win!” 的字符串,进一步去找一下对you_win的引用:
跟进去第一个引用的函数:
分析发现如果第二个参数z为true就触发了绘制you_win字符串(其实上图中有一个Base64编码的字符串,进行解码会得到的字符串就是flag,因为该字
符串首先被编码了,然后根据逻辑也能大概猜出是和you_win字符串相关的, 有很大的几率是flag,猜测是快速解题的一种方式。
查找对createEndGameStates函数的引用:
找到满足要求的函数createOverlays
注意这里:
this.winGameContinueOverlay = new BitmapDrawable(resources, createBitmap); 查看对winGameContinueOverlay的引用:
分析到这里,发现是在这个函数内绘制的,触发条件是
this.game.gameWon()
到这里可以直接修改smali返回true,或者hook返回值。
重打包,签名,安装,运行: