BugKu_web新手题8-9

BugKu_web新手题8-9

web8

打开网页如图示

有关函数:

(1)@错误抑制符:
@在PHP中叫错误抑制符,也就是用来屏蔽错误的。
@之后的表达式如果出错误,是不提示错误信息的,如果不加@出错之后一般是会在浏览器中显示错误信息,加上之后浏览器中就不显示错误信息了。

(2)$REQUEST是用来收取表单数据的超级全局变量。

_可以通过 $_REQUEST[“name”]来访问表单值。

(3)eval()函数在php中的作用是将参数字符串作为php代码运行。

(4)show_source()是highlight_file() 的别名,使用show_source()时整个文件内容都会被显示。

(5)FILE是魔术常量,是文件的完整路径和文件名。如果用在被包含文件中。则返回被包含的文件名。

(6)var_dump():将参数的变量信息详细打印出来。

代码分析:

代码首先将flag文件包含进来。将收集到的名为“hello”的表单信息赋值给$a,然后将a的内容作为代码执行。

payload:

(1)?hello=show_source(‘flag.php’); 记得文件名要用单引号括起来。这样网页会直接显示flag.php的源码,拿到flag。

(2)?hello=file(‘flag.php’); 这样文件的内容也会被打印出来。顺带说一句php的file() 函数把整个文件读入一个数组中,数组中的每个元素都是文件中相应的一行,包括换行符在内。

web9

打开网页,可见flag In the variable!提示flag通过变量读取,且包含文件flag1.php

其中preg_match("/^\w+/ " , /",/",args)执行正则表达式匹配,通过 $ $args(可变变量)获取flag, $ a r g v s 作 用 类 似 于 联 想 到 P H P 中 argvs作用类似于联想到PHP中 argvsPHPGLOBALS[index] 的数组中存储了所有全局变量。

令args=GLOBALS正好符合条件利用可变变量输出,最后得到flag。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值