攻防世界misc+ crypto+pycharm遇到的一些问题
先说明一下吧,最近事情多学的有点少,原因就不说了,现在差不多忙完了,时间安排正常,之前的节奏回来了
首先说一下pycharm上遇到的问题吧,也算对我之前的那篇安装博客进行一个补充。
之前的pycharm安装教程有一个致命的错误就是忘了配置环境变量,运行起来问题一堆。现在补充一下配置环境变量的方法。
右键点击"计算机",然后点击"属性"
1找到我的电脑,右击,属性
2然后点击"高级系统设置"
3选择"系统变量"窗口下面的"Path",双击即可!
4然后在"Path"行,添加python安装路径即可(我的D:\Python32),所以在后面,添加该路径即可。 ps:记住,路径直接用分号";“隔开!
5最后设置成功以后,在cmd命令行,输入命令"python”,就可以有相关显示。
如果忘了Python的安装路径也没事,win+r,输入where python
即可如图
可以看出我的在D:\Python32。
其实我有一点也不清楚,我没有设置环境变量,但我在pycharm,里手动选择了所以目前没有问题,可以正常使用。
做个猜测吧,如果不设置环境变量你创建new project的时候需要手动选择解释器版本,不过选择一次就好了。但是如果没有设置环境变量也没有手动选择解释器,那么vene文件夹就会是红色,并且代码无法正常运行。
我的锅,忘了这么重要的一个事。
misc
好了现在来说说攻防世界的题吧。
This is flag
第一题不说啥了,没啥说的。
划重点(必定图片下面放着东西),之后我们下载好附件,发现是一个pdf文件,无法直接移开图片,此时有两个思路,第一个是将它转换为word文档,我的有没免费次数限制。如果,没法转换还有另一个方法,选中照片,直接点复制选择内容,如果照片下面有文本的话就会复制的。之后我们就随便建个文本文档,粘贴。
如来13掌
只看题目就知道用root13
下载完,一看佛语:与佛论禅
这里要注意的是前边要加一个佛曰:
然后用root13解出得到flag。
give_you_flag
题目没有什么可以值得注意的提示,,我们下载附件,发现是个gif文件,先打开看看,,之后发现了个貌似二维码的东西一闪而过,,所以我们分解它,,打开我们的神器StegSolve进行逐帧分析。
其实如果没有SetgSlove可以直接解压到桌面,然后你桌面就会多五十多张照片,方法笨了点,但是也能搞。
可以发现二维码却了三个定位角
可以PS也可以用world覆盖,怎么方便怎么来
拼接完就是如图,扫码得flag
60S
游戏大佬能玩过去更好。我笨,所以java反编译,工具:Java Decompiler,附赠一篇下载博客https://blog.csdn.net/weixin_46047387/article/details/105731564
可以看到有flag了,而且是很明显,里面的内容是经过了base64加密的,所以我们去在线解密工具解密。
gif
让我们下载附件,,是个压缩包,解压后,有两个文件夹,,我们根据题目提示,打开gif的那个
黑白块,好吧我承认当时联想到了二进制,但是01判断错误,白是0黑是1.
01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101
然后找一个在线二进制转换就好了。
掀桌子
选看一下密码吧,没有什么标志性特点,无法判断属于那种密码,各种能想到的加密的方法都试着解了一下发现没有用。后来终于知道原来是两个一组转成二进制再转成ASCII码。
c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2
这里我也是用Python直接跑的脚本。得到flag
stegano
附件下载完打开就是这样,全选复制粘贴到记事本上
发现AB字符串,不是培根就是摩斯密码,-.-. — -. --. .-. .- - …- .-… .- - … — -. … --…-- …-. .-… .- --. —… .---- -. …- .---- … .---- -… .-… …-- – …-- … … …- --. …–
转换后得到
SimpleRAR
下载附件,是一个rar压缩包,里面只有一个txt文件,用winhex打开,确实什么都没有。
那就是压缩包有问题了,用winhex打开rar压缩包,发现压缩包里面应该还有一个secret.png的图片,因为某种原因没有显示出来。
因为压缩包可以显示txt文件,不能显示png文件,所以我认为问题一定出在两个文件之间,也就是这个范围:
在网上查了一下rar的文件格式,发现rar 文件块的开头是 A8 3C 74,字块的开头是A8 3C 7A,我们需要文件块而不是子块,于是更改 A8 3C 7A 为 A8 3C 74 ,保存后再次打开压缩文件,发现图片出来了:
但是打开图片,是一片空白,于是用winhex打开看看哪点有问题,发现文件头是GIF文件的文件头
然后将两个图片分别放入StegSolve中,发现图片中隐藏的信息,是两段二维码
将两段二维码连接起来,然后再添加定位符进行修补,最后得到一个完整的二维码:
flag{yanji4n_bu_we1shi}
base64stego
下载附件,里面是一个txt文件,发现里面有很多的base64编码
然后直接到解码网站去解密一下:https://www.qqxiuzi.cn/bianma/base64.htm
得到了一大段英文,去翻译一下:
好家伙,这是在给我科普隐写术呢,从头看到尾,发现没有什么问题。
然后搜索一下BASE64解密,发现有一种专门用这种大量的BASE64编码的加密形式,加密的原理运用了BASE64的加密解密原理
然后利用这一原理,我们写个脚本,进行解密(我在网上找的脚本)
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
flag = ''
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
offset = abs(b64chars.index(stegb64.replace('=', '')[-1]) - b64chars.index(rowb64.replace('=', '')[-1]))
equalnum = stegb64.count('=') # no equalnum no offset
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)
#flag += chr(int(bin(offset)[2:].zfill(equalnum * 2), 2))
#print(flag) #这样写得不出正确结果
print([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])
得到下图
拼起来就是flag。
ext3
下载附件,是一个没有后缀的文件,还挺大,十几兆的,放进winhex,试着 Ctrl+F查询一下flag,发现了一个flag.txt文件。
然后给这个文件加上.zip后缀,可以看到里面有很多文件:
如果不知道里面有个名叫flag.txt的文件的话,在这里面要找半天,我们已经知道里面有个叫flag.txt的文件了,直接在右上角使用文件搜索,直接找到flag.txt
试着去BASE64解码,直接得到flag,有点出乎意料
功夫再高也怕菜刀
下载附件,是一个后缀为pcapng的文件,也不知道是什么文件,查了一下也不是很明白,差不多是一个流量包文件,应该是需要用wireshark进行流量分析的
我们先用binwalk看看里面有没有包含东西:
可以看到里面有个zip文件还有flag.txt,于是我们使用foremost分解一下,分离出来一个带密码的zip文件:
我们手里只有之前附件里的那一个文件,所以密码也只能从那个文件里获取,之前提到可能要用到wireshark,于是用wireshark打开附件,尝试着用Ctrl+F查找flag字符串(注意选择分组字节流)
总共有八个字节流都含有flag字符串,每个都打开对比一下,发现只有第1150个字节流多了个6666.jpg文件,其他七个只有其他三个文件,于是将目标锁定在6666.jpg文件。
在第1150字节流的地方点击右键,选择追踪流,选择TCP流
然后在流量中发现了FFD8FF,要对这段十六进制数敏感一点,这是jpg文件的文件头,然后再看看最后,果然是jpg文件的文件尾FFD9,于是将FFD8FF到FFD9复制,粘贴到一个十六进制编译器中,我这里用的是C32Asm(winhex应该也可以,但是不知道怎么的我没弄好),保存生成一个jpg图片:
将图片里的字符串作为密码输入之前加密的压缩包中,成功打开flag.txt文件,得到flag!
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
crypto的下一篇在写