Bugku-头等舱&eval&矛盾&变量

头等舱(详细)

‘什么都没有’
确实啥也没有,可能在‘头’里,打开Burp Suite下载
在这里插入图片描述
此处打开终端,运行以下命令(需要java环境)
java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v1.7.37.jar

浏览器-》设置-》-》系统-》打开代理服务-》开启
在这里插入图片描述
在这里记得点一下保存,使用后记得退出代理
在这里插入图片描述
右键Send to Repeater一下 go
在这里插入图片描述

矛盾

在这里插入图片描述
is_numeric函数检测是否为数字或数字字符串
php的 == 不会检查条件式的表达式类型
即num为有1的字符串就行
所以?num = 1*

变量1

flag In the variable ! <?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){///^开始, \w表示任意一个单词字符,即[a-zA-Z0-9_] ,+将前面的字符匹配一次或多次,$/结尾
        die("args error!");
    }
    eval("var_dump($$args);");//var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
}
?>

在链接后添加全局变量?args=GLOBALS

这段代码看起来像是在定义一些变量或常量。先来解释一下其中的符号含义: - `&amp;`:取地址符号,可以获取一个变量的内存地址。 - `*`:解引用符号,可以获取一个指针指向的变量的值。 然后看具体的代码解释: - `worker_num: 4`:这是一个整数类型的变量,表示程序中使用的工作线程数量为 4。 - `eval_height: &amp;eval_height 640`:这里定义了一个名为 `eval_height` 的常量,它的值是 640。同时使用 `&amp;` 符号获取了该常量的内存地址,并将地址赋值给了 `eval_height` 右侧的 `&amp;eval_height`。这个操作通常用于将该地址传递给其他函数或变量,以便它们可以访问该常量的值。 - `eval_width: &amp;eval_width 640`:类似地,这里定义了一个名为 `eval_width` 的常量,它的值也是 640,并使用 `&amp;` 符号获取了该常量的内存地址并赋值给了 `eval_width` 右侧的 `&amp;eval_width`。 - `eval_size: &amp;eval_size [*eval_height, *eval_width]`:这里定义了一个名为 `eval_size` 的常量,它的值是一个二元组,包含两个指针。这两个指针分别指向 `eval_height` 和 `eval_width` 所表示的常量的地址。这个操作通常用于在程序中使用 `eval_height` 和 `eval_width` 的值时,可以通过解引用这两个指针来获取它们的值。注意,这里使用了 `*` 符号进行了解引用操作。所以 `*eval_height` 表示获取 `eval_height` 指向的内存中保存的值,即 `640`;同理,`*eval_width` 表示获取 `eval_width` 指向的内存中保存的值,也是 `640`。因此,`eval_size` 的值就是 `[640, 640]`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值