2021第五届强网杯部分writewp

本文详细介绍了第五届强网杯网络安全竞赛中Web和Pwn部分的题目解题过程,包括Web1寻宝、赌徒、essyweb和Hard_Penetration等,涉及SQL注入、文件包含、JSON解码等技术,通过源码分析和利用漏洞完成挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五届强网杯部分题解

web-最后两道是师弟做得
pwn-by-RGDZ

菜鸡简单记录一下本次比赛。持续更新


前言

提示:这里不是我一个人打出来的,一个团队,然后可能有些写得不是很清楚,望见谅。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Web

1.1Web1 [强网先锋]寻宝

操作过程

在这里插入图片描述
看到题目
在这里插入图片描述
点击信息1看看

<?php
header('Content-type:text/html;charset=utf-8');
error_reporting(0);
highlight_file(__file__);


function filter($string){
   
        $filter_word = array('php','flag','index','KeY1lhv','source','key','eval','echo','\$','\(','\.','num','html','\/','\,','\'','0000000');
        $filter_phrase= '/'.implode('|',$filter_word).'/';
        return preg_replace($filter_phrase,'',$string);
    }


if($ppp){
   
    unset($ppp);
}
$ppp['number1'] = "1";
$ppp['number2'] = "1";
$ppp['nunber3'] = "1";
$ppp['number4'] = '1';
$ppp['number5'] = '1';

extract($_POST);

$num1 = filter($ppp['number1']);        
$num2 = filter($ppp['number2']);        
$num3 = filter($ppp['number3']);        
$num4 = filter($ppp['number4']);
$num5 = filter($ppp['number5']);    


if(isset($num1) && is_numeric($num1)){
   
    die("非数字");
}

else{
   
  
    if($num1 > 1024){
   
    echo "第一层";
        if(isset($num2) && strlen($num2) <= 4 && intval($num2 + 1) > 500000){
   
            echo "第二层";
            if(isset($num3) && '4bf21cd' === substr(md5($num3),0,7)){
   
                echo "第三层";
                if(!($num4 < 0)&&($num4 == 0)&&($num4 <= 0)&&(strlen($num4) > 6)&&(strlen($num4) < 8)&&isset($num4) ){
   
                    echo "第四层";
                    if(!isset($num5)||(strlen($num5)==0)) die("no");
                    $b=json_decode(@$num5);
                        if($y = $b === NULL){
   
                                if($y === true){
   
                                    echo "第五层";
                                    include 'KeY1lhv.php';
                                    echo $KEY1;
                                }
                        }else{
   
                            die("no");
                        }
                }else{
   
                    die("no");
                }
            }else{
   
                die("no");
            }
        }else{
   
            die("no");
        }
    }else{
   
        die("no111");
    }
}

根据源码分析,需要穿一个ppp数组,并且绕过五层。

解题分析

if($num1 > 1024) //第一层

一个大于2024就可以了。
使用:ppp[number1]=1025

第二层

if(isset(KaTeX parse error: Expected 'EOF', got '&' at position 7: num2) &̲& strlen(num2) <= 4 && intval($num2 + 1) > 500000){ 第二层
长度小于《=4
然后intval()
Php弱语言 ppp[number2]=9e9

Intval函数获取变量整数数值
Intval最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上, intval(‘1000000000000’) 会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。
intval() 函数。(取整函数)
主要问题就出现在这个intval()函数上了。
大于就行了&#

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值