北邮 -3.29

 菜鸡只打了100分

ez_bypass

对于我一点都不ez

 用数组可以让md5加密都都为NULL,然后是原本数据不相等,so,id[]=1&gg[]=2

然后下面那个is_numeric()是用来判断是否为数字,so,用post传值1234567%00,或者1234567a或1234567!都可以,然后就出现了让我激动的flag

套娃

看不懂这两个字,做起来才发现,一重又一重,唉,搞了我n小时

 看源码,发现这个

 然后上网找找,发现substr_count(a,b),是找在a中有多少个b,

然后又找到可以用 .  代替  _  

又发现正则表达式不能等于23333,网上又找到了可以用%0a过滤

正当以为出flag时

 好吧,是我想得太简单了

 看源码发现一堆这个东西,然后拿去解

叫我post me Merak

但我发现它又叫我要本地登录,所以我即用本地有传值,发现原来根本就不是一起的

我单传值得到

 然后又找看不懂的代码

<?php 
error_reporting(0); 
include 'takeip.php';
ini_set('open_basedir','.'); 
include 'flag.php';

if(isset($_POST['Merak'])){ 
    highlight_file(__FILE__); 
    die(); 



function change($v){ 
    $v = base64_decode($v); 
    $re = ''; 
    for($i=0;$i<strlen($v);$i++){ 
        $re .= chr ( ord ($v[$i]) + $i*2 );  //chr是把ASCII转成字符 ord时把字符转成ASCII数字,大概是这个意思吧
    } 
    return $re; 
}
echo 'Local access only!'."<br/>";
$ip = getIp();
if($ip!='127.0.0.1')
echo "Sorry,you don't have permission!  Your ip is :".$ip;
if($ip === '127.0.0.1' && file_get_contents($_GET['2333']) === 'todat is a happy day' ){ //file_get_contents() 函数把整个文件读入一个字符串中。
echo "Your REQUEST is:".change($_GET['file']);
echo file_get_contents(change($_GET['file'])); }

?>  

然后就不懂了

后来经高人指点,用了一下php://input发现不行

再经高高人指点高人再指点我,用了data://

 终于成功了

 虽然做的题目很少,但也学到了一些东西,继续努力吧,希望下次能更好。

50+50=100,按小学成绩来算就是满分啦,哈哈哈

原文地址:https://www.cnblogs.com/ojkojk/p/12593561.html