CTF攻防世界web初级区详解

最近几天刚刚接触了ctf,去尝试了一下攻防世界web区的新手篇题目,以下解题过程记录一下自己的学习体会与心得,如果哪里有错可以在评论区告诉我,我及时改正。

1.view_source

在这里插入图片描述

1.1获取场景后:

在这里插入图片描述

1.2根据题目要求,我们需要查看网页源代码,打开方式一种是鼠标右键打开,一种是按F12键,题目规定无法右键,所以我们按F12打开,如图:

在这里插入图片描述

1.3第二种解法:在其他网页打开源代码后把地址换成该网页地址,即view-source:后加上该网页地址,如图:

在这里插入图片描述

至此拿到flag,第一题完成

2.robots

题目如下:

在这里插入图片描述

2.1获取场景后:

在这里插入图片描述

2.2发现什么没有。。。这时候我们去查一下什么叫robots

如图:

在这里插入图片描述

2.3可以看出robots协议主要内容就是查看一个站点根目录是否存在robots.txt文件,我们尝试输入:

如图:

在这里插入图片描述

2.4发现成功进入后它提示我们flag在f1ag_1s_h3re.php这个文件中,进入后得到flag,如图:

在这里插入图片描述

2.5第二种解法:可以用御剑工具来扫描网站后台文件

如图:

在这里插入图片描述

2.6输入URL后查询,发现第一个就是关于robots文件,打开操作即可


3.backup

题目如下:

在这里插入图片描述

3.1获取场景后:

在这里插入图片描述


3.2我们先去网上查查index.php有什么备份文件名,通过度娘知道常见的备份文件后缀名有:“.git”、“.svn”、“.swp”,“.~”、“.bak”、“.bash_history”、“.bkf” 我们尝试在URL后面,依次输入常见的文件备份扩展名。

如图:

在这里插入图片描述

3.3发现只有index.php.bak是正确的,用记事本打开,得到flag

3.4第二种解法:仍然使用御剑扫描,如图:

在这里插入图片描述

3.5可以直接扫描出来,执行并得到flag


4.cookie

题目如下:

在这里插入图片描述

看到就知道很明显要考cookie的知识

4.1获取场景后:

在这里插入图片描述

4.2首先,我们先了解一下cookie的概念,Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息,简单来说就是储存在用户本地终端的数据

我们可以按F12查看网页的cookie信息,如图:

在这里插入图片描述

4.3我们可以通过网络中查看也可以直接从储存中查看到cookie,cookie中的信息让我们查看cookie.php,我们打开它,如图:

在这里插入图片描述


4.4提示我们查看http的头文件,打开头文件后,得到flag,如图:

在这里插入图片描述

4.5第二种解法:使用burp抓包实现,如图:

在这里插入图片描述


4.6查看到cookie信息为look-here=cookie.php ,再重发器中打开,输入cookie.php,如图:

在这里插入图片描述

得到flag,至此第四题完成

5.disabled_button:

题目如下:

在这里插入图片描述

5.1获取场景后:

在这里插入图片描述


5.2打开后我们发现有关flag的按钮无法点击,这时我们F12看一下该按钮的源代码,如图:

在这里插入图片描述

5.3可以看到该按钮不能点击是因为有disabled这个属性,我们直接给他删掉(亲测改成able也可以),毕竟前端的防护形同虚设,这时就可以点击了,拿到flag,如图:

在这里插入图片描述

第5题完成

6.weak_auth

题目如下:

在这里插入图片描述

6.1获取场景如下:

在这里插入图片描述

6.2我们随便输入看一下:

在这里插入图片描述

6.3它提示我们登陆账号为admin,我们账号输入admin,密码随机,再看一下结果:

在这里插入图片描述

6.4由此,我们想到暴力破解,打开burp,进行暴力破解,如图:

在这里插入图片描述


6.5发送给测试器,先清除所有变量,在添加密码为唯一变量,在添加密码字典,进行暴力破解,观察长度不一样的字段,如图:

在这里插入图片描述在这里插入图片描述


6.6得到密码为123456,输入后得到flag,如图:

在这里插入图片描述


至此,第六题完成

7.simple_php

题目如下:

在这里插入图片描述

7.1获取场景后:

在这里插入图片描述


7.2我们发现是一串PHP代码,简单阅读一下,show_source将该文件语法高亮显示(即用不同的颜色和文字显示关键字来增加可读性),include()即调用config.php这个文件,之后定义了两个变量a,b并规定以Get的形式提交,如果a==0且a为真(即bool返回值为1),输出flag1,然后判断b如果为数字则直接跳出,如果b>1234则输出flag2。我们首先发现,第一a和b的判断条件是冲突的,第二该页面没有让我们输入a和b的地方,我们一个一个来解决,第一个问题涉及到php弱类型比较的问题,解释如下:

掌握php弱类型比较
php中其中两种比较符号:
==:先将字符串类型转化成相同,再比较
===:先判断两种字符串的类型是否相等,再比较
字符串和数字比较使用==时,字符串会先转换为数字类型再比较
var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
var_dump('123a' == 123);//true,这里'123a'会被转换为123

var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
举例:
var_dump('123a1' == 123);//true
var_dump('1233a' == 123);//flase

所以我们可以将a=0dd,b=123245d,规避掉检测

7.3第二个问题,如何提交,因为该题的变量是以Get方式提交的,所以我们可以直接在URL后添加?a= &b= 提交(如果是post,下面一道例题会讲),如图:

在这里插入图片描述

7.4得到flag,至此第六题完成。

8.get_post

题目如下:

在这里插入图片描述

8.1看题目可知,本题考查的是http协议中常用的两种请求方法,Get和Post

获取场景如下:

在这里插入图片描述


8.2我们知道以Get方式提交的信息会暴露在URL上,所以我们直接在URL上写上?a=1,如图:

在这里插入图片描述


8.3题目提示我们接下来要以Post的形式提交一个b变量,但以Post提交的信息我们无法查看,这时我们就需要借助工具HackBar来完成(HackBar之后的SQL注入也会用到),如图:

在这里插入图片描述

8.4我们按F12打开HackBar先将该网页的URL加载(load)实行,然后点击下面的post data,并在对应的框中输入b=2,实行,如图:

在这里插入图片描述


8.5第二种解法,用burp抓包实现,如图:

在这里插入图片描述


8.6将数据包转到重发器加工,并在GET后提交?a=1,如图:

在这里插入图片描述


8.7这时我们右键选择变更请求方式,将GET改成POST,输入b=2(?a=1不能丢,要加回来),如图:

在这里插入图片描述


至此,拿到flag,第八题完成。

9.xff_referer

题目如下:

在这里插入图片描述

9.1我们看下题目描述: “X老师告诉小宁其实xff和referer是可以伪造的“ (az,作为一名菜鸟,我当时看是一脸懵逼的。。。),所以我们去度娘查一下什么是xff和referer,如图:

在这里插入图片描述

在这里插入图片描述


9.2看了之后,我们知道X-Forwarded-For是一个HTTP请求字段,作用是用来识别Web服务器的客户端原始IP的

而referer是HTTP协议中用来告诉服务器该网页是从哪个页面链接过来的;然后,我们进入题目:

在这里插入图片描述


9.3这正好和我们刚看的xff有关,我们只要让xff为123.123.123.123即可,我们可以用burp抓包修改它的参数,或在火狐下个插件:在这里插入图片描述

9.4如图(以burp展示):

在这里插入图片描述


其实也可以用上述提到的HacBar修改,但本人的HacBar过于垃圾,没有这个功能,就先不展示了。。

9.5之后提示我们必须来自https://www.google.com的请求,这正好与referer有关,抓包,修改,如图:

在这里插入图片描述


得到flag;

9.6这里有一个小问题,那就是在HTTP添加头字段时要空一格输出,并在输出完成后要回车两次才会生效;

并且这题也可以在HacBar中修改;如图:

在这里插入图片描述


至此,第九题完成。

10.webshell

题目如下:

在这里插入图片描述

10.1获取场景如下:

在这里插入图片描述


10.2webshell其实就是一句话木马,场景中这个是一个非常经典的一句话木马,我们来分析一下,@的作用是隐藏掉执行该代码的错误,eval则是会将字符串看做PHP语句来执行,信息以POST的形式提交,这在xss漏洞经常使用,当该漏洞成功提交后,我们就可以以POST的方式提交一些PHP代码,从而达到我们窃取信息的目的,比如:

在这里插入图片描述


10.3利用ls来查看后台所有的文件,我们看到了flag.txt,用cat将它提取出来,用到了Linux指令,如图:


在这里插入图片描述

flag就到手了,可见一句话木马是多么好用(觉醒了什么奇怪的属性 Σ( ° △ °|||)

10.4第二种解法:用到了后台管理工具AntSword(蚁剑),打开蚁剑,右键添加数据,输入网址和密码,测试链接,如图:

在这里插入图片描述


10.5链接成功后,添加,打开后看到flag.txt,点开得到flag(图形化管理整的是方便啊 o( ̄▽ ̄)d)

在这里插入图片描述


至此,第10题完成。

11.command_execution

11.1题目如下:

在这里插入图片描述

11.2 获取场景如下:

在这里插入图片描述

11.3 题目提示到没有waf(即防火墙)Ψ( ̄∀ ̄)Ψ

我们先输入127.0.0.1,看一下:

在这里插入图片描述

11.4可以发现ping成功了,我们在随便数入一些字母

在这里插入图片描述

11.5可以看到随便输入什么他都会提交上去,立马想到这很可能是一个SQL漏洞,

但在注入之前我们先补充一点管道符知识:

windows 或linux 下:

command1 && command2 先执行command1,如果为真,再执行command2

command1 | command2 只执行command2

command1 & command2 先执行command2 后执行command1

command1 || command2 先执行command1,如果为假,再执行command2

( | || & && 称为 管道符)

所以我们可以看到 ,我们要借助ping127.0.0.1的正确性来运行我们自己写的代码

如图:

在这里插入图片描述

11.6可见,它返回了index.php,我们的猜想是对的,继续我们打开index.php查找flag

在这里插入图片描述

11.7我们没有发现flag,但他一定在这些文件中(在home文件里),如果一个一个查,这样效率太低,我们直接输入

127.0.0.1 | find / -name “*.txt”

第一个就是,如图:

在这里插入图片描述

11.8然后输入cat /home/flag.txt,得到flag

在这里插入图片描述

至此,第11题完成。

12.simple_js

题目如下:

在这里插入图片描述

12.1获取场景后:

在这里插入图片描述

12.2我们随便输入,进入页面,发现是一片空白,查看一下源代码;

在这里插入图片描述

12.3发现是由JavaScript写的,那么很明显这题考的是我们代码审计,我们用vscode打开,如图:

在这里插入图片描述

12.4先把十六进制的数改为十进制:(这里我用的是python,别的也可以)

在这里插入图片描述

12.5剩下的部分,因为本人还没有系统学习过JavaScript,只能勉强看懂,无法讲清楚全部的细节,实在抱歉 …((/- -)/

这里推荐另一篇博客,讲得非常清楚---------点我点我-------------

简单来说,其实就是tab[2]会把tab[1]覆盖掉,导致tab[1]完全没用,输出永远是FAUX PASSWORD HAHA,所以我们让该函数的值为tab[1]而不是tab[2],看看会输出什么;


!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

</head>

<body>

<script>

var n=String.fromCharCode(55,56,54,79,115,69,114,116,107,49,50);

document.write(n);

</script>

</body>

</html>


结果为786OsErtk12

根据题目的提示,flag为Cyberpeace{786OsErtk12}

以及补充一点:其中好多题都可以用python写脚本做,只是我不会没有展示出来 ( ̄△ ̄;)

至此,web初级题已全部完成。 ( ̄▽ ̄)~■干杯□~( ̄▽ ̄)

  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值