前言
睡过了忘记了,起来都快结束了,就简单做了下取证还没做完(,赶紧来复现下。
basic_check
这题出的好,考察了http协议的知识,我都忘光了都,也提醒自己基础一定要扎实。
进入网页约等于啥都没有:
1 | <?php highlight_file(__FILE__);// Welcome to NSSCTF Round#1 Basic, have fun. |
这里要用到OPTIONS请求方法查看允许的请求方式:
发现PUT方法,那么就简单了,我们只需要PUT进一个一句马即可:
获取webshell:
根目录读取flag即可。
sql_by_sql
进去发现注册登录,盲猜二次注入,我们先随便注册然后登录,发现可以修改密码,我们在修改密码的页面的源码中发现了sql语句:
1 | update user set password='%s' where username='%s'; |
确实是二次注入,我们只需要注册一个账户名为admin'--+
的用户,结合sql语句就可以做到改admin
的密码。
因此更改admin密码登录,登陆后发现可以查询用户id,这里根据用户是否存在存在一个布尔盲注。
根据fuzz判断这里不是mysql,应该是sqlite注入,exp:
1 | import requests |
这题主要是初识sqlite了,不过大体上和mysql也是相差不大,主要是一些函数的区别吧。
cut_into_thirds
取证题,其实难度不高,但是因为我的工具没法装mimikatz插件就很淦,后来用了另一个工具把第三部分密码爆出来的。
整体思路就是filescan找到LookAtMe.zip,解压得到第一部分:
1 | part1:3930653363343839 |
接着pslist查运行程序,发现LookAtme.exe,dump下来strings找到第二部分:
1 | part2:GRRGGYJNGQ4GKMBNMJRTONI= |
最后一个部分藏在ctf用户的密码中,没有插件就用Passware Kit Forensic一把嗦,找到第三部分:
1 | part3:MTEwOTFmNWI3ZTNh |
分别解码base16、base32、base64即可。