攻防世界题目

1.view_source

问题:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

解决方法:点入网页再ctrl+u得到(注释)flag。(或者在网址前加view-source:)

2.get_post

问题:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

解决方法:将题目场景里的链接复制到火狐浏览器中,然后再浏览器中的链接后面加 /?a=1,再按Fn+F12,点到HackBar,点Load url,再点Post data,再下面空白输入b=2,最后点Execute得到Flag。

3.robots

X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

解决方法:点开题目场景链接,发现空白页面后在页面网址后面加/robots.txt,回车得到下面的页面:

User-agent: *
Disallow: 
Disallow: f1ag_1s_h3re.php

然后复制f1ag_1s_h3re.php到页面后面(记得把之前的robots.txt删掉),最后得到flag。

4.backup

问题:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

解决方法:在页面网址后面加/index.php.bak,回车进行搜索,右上角会下载一个文件,打开文件得到flag。(如图)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZanZjt8w-1683114718321)(C:\Users\86136\AppData\Roaming\Typora\typora-user-images\image-20230321144636910.png)]

5.cookie

问题:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?

解决方法:点开题目场景链接,在自带浏览器中右键点击检查,找到》这个后,点击“》”后又点击“

应用程序,然后找到cookie,再找到一下的地方并右键点击“使用cookie显示请求”,然后再网页网址

后面加/cookie.php,回车后会看到“see the ttp response",最后在名称那里找到cookie.php并点击

,最后找到flag。

look-herecookie.php

6.disabled_button

问题:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

解决方法:复制题目场景链接到火狐,右键点击检查,在查看器中删除disabled=“”,然后就可以点开得到flag。

7.simple_js

问题:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

解决方法:复制题目场景链接到火狐,右键查看源代码,复制\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30这个到学长给的进制转换网页,把这个十六进制转换为字符串为(55,56,54,79,115,69,114,116,107,49,50),得到十进制,然后比对ASCIL找出每个字符就行了。

8**.xff_referer**

问题:X老师告诉小宁其实xff和referer是可以伪造的。

解决方法:打开burpsuite,点开open browser,然后复制题目场景链接到burpsuite,就抓包了,然后

右键点击Do in intercept 旁边的response to the request ,再点击Forward ,然后再右键send to repeater,打开repeater,点击send,然后在Request里的User-Agent上面构造X-Forwarded-For:123.123.123.123,再点send,在response中找到,然后X-Forwarded-For:123.123.123.123下面添加Referer:https://www.google.com,最后点send ,在response中找到flag。

9.weak_auth

问题:小宁写了一个登陆验证页面,随手就设了一个密码。

解决方法:点击题目场景(已经告诉了账号为admin),先打开bp,并在自带浏览器中的扩展程序打开proxy进行抓包并爆破得到密码,登入账号密码得到flag。

10.command_execution

问题:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

解决方法:输入127.0.0.1,没有有用的信息,

image-20230322201933977 image-20230322202055937

多次查找目录,找到home目录,重新输入127.0.0.1&& ls /home,发现/home目录下有一个文件叫flag.txt。再使用|连接符使之只打开flag.txt文件,找到flag。(输入127.0.0.1|cat /home/flag.txt)

11.simple_php

问题:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

解决方法:点开题目场景得到如下页面:

<?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; $b=@$_GET['b']; if($a==0 and $a){ echo $flag1; } if(is_numeric($b)){ exit(); } if($b>1234){ echo $flag2; } ?>

分析题目:这里三个条件:(1)如果a=0且a为真,我们可以得到flag1。(2)is_number($b)的意思是判断b是否为数字,如果为数字则返回,说明此处的b不能为数字,不然就执行exit()了。(3)要求b大于1234,就可以得到flag2。

综上:b要求非数字并且大于1234,涉及到php的弱类型比较;本文直接给出b=1235a>1234,且b不能为数字,所以直接在网址后面添加/?a=a&b=1235a,就可以得到flag。

12.Training-WWW-Robots

在网址后面添加/robots.txt,出现的代码有Disallow: /fl0g.php,最后在最初的代码后添加/fl0g.php得到flag。

13.PHP2

访问index.php无效,猜测index.phps出现页面,

<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

Can you anthenticate to this website?

解析代码:第一个if语句中三等号强判断为“admin”,但若只是“admin”则会输出“not allowed!”,看第二个if语句,urldecode()将 G E T [ i d ] 进行 U R L 编码,从而判断 _GET[id]进行URL编码,从而判断 GET[id]进行URL编码,从而判断_GET[id]==“admin”,所以要使$_GET[id]编码后的结果等于“admin”,那就先得将“admin”进行URL编码。

需要对admin进行两次解码,这道题可以直接通过url编码对照表得知(a为%61),再对%61进行编码得到%2561,所以在网址后添加/?id=%2561din可得到flag。

13.unserialize3

在网址后加/?code=O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}得到flag。

来解释一下:O:7:“chybeta”:1:{s:4:“test”;s:3:“123”;}

这里的O呢就是object对象的意思

数字7代表着对象的函数名有7个占位

然后就是对象名了

这个数字1表示对象里有一个变量

大括号里的s代表的是string类型还有一个i是int型。

14.ics-06

都点了一下发现只有报表中心可以进去,进入报表中心在url中发现?id=1,一开始以为是sql注入结果啥也没探测到,这题脑洞有点,没有任何提示直接爆破id即可获得flag。

步骤:抓包后发送到Intruder,在positions里点击Sniper,在playloads里playload set:1,playload type:Numbers,From:1,To:100000,Step:1,然后直接点击Resource Pool里的Start attack,

看了一下当id=2333的时候包的长度比较长,我们看一下返回包就发现了flag。

15.baby_web

题目描述:想想初始页面是哪个

根据提示我们尝试/index.php页面,发现页面直接跳转到1.php,因此尝试抓包分析,抓包后跳转到Repeater模板,将1.php改成index,php,再发送,在Response模板找到Flag is hidden,发现flag但是隐藏了,在Response模板里点击Hex找到Flag:flag{very_baby_web}。

16.inget

方法一:万能钥匙:?id=1’||'1。

fileclude

include(“文件名”);会将文件中的内容视为代码块接入include所在代码中,输出的只是执行后的结果,文件中的注释、定义等无法查看。

本题中可以控制的变量有file1和file2,file2用于满足if判断要使其内容为“hello ctf”。但是需要注意直接file2=hello%20ctf是不行的,因为file_get_contents()的参数也为文件名,直接file2=hello%20ctf时file2为字符串,需要用data://协议使它当做文件。file1用于提取flag.php中的内容并用base64编码以防止执行,然后通过include输出file1中的内容,也就是base64编码后的flag.php中的内容。

data://协议

1.使用条件为

allow_url_fopen:on

allow_url_include :on

2.用法

data://text/plain,
data://text/plain;base64,

3.示例

1)eg: http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?> #会向file中输入文本数据流<?php%20phpinfo();?>

2)*eg:*http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b #会向file中输入base64解码后的PD9waHAgcGhwaW5mbygpOz8%2b

php://filter协议

1.参数详解

php://filter 参数描述
resource=<要过滤的数据流>必须项。它指定了你要筛选过滤的数据流。
read=<读链的过滤器>可选项。可以设定一个或多个过滤器名称,以管道符(**)分隔。
write=<写链的过滤器>可选项。可以设定一个或多个过滤器名称,以管道符(\)分隔。
<; 两个链的过滤器>任何没有以 read=write= 作前缀的筛选器列表会视情况应用于读或写链。

2.示例

eg: http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php #resource参数=phpinfo.php表示要过滤的数据流为phpinfo.php源文件,reade参数=convert.base64-encode表示要读取数据流,且使用了base64编码转换器(convert.base64-encode)

综上可知本题payload为 ?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello%20ctf
phpinfo.php源文件,reade参数=convert.base64-encode表示要读取数据流,且使用了base64编码转换器(convert.base64-encode)

综上可知本题payload为 ?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello%20ctf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值