查看原文
其他

2019KCTF 晋级赛Q1 | 第一题点评及解题思路

小雪 看雪学院 2019-05-25

历时14天的看雪CTF晋级赛Q1已经结束,名次也于昨日公布:英雄榜 | 2019 看雪CTF 晋级赛Q1 排行榜出炉!

相信很多小伙伴对比赛中出现的题目想有一个更深入的了解与探讨,那么接下来的几天,我们将对这些题目进行一些点评与破解思路的讨论,也希望有更多的人在公众号下方,或者论坛进行一些互动与交流。



首先是第一题“流浪者”,出题战队是Vagaeth,这道题目围观人数达到了5499人,这个只有一人组成的战队所出的题目,让大家产生了浓厚的兴趣。



看雪ID:Vagaeth

https://bbs.pediy.com/user-722186.htm 



看雪CTF评委 crownless 点评

 

《流浪者》此题总体来说比较简单,程序逻辑不复杂,也没有加壳保护。可以通过使用IDA的查看所有字符串的功能快速定位关键字符串,再依此找到关键程序逻辑,此题就能迎刃而解。

 


题目设计思路


根据密文KanXueCTF2019JustForhappy  每个字符在其字典abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ里的下标  和明文 W4p2Cq4TCj0rXI4bH5ustz 在其字典0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ里面的下标相同来进行算法验证破解先求出密文在其字典里的下标  然后根据下标在明文的字典里取字符即可得到答案:

=>j0rXI4bTeustBiIGHeCF70DDM

 

 

题目破解思路


这道题目破解思路由看雪ID:深天深天 提供



1. 首先先双击运行程序看看~  


可以获得相关字符串




2. 然后丢入ida里(32位)


通过查找字符串可以看到pass,双击进去,一步一步可以找到源码,






3. 用F5大法


可以看到MessageBox,这里是输入内容成功返回的地方,按x返回上一步看看是谁调用了它~



然后得到以下关键,可以知道代码段,对输入内容做变形处理后,如果字符串等于KanXueCTF2019JustForhappy,就可成功pass




4. 简单来说,变形就是一个替换算法:


abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

上下一一对应,这样只要根据"KanXueCTF2019JustForhappy"反推输入即可。


5. 脚本如下


#!/usr/bin/python
str1='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
str2='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
enc='KanXueCTF2019JustForhappy'
flag=""

list1=list(str1)
list2=list(str2)
list3=list(enc)

i = 0
while i < len(list3):
flag+=list2[list1.index(list3[i])]
i+=1
print(flag)
#j0rXI4bTeustBiIGHeCF70DDM



明天我们将对题目“变形金钢”进行分析与讨论,感兴趣的小伙伴记得不要错过,准时守住我们的公众号更新哦~




- End -



推荐图书

,立即购买~



往期文章一览

1、FastHook——远超YAHFA的优异稳定性

2、【走进企业看安全】第18站 娜迦信息,圆满落幕!

3、微软Chromium版Edge安装程序泄露




公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存