栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

Bugku web——web8

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Bugku web——web8

打开连接,获得代码:

This is flag:" ." $flag

"; } else { echo "

sorry!

"; } } ?>

分析代码:

  • extract($_GET):函数extract()有通过数组进行赋值的功能:
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "$a = $a; $b = $b; $c = $c";
  • file_get_contents($fn):file_get_contents功能是从文件名为“$fn”的文件中读取数据,但是当$fn的值为“php://input”,它会接受并返回post的值

根据提示txt,猜测存在flag.txt

其内容为flags,因此可以使$ac值为flags,$fn值为flag.txt,使$ac和$f相等

还有一种解法,利用file_get_contents在$fn的值为“php://input”时会返回post值 的特点,使$ac值为123,$fn值为“php://input”,并post值123,同样可使$ac和$f相等

payload构建完毕,下一步是通过函数extract进行赋值,但是其参数为数组,而且$_GET后并没有参数,因此怎么通过get传值是个问题

extract($_GET)       一般不是这样吗?? $_GET[id]

查看writeup,发现直接通过get传值即可

http://123.206.87.240:8002/web8/index.php?ac=flags&fn=flag.txt

为什么可以这么用?我并没有查到资料,那只能猜测如果$_GET后不加具体参数名的情况下,其返回值为一个数组,其中包含参数名和值的对应关系

第二种解法如下,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号