前言
打聊城的比赛,又白给了,拿了参与奖,做出来两个misc,剩下两个misc都做了快一半,没思路了,特来复现。
web
web1
打开之后是一个登陆页面,查看源码发现了测试账号test/test
查看robots.txt 发现php.php 发现是phpinfo。
登录之后发现可能存在LFI,然后上了下扫描器,扫到了一些文件,尝试包含info.php,得到源码,然后发现了include了template/info.html,于是访问。查看源码发现了hint m4nageee.php。然后读manage的源码,在源码中发现包含了2333.html,于是访问。
查看源码时发现了php代码,尝试PHP session文件包含。
但是需要session的存放位置,于是通过扫描到的php.php查看session日志的存放位置/var/lib/php5,遂包含之。
在m4nageee里面写nickname到session文件里面,利用LFI包含getshell。
当前我的phpsessid为0u335c2ud2h9gjq0lq6nos1i72
所以session文件就是/var/lib/php5/sess_0u335c2ud2h9gjq0lq6nos1i72,包含即可。
nikename里面写
1 | "cat fla*"); system( |
web2 web3
题目提示使用sqlmap注入,但是我注入巨拉跨。。而且数据库是sqlite的,我只会一点mysql的注入。。当时没做出来,赛后复现下。
这题是使用cookie注入。我明确地知道自己不会用sqlmap进行cookie注入。
不会 跟官方的思路没复现出来,等wp。
这里放下济大师傅的web2 web3的payload:
Cookie: PHPSESSID=da55nb2kgsge2luvc5m53k5r90; username=test; password=test’ OR 1=1 LIMIT 1 OFFSET 1 –
password=test’ OR 1=1 LIMIT 1 OFFSET 1 – ; userinfo=eyJ1c2VybmFtZSI6InRlc3QiLCJwYXNzd29yZCI6InRlc3QnIE9SIDE9MSBMSU1JVCAxIE9GRlNFVCAxIC0tICJ9Cg%3D%3D
misc
ez_decode
简单的编码转换:
1 | 666c61677b66396466353430313030383362306631663233613365616563633564356137637d |
html实体编码->hexo2string->flag
flag{f9df54010083b0f1f23a3eaecc5d5a7c}
qr_code:
打开很多二维码,盲猜扫出来内容转0和1
比赛的时候有个简单的读二维码的工具,但是批量不会写脚本。。就读了两个,看哪个是0哪个是1,然后bin2ascii就可以了。
用脚本的做法:
1 | # -*-coding:utf8 -*- |
flag{duyoulikeit}
relax
打开是个.flag结尾的文件,丢进010editor看见是PK开头,考虑zip,解压出来一个flag.txt 一个音频。
flagtxt里面的base64解出来啥也不是,于是继续看音频。
考虑音频隐写,在文件详细信息里面发现了一串base64,解码后打开mp3stego,输入这个密码,得到了一串fakeflag:
fakeflag{same_length_with_true_flaghh}
和真的长的一样呢,真真假假
后面就没思路了。
后来看师傅的wp说需要讲该字符串与之前解出来啥也不是的base64异或就可以得到flag。草。
上脚本:
1 | import base64 |
这里需要注意的是:encode()方法是str类型提供的,将其转换为byte类型。decode()方法是将byte类型转化为str类型。之前我都是出错了就直接瞎encode,decode,咋对咋弄。。今天终于知道了。
flag:flag{9ff3a239027a7089237686b384862d33}
base64
base64套娃,光想着basecrack,结果直接卡死。。就是没想起来自己写脚本。
附上hxd的脚本
1 | import base64 |
flag:flag{4b057431c3ee0c4f56d4dad18c352375}