BUGKU WEB 变量1

相关知识

1.eval()函数

eval函数,可以将括号内的字符串变成php代码执行,前提是括号内的内容以分号结尾;如果代码解析错误,则会返回false。

2.var_dump()函数

将显示一个或多个表达式的值,包括表达式的类型和值,数组会递归展开。

打开环境出现了PHP代码,猜测应该是代码审计

3.highlight_file()函数

对文件进行 PHP 语法高亮显示,语法通过使用 HTML 标签进行高亮;当使用该函数时,整个文件都将被显示,包括密码和其他敏感信息!

4.isset函数

isset在php中用来判断变量是否声明,该函数返回布尔类型的值,即true/false。isset只能用于变量,因为传递任何其它参数都将造成解析错误。

5.正则匹配

在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式。

“/^\w+$/” : 正则表达式
^ 表示开头,是转义字符,使用时在前面加""
$ 表示结束,是转义字符,使用时在前面加""
\w 任意一个字母或数字或下划线,也就是 AZ,az,0~9,_ 中任意一个

6.Die函数

Die函数是PHP中一种基础的错误处理方式,用于强制代码退出和避免潜在错误。

代码分析

作为小白上网搜一下代码

flag in the variable:// flag在变量中

error_reporting(0)://关闭错误报告

include “flag1.php”:// include 语句包含并运行指定文件

highlight_file(file)://highlight_file()函数对文件进行 PHP 语法高亮显示,语法通过使用 HTML 标签进行高亮;当使用该函数时,整个文件都将被显示,包括密码和其他敏感信息!

if(isset($_GET['args']))// isset函数判断变量是否存在,是则返回true

$args= $_GET['args']; //通过get请求获取args

if(!preg_match("/^\w+$/",$args));//利用正则匹配,检测args中的内容(preg_match : 函数用于执行一个正则表达式匹配)

die("args error!);//输出“args error”一条消息,并退出当前脚本

eval("var_dump($$args);")//var_dump会输出一个或者多个表达式的类型和值,eval函数会将字符串当成php代码来执行

我尝试用args=flag和args=flags,发现都不对,输出null,继续上网查,发现它和PHP超级全局变量有关

然后我们尝试在url中输入args=GLOBALS

然后就得到我们需要的flag了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值