夏令营write up

pwn1

简单的栈溢出问题
夏令营write up_第1张图片可以看出buf的位置可能存在溢出
夏令营write up_第2张图片

pwn2

夏令营write up_第3张图片这道题目和level3非常的相似,查询保护checksec只开启了NX保护 很明显的栈溢出漏洞,但是没有system函数和/bin/sh字符串了

libc是Linux下的ANSI C的函数库。ANSIC是基本的C语言函数库,包含了C语言最基本的库函数。程序开始运行时,会把整个libc映射到内存中,此后在程序调用相关库函数时,会依据plt-got表的机制,将所需的库函数加载到内存空间的某个虚拟内存地址,然后调用时就会通过plt_got表辗转跳至真正的函数内存地址处完成功能

夏令营write up_第4张图片这道题目卡了很久一直没办法解决的原因竟然是接收处错了!!!在这里插入图片描述
这是什么令人难受的事情,自闭了。

Web easy audit1

https://blog.csdn.net/qq_41575340/article/details/90929634
夏令营write up_第5张图片
代码审计一下,发现:利用get传递四个参数,分别为a1,a2,a3,a4。
其中$obstacle_1=is_numeric($a2) and is_numeric($a1);a1,a2必须为数字,也可以通过 a1[]=3绕过
对a2的限制:if(!(intval($a2)<1024 and intval($a2+1)>1024)) exit("emmmmm"); 可以通过16进制或者科学记数法进行绕过
a3必须等于hash_hmac(sha256,$a2,$secret);
通过查阅资料发现hash_hmac()函数,如果加密的是一个数组则会返回false
通过控制a1的值,我们可以让secret为空,那么‘secret为空,那么‘hmac`就可以控制了。
payload:

?a1[]=1&a2=1e9&a3=ccb3fd8a1db86958d3b3551964d5948dd90d002e8bc80077e951fbbeec9de120

这样就得到flag了

MISC

这部分前五道题都很简单,最后一道不会写

REVERSE2

这里要用到pyc在线反编译https://tool.lu/pyc/工具

夏令营write up_第6张图片
如下就是反编译脚本

#!/usr/bin/env python
#encoding: utf-8
import base64
buf = base64.b64decode(‘dIJ/gINrYGlTj1ljj2Nfj2NdWWBcVW0=’) flag = ‘’
for i in buf:
i -= 16
i ^= 32
flag += chr(i)

print(flag)

所以这道题目就到了flag

CRYPTO baby’s baby rsa

这道题目是RSA密码攻击首先我们要了解基本的rsa攻击方法

使用公钥加密的数据,利用私钥进行解密
使用私钥加密的数据,利用公钥进行解密

这道题目比较简单是因为公钥和私钥都已经给出来了,所以我们还可以直接笔算得出答案
夏令营write up_第7张图片

你可能感兴趣的:(ctf)