北邮 -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,按小学成绩来算就是满分啦,哈哈哈