BUGKU-WEB eval

题目描述

题目截图如下:

进入场景看看:

php 复制代码
<?php
    include "flag.php";
    $a = @$_REQUEST['hello'];
    eval( "var_dump($a);");
    show_source(__FILE__);
?>

解题思路

  • PHP代码审计咯

相关工具

  • 百度搜索PHP相关知识

解题步骤

分析脚本就行:

1. include "flag.php"; 引入了一个名为 flag.php 的文件。

  1. $a = @$_REQUEST['hello']; 从 HTTP 请求的参数中获取名为 hello 的值,并将其赋给变量 $a。也就是说:request是要请求得到hello的信息,及a=的是hello的信息,而不是hello本身.
php 复制代码
/?hello=
  1. eval( "var_dump($a);"); 使用 eval() 函数将 $a 的值作为 PHP 代码执行,并将结果打印出来。试试?
php 复制代码
/?hello=flag.php

并么有出现,那可能是hello的值有问题,不能直接这么写?

因为flag.php是一个文件,所以需要使用file()函数来读取:

php 复制代码
/?hello=file('flag.php')
  1. show_source(__FILE__); 将当前文件的源代码输出到浏览器。这意味着我们可以直接查看该脚本的代码。

得到Flag

php 复制代码
flag{7536e9c02aaf8a3ee1dc88e1f5018f27}

新知识点

  • var_dump()会将传入的变量打印到页面(变量类型,变量长度和变量值)

  • eval()会执行传入到其中的php代码

  • echo输出的是最终的结果(变量类型和字符串)

  • file():把整个文件读入一个数组中。数组中的每个单元都是文件中相应的一行,包括换行符在内。

需要把PHP基础学习一下,这很多都是关于PHP的基础代码审计!也不难!

有用的话,请点赞收藏评论,帮助更多的同学哦

相关推荐
默默提升实验室9 个月前
BUGKU-WEB No one knows regex better than me
bugku
默默提升实验室10 个月前
BUGKU-WEB 备份是个好习惯
bugku
默默提升实验室10 个月前
BUGKU-WEB 社工-初步收集
bugku
默默提升实验室10 个月前
BUGKU-WEB GET
bugku
weoptions1 年前
Simple_SSTI_1-WEB-bugku-解题步骤
web·ctf·ssti·bugku·解题思路·解题过程
weoptions1 年前
赛博朋克-MISC-bugku-解题步骤
ctf·misc·bugku·图片隐写·解题步骤·解题思路·lsb隐写
bug小空1 年前
bugku YCCMS漏洞
网络安全·代码审计·bugku·yccms