BugkuCTF_Web001

web2

直接在URL前加“view-source:”,查看源代码,发现flag

计算器

(1)打开网址,是计算两个数的和,但结果只能输入一位数字。
在这里插入图片描述(2)查看源代码
在这里插入图片描述(3)指出了字符串的最大长度为1,直接修改这个最大长度,只要改为比结果的位数大就行
在这里插入图片描述(4)然后计算出正确的结果就能得到flag
在这里插入图片描述

web基础$_GET

用get方法输入一个参数,参数名为“what”,值为“flag”
?用来间隔URL和请求参数,若要输入多个参数,用&间隔。
在这里插入图片描述

web基础$_POST

用post方法输入一个参数,借助hackbar工具,传一个what参数,值为flag
在这里插入图片描述

矛盾

(1)一串php代码
在这里插入图片描述(2)用get方法传入一个num参数,其不能为数字,但又要等于1。这里涉及php代码弱类型比较,数字和字符混合的字符串转换为整数后只保留数字部分。所以num可以构造为1xiaosong,字符部分随便。
在这里插入图片描述#在这里插入图片描述

web3

(1)打开网址,一直是重复的页面
在这里插入图片描述(2)用view-source:查看源代码,在最下面发现一串unicode编码
在这里插入图片描述(3)用在线工具转为ASCII码得到flag ( http://tool.chinaz.com/tools/unicode.aspx)
在这里插入图片描述

域名解析

在这里插入图片描述(1)根据题目的意思,将域名flag.baidu.com指向到IP地址123.206.87.240
windows平台在C:\Windows\System32\drivers\etc\host中最后一行加入120.24.86.145 flag.bugku.com (这里用notepad++打开host文件,修改后保存)
在这里插入图片描述(2)修改完后,打开浏览器访问flag.baidu.com,得到flag
在这里插入图片描述#如果是linux平台,则在/etc/host中加入123.206.87.240 flag.baidu.com

你必须让他停下

(1)打开网址,页面一直刷新,用burp抓包
在这里插入图片描述(2)发送到Repeater,点击发送,每发送一次,图片都会来一次变化,这是随机的,不断地发送,在出现10.jpg的时候发现了flag
在这里插入图片描述

变量1

(1)打开网址,发现一段php代码
在这里插入图片描述(2)对代码的解释:

<?php  

error_reporting(0);                            //关闭php错误显示
include "flag1.php";                           //引入flag1.php文件代码
highlight_file(__file__);
if(isset($_GET['args'])){                     //通过get方式传递 args变量才能执行if里面的代码
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){    //正则表达式的意思是匹配任意[A-Z,a-z,0-9,_]的字符,就是任意大小写字母和0-9以及下划线组成
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>

(3)可变变量(https://www.php.net/manual/zh/language.variables.variable.php)
#一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:

<?php
$a = 'hello';
?>

#一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。例如:

<?php
$$a = 'world';
?>

#这时,两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。因此,以下语句:

<?php
echo "$a ${$a}";
?>

与以下语句输出完全相同的结果,都会输出hello world:

<?php
echo "$a $hello";
?>

#要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下$$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

#在 PHP 的函数和类的方法中,超全局变量不能用作可变变量。$this 变量也是一个特殊变量,不能被动态引用。

(4)超全局变量是在全部作用域中始终可用的内置变量
这些超全局变量是:

    $GLOBALS
    $_SERVER
    $_GET
    $_POST
    $_FILES
    $_COOKIE
    $_SESSION
    $_REQUEST
    $_ENV

(5)所以只需给变量传入一个全局变量就可以了,将其变量名传入。构造参数:?args=GLOBALS,就能得到flag。
在这里插入图片描述

web5

在这里插入图片描述(1)查看网页源代码,发现一串特殊的字符
在这里插入图片描述(2)根据题目的提示,JSFuck是用6个字符 [ ] ( ) ! +来编写JavaScript程序。将源代码中的特殊字符放到浏览器的console控制台上进行解密。粘贴到控制台后按回车即可。
在这里插入图片描述(3)注意提交格式,要求大写。CTF{WHATFK}

#Jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。其中8个少量字符包括:[ ] ( ) ! + { } 只用这些字符就能完成对任意字符串的编码。(可以在浏览器的console控制台上直接解密)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值