NewStarCTF2023复盘WP
NewStarCTF2023复盘WP
hihopkcWEEK3|MISC
2-分析
但你心中仍然有一种不祥的预感,这时你的同事告诉你这台服务器已经被攻击者获取到了权限,需要你尽快去还原攻击者的攻击路径,调查清楚攻击者是如何获取到服务器权限的。
FLAG格式flag{md5(攻击者登录使用的用户名_存在漏洞的文件名_WebShell文件名)}
例如flag{testuser_123.php_shell.php},将括号内的内容进行md5编码得到flag{58aec571c731faae1369b461d3927596}即为需要提交的Flag
考点:HTTP流量分析、简单溯源
FLAG:flag{4069afd7089f7363198d899385ad688b}
解题步骤
flag由三个信息构成:登录用户名、存在漏洞的文件名、写入的WebShell文件名。
根据我们的常识,一般登录请求都是POST方式的请求,因此可以先过滤出所有的POST请求:
1 | http && http.request.method == POST |
可以看到有一个发送给/api/action/login.php的POST请求中有username和password字段:
由此推断出登录的用户名为best_admin。
其次是存在漏洞的文件名和WebShell文件名,可以看到有大量的目录扫描流量,先使用WireShark过滤器过滤掉响应状态码为404的响应:
1 | http && http.response.code != 404 |
对剩下的流量进行分析,关注到1267号流量响应比较奇怪
由此可以得到剩下的两个信息,index.php文件的page参数存在任意文件包含漏洞,攻击者通过这个漏洞包含pearcmd.php向服务器中写入了名为wh1t3g0d.php的WebShell。
而后续的流量也可以看到攻击者是利用wh1t3g0d.php这个Shell执行了一些系统命令
由此得到Flag明文:best_admin_index.php_wh1t3g0d.php
整体md5后包裹flag{}得到最终flag:flag{4069afd7089f7363198d899385ad688b}
键盘侠
如果我是键盘侠,你又该如何应对呢
考点:USB键盘流量分析
FLAG:flag{9919aeb2-a450-2f5f-7bfc-89df4bfa8584}
解题步骤
打开题目发现是USB流量,结合题目名猜测是键盘流量,使用WireShark过滤器过滤出所有的键盘流量,然后导出保存为res.pcapng:
1 | usb.src =="1.15.1" |
使用tshark命令对流量数据进行提取并去除空行:
1 | tshark -r res.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt |
导出后使用以下脚本进行按键信息提取:
1 | normalKeys = { |
得到如下结果:
1 | nw3lc0m3<SPACE>to<SPACE>newstar<SPACE>ctf<SPACE>2023<SPACE>flag<SPACE>is<SPACE>here<SPACE>vvvvbaaaasffjjwwwwrrissgggjjaaasdddduuwwwwwwwwiiihhddddddgggjjjjjaa1112333888888<ESC><ESC>2hhxgbffffbbbnnat<CAP><CAP>ff<DEL>lll<DEL><DEL>aaa<DEL><DEL>gggg<DEL><DEL><DEL>{999<DEL><DEL>999<DEL><DEL>11<DEL>9aaa<DEL><DEL><SPACE><SPACE><DEL><DEL>eb2---<DEL><DEL>a450---<DEL><DEL>2f5f<SPACE><SPACE><SPACE><DEL><DEL><DEL>--<DEL>7bfc[unknown][unknown][unknown]-8989<DEL><DEL>dfdf<DEL><DEL>4bfa4bfa<DEL><DEL><DEL><DEL>85848584}}}<DEL><DEL><DEL><DEL><DEL><DEL><DEL>}]<SPACE><SPACE><SPACE><SPACE>nice<SPACE>work!1yyoou<SPACE>ggot<SPACE>tthhis<SPACE>fllag |
<DEL>表示删除,<SPACE>表示空格,根据这个按键顺序对数据进行处理后得到flag:
flag{9919aeb2-a450-2f5f-7bfc-89df4bfa8584}
WEEK4|MISC
第一次取证
考点:内存取证
FLAG:flag{a308067fc26625d31a421247adce3893}
解题步骤
下载附件使用volatility获取信息:
1 | volatility -f ./dycqz.raw imageinfo |
1 | Volatility Foundation Volatility Framework 2.6.1 |
查看内存进程列表:
1 | volatility -f ./dycqz.raw --profile=Win7SP1x64 pslist |
查看notepad进程:
1 | volatility -f ./dycqz.raw --profile=Win7SP1x64 editbox |
得到一串密文:
1 | @iH<,{BTrI;(N[`j&z+xcj9XE2!u/YbR:4gb2+ceDJs@u6P |
base91解码: ★ flag{a308067fc26625d31a421247adce3893}
WEEK5|MISC
新建Python文件
考点:pyc剑龙隐写
FLAG:flag{s0_b4By_pYcst3g}
解题步骤
pyc文件隐写很容易就能找到stegosaurus项目:https://github.com/AngelKitty/stegosaurus
需要注意的是这个项目对于环境要求比较离谱,尽量用Python3.6去运行,起一个Docker就行。
直接提取隐写数据即可:
1 | python3 stegosaurus/stegosaurus.py -x flag.pyc |
ezhard
第一次磁盘取证
考点:磁盘取证
解题步骤
拿到文件之后发现是硬盘格式文件
新建目录 挂载
flag{12bc2ba3-fa54-7b45-7f3d-f54ea6e45d7c}
Enigma
不做Sigma CTFer,要做Enigma CTFer. FLAG内容由大写字母构成,需要自行包裹flag{}
1 | from enigma.machine import EnigmaMachine |
其中我们未知的加密参数有reflector、rotors和rs1、rs2
大概了解一下这个类库就能知道这几个参数的取值范围,编写脚本爆破
1 | from enigma.machine import EnigmaMachinere |
半分钟就能得到Flag:
1 | FLAGISENIGMAISSOOOINTERESTINGCRYPTODOYOUTHINKSO II IV VII C-Thin |
包裹flag{}得到Flag:flag{ENIGMAISSOOOINTERESTINGCRYPTODOYOUTHINKSO}
官方writeup
《NewStarCTF 2023 Week1 官方WriteUp》
https://shimo.im/docs/XKq421EBKzFyRzAN/
《NewStarCTF 2023 Week2 官方WriteUp》
https://shimo.im/docs/Dy5ekHJhKo0ap5v3/
《NewStarCTF 2023 Week3 官方WriteUp》
https://shimo.im/docs/QPMRxzGktzsZnzhz
《NewStarCTF 2023 Week4 官方WriteUp》
https://shimo.im/docs/gXqmdVvbOEsXpo3o/
《NewStarCTF 2023 Week5 官方WriteUp》
https://shimo.im/docs/R3sGgZdrlyE6nL8T/