2.17寒假作业
web:[GDOUCTF 2023]hate eat snake
打开时一个贪吃蛇游戏,想看源码发现F12被禁用了,直接用火狐打开,打开开发者工具,显然去源码改时行不通的,这题也不知道代码执行是前置还是后置,并且题目页面也没有提示分数设置的变量名是什么,也没有说要达到多少分才可以,还是看看有没有执行打印flag的语句,或者从js代码中找一下分数的变量名和要达到的值
分析js代码,找到控制分数变量与控制输出的语句
直接在82至85之间打断点,然后去控制台设置score>1000的任意数字即可
pwn:[HNCTF 2022 Week1]ezr0p32
查壳,ida
看主要函数
声明buf28字节,后面设置两次read读取256和48个字节给buf,显然是溢出点,找后门函数,找不到bin/sh,只有system(),应该又是要自己写一个,按照溢出点,直接找buf的地址如果在bss段,那就可以写在buf上面
确实是在bss段,看system函数地址
但是又两个溢出点,要把payload发在哪里呢,自己按照之前去写脚本解不出来,看一下wp,发现是有很多学问的
首先构造bin/的地址和system函数数没问题的,主要是payload要发在哪里,还有p32的传参规则,32位参数放在栈上,需要我们构造,需要注意的是,参数不应直接跟在函数(目标函数地址)后面,而应该空开一个字,这是因为调用函数时,参数和函数返回地址被同时压入栈中,而空开的字就是函数执行后返回的位置,简单来说传参要system + 垃圾数据 + bin/sh/,还有其实system函数的地址有很多个,但是构造payload要在plt段上plt段特性。plt段可用于调用函数
接下来是要怎么发payload,这里两个buf是有区别的,一个buf在nss段适合来构造bin/sh,另一个则不在
misc:攻防世界catcatcat
给了一张图片和一个密文,看密文想不到什么加密方式
回去看图片,用010分析不出什么东西,直接记事本打开搜索一下还真的找到类似的字样,给的提示是密码,所以现在就是要找加密方式了
返回i看到文档的名字,找一下有没有相关的加密方式
解密出来的明文也看不出来什么
末尾又=倒是i想到base64,结合题目的91,尝试base91解密,解密出来的明文
继续找加密方法,找不到了,但是这个明文和ook加密很像尝试替换字符,进行解密
用bugku的解密还失败了后面换了给网站解密成功
crypto:攻防世界告诉你个秘密
打开文件,密文像是十六进制字符串
转换
转换之后也没什么提示,然后密文也看不出来什么,算一下字数为48位,尝试base64,解密得到这个
这个真的看不出来什么加密了,去看wp知道是键盘密码,之前也遇到过叫kayboard cipher称为关键字密码,要密钥的,另一个则是类似代换密码,键盘上每一个键对应一个字符,又去解密半天都解不出来,这个密码是空格隔开的一组一组的,每三个或者四个字母在键盘上围起来的那个键上的字符就是明文想这一题的明文就是tongyuan,就是答案
reserve:攻防世界Mine-
查壳,ida
看主函数,仔细找一下加密过程
追踪pause可以找到密文
全部的代码太长也太花了,看了半天要理解起来很久,看一下猜一下,并不是都是加密的过程,前面可能是程序运行的过程,就是web里的js码一样,真正的加密过程可能有一两段,尝试之后加密过程是最后这一个循环
注意分清楚我们要求的是v6,这里简化一下,密文就是a,v16就是密文字符串的长度
写脚本得到答案
是错的...,我已经没思路了,看了wp才知道这是一个base58加密,也没给提示啊,怎么想到的