[CTF学习] 攻防世界WEB练习区

目录:

在这里插入图片描述

1. view_source

在这里插入图片描述

  • 这个题很明显的,只需要查看源代码就能看到 flag,但是不能鼠标右键
  • 这里可以直接按 F12 键或者 Fn+F12 即可
  • 也可以在URL前面加上 view-source: 查看源代码

2. robots

a

# robots协议
1. robots协议也叫robots.txt,是一种存放于网站根目录下的ASCII编码的文本文件
2. robots.txt 文件通常用来告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。
3. 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。
4. robots.txt应放置于网站的根目录下。
  • 通过 robots 协议,直接访问根目录下的 robots.txt 文件,得到还存在一个 f1ag_1s_h3re.php 文件

在这里插入图片描述

  • 访问链接 http://111.200.241.244:53876/f1ag_1s_h3re.php,获得 flag

在这里插入图片描述

3. backup

在这里插入图片描述

  • 通过提示,此题考的是备份文件泄露,一般备份文件的后缀名是 .bak
  • 直接访问 index.php.bak 下载,打开看到 flag

在这里插入图片描述

4. cookie

在这里插入图片描述

  • 题目名字和提示考的是 cookie ,所以进入链接,右键选择检查
  • NetworkHeaders 里面找到 cookie (需要刷新一下),找到 cookie.php 文件

在这里插入图片描述

  • 访问 cookie.php 文件,在 Response Headers 中看到 flag

在这里插入图片描述

5. disabled_button

在这里插入图片描述

  • 这里考察简单的前端知识,右键调出调试窗口,看到 <input> 标签中有一个 disabled ,删除即可

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

6. weak_auth

在这里插入图片描述

  • 这里提示 随手设了一个密码 ,然后是登陆页面,所以优先考虑弱口令
  • 输入用户名 admin ,密码 123456 即可
    在这里插入图片描述

7. simple_php

在这里插入图片描述

  • 一个简单的PHP审计,需要使用 GET 方式提交两个变量

  • a 变量使用的是弱类型比较 == ,需要等于0 ,但是单独使用时不是0 ,由于是弱类型比较,使用 0a 即可绕过(这里可以是 0b , 0abc 等类型的都行)

  • b 变量有两个判断,一个是要求不能是数字,然后要求值大于1234 ,同样的可以使用弱类型比较绕过

  • 访问链接:http://111.200.241.244:50716/?a=0a&b=12345a,获得 flag

在这里插入图片描述

8. get_post

在这里插入图片描述

  • 考察简单的GET和POST两种提交方式,推荐使用浏览器插件 HackBar (也可以使用 burpsuite 抓包修改也可)

在这里插入图片描述

9. xff_referer

在这里插入图片描述

  • 考察的是 xffreferer
  • xff 也即 X-Forwarded-For ,作用是使Web服务器获取访问用户的IP真实地址,但可以伪造
  • referer 用来告诉浏览器当前连接是从哪个链接跳转过来的

在这里插入图片描述

  • 使用工具 burpsuite 抓包,发送到 Repeater 模块处理(也可以不用,但是通常这么做,用来处理数据比较方便,推荐使用)

在这里插入图片描述

  • 根据提示,在信息中添加 xff 信息,查看 Response 返回的信息,需要伪造 referer

在这里插入图片描述

  • 再添加 referer 字段信息,获得 flag

在这里插入图片描述

10. webshell

在这里插入图片描述

  • 内容考察PHP一句话,这里可以使用蚁剑,菜刀直接连接,然后查看文件,获得 flag

  • 但由于这里的一句话使用的是 eval() 函数,能够将里面的内容变成字符串使用,可以理解为变成文件中的代码。

  • 嘿嘿,所以直接使用 POST 提交一个 shell 变量,然后变量的内容传入 system() 函数即可,就能直接调用系统命令,这么使用会方便很多,但需要注意,传入的内容需要加上一个分号 ;

  • 传入 shell=system('ls'); 看到当前页面有一个 flag.txt 文件,所以直接 cat flag.txt 即可

在这里插入图片描述

在这里插入图片描述

11. command_execution

在这里插入图片描述

  • 传入 127.0.0.1 ,就是简单的 ping 命令

在这里插入图片描述

  • 使用命令 id 看到能够执行命令,所以内容也很简单,就是很简单的命令执行,使用 ; 作为间隔,用来执行两条命令

在这里插入图片描述

  • 直接 find / -name flag.* ,获得 flag 文件的路径
  • 拿到路径后,直接 cat 即可

在这里插入图片描述

在这里插入图片描述

12. simple_js

  • 进入链接,弹出一个验证窗口,需要输入密码,但是尝试好几个都是同样的结果

在这里插入图片描述

  • 直接右键查看代码,看有没有什么好东西,发现了一堆JS代码,里面定义一个函数 dechiffre ,能用来处理传入的ASCII码内容

在这里插入图片描述

<html>

<head>
    <title>JS</title>
    <script type="text/javascript">
        function dechiffre(pass_enc) {
            var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
            var tab = pass_enc.split(',');
            var tab2 = pass.split(',');
            var i, j, k, l = 0,
                m, n, o, p = "";
            i = 0;
            j = tab.length;
            k = j + (l) + (n = 0);
            n = tab2.length;
            for (i = (o = 0); i < (k = j = n); i++) {
                o = tab[i - l];
                p += String.fromCharCode((o = tab2[i]));
                if (i == 5) break;
            }
            for (i = (o = 0); i < (k = j = n); i++) {
                o = tab[i - l];
                if (i > 5 && i < k - 1)
                    p += String.fromCharCode((o = tab2[i]));
            }
            p += String.fromCharCode(tab2[17]);
            pass = p;
            return pass;
        }
        String["fromCharCode"](dechiffre(
            "\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"
        ));

        h = window.prompt('Enter password');
        alert(dechiffre(h));
    </script>
</head>

</html>
  • String["fromCharCode"](dechiffre("\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"));
  • 代码里面发现这里调用了函数,还有下面的 alert() ,但没啥关系
  • 看到这个 \x ,十六进制编码,直接右键检查,丢在 Console 中解码,获得ASCII码内容

在这里插入图片描述

  • 用python写几行代码,将ASCII码转为字符串,然后前面的提示中有flag格式为Cyberpeace{}
  • 所以将内容放进去尝试一下,成功
asciis = "55,56,54,79,115,69,114,116,107,49,50"
alist = asciis.replace(',', ' ').split(' ')
for i in alist:
    print(chr(int(i)), end='')

Cyberpeace{786OsErtk12}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值