攻防世界XCTF-WEB篇

新手练习区 Exercise area

001 view_source

001-001

启动容器,出现FLAG is not here字样,按下F12,即可拿到flag值
001-002

002 robots

002-001

此题涉及到Robots协议,该协议位于robots.txt,Robots协议可以理解为web和搜索引擎爬虫之间的协议,用于限制爬虫可爬取的内容

启动容器之发现一片空白,我们在url后面补充上robots.txt
002-002

可以看到在Disallow后有一个名为f1ag_1s_h3re.php的文件,我们直接访问该文件即可拿到flag值
002-003

003 backup

003-001

此题为备份漏洞,在启动容器之后,页面显示
003-002

一般备份文件的后缀名都为.bak,此处我们在其url后添加index.php.bak,即可下载index.php的备份文件
003-003

打开下载的备份文件,即可拿到flag值
003-004

004 cookie

004-001

该题涉及到cookiecookie为网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据

在启动容器之后,打开F12(开发人员工具),可以看到一些隐藏信息
004-002

由此可知,我们想要的信息应该是藏在一个名为cookie.php的文件里,我们访问这个文件
004-003

页面上提示See the http response,让我们查看网页的响应头,在F12的网络下查看,即可拿到flag值
004-004

005 disabled_button

005-001

在启动容器之后,出现了一个flag的按钮,但是这个按钮并不能点下去,由此可以判断出是js的问题,打开F12
005-002

disabled导致此按钮不能互动,将其删除即可点击按钮拿到flag值
005-003

006 weak_auth

006-001

打开之后是一个登录验证页面,我们随便输入一组用户名和密码来登录,会提示使用admin账户登录,同时,url也跳转至check.php
006-002

打开F12之后,发现有一行注释上面写着"可能你需要一个字典",这是很明显的暗示我们要通过爆破的方式来获取密码
006-003

打开Burp Suite进行爆破
006-004

username改为adminpassword后面的设为变量进行爆破
006-005

当密码为123456的时候,长度不同,由此可以判断出,该账户用户名为admin,密码为123456,登录进去即可拿到flag值
006-006

007 simple_php

007-001

打开页面可以看到几行PHP代码,先进行代码审计

007-002

由此可见,通过get请求来获取ab,当a=0和有a同时满足时,能得到flag1,当b为数字时,程序会结束,当b>1234时,能得到flag2,所以对于参数b,我们需要绕过第二个函数,我们开始构造参数/?a=0,a&b=4321a
007-003

008 get_post

008-001

打开页面之后
008-002

我们用get方式提交值为1的变量a
008-003

我们再用post方式提交值为2的变量b
008-004

成功拿到flag值

009 xff_referer

009-001

打开页面之后,提示以下信息
009-001

我们需要对IP地址进行伪造,打开Burp Suite,进行抓包拦截
Repeater板块中,添加X-Forwarded-For(XFF),值为123.123.123.123,执行之后提示以下内容
009-002

再添加Referer,值为https://www.google.com,成功拿到flag值
009-003