攻防世界13-simple_php

13-simple_php

php 复制代码
<?php
show_source(*__FILE__*);//高亮文件
include("config.php");//文件包含在内
$a=@$_GET['a'];//获得a
$b=@$_GET['b'];//获得b
if($a==0 and $a){  //判断a是否满足条件
    echo $flag1;   //满足就输出flag1
}
if(is_numeric($b)){  //判断b的条件,b是不是数字
    exit();          //b是数字就退出
}
if($b>1234){          //判断b是不是大于1234
    echo $flag2;      //符合条件才能输出flag2
}
?>

解题-代码审计解释

明显的代码审计,代码包含了config.php的文件,想必 密码就在其中,我们需要输入a,b的值.

首先,a需要既等于0又需要$a为真才能输出flag

这时候这需要引入新的知识:(1)a输入布尔值true,非空数组,非空字符串,非零数字则可使a判断为真;(2)当逻辑运算符"=="进行判断时,左边的若为字符串(第一个字符不为数字)则会自动转化为数字0,同理左边是数组,则转化为0

所以要满足条件必须让$a!=空值,且不能为数字,同时满足==左边转化后为0

所以$a可以="asjcn"(任意一个字符串(第一个字符不为数字)) 判断b是否为纯数字,如果b是纯数字就结束,最后是一个判断b是否大于1234,是就打印flag

a可以是abcd b不能是纯数字而且要大于1234(可以在数字后面加字母) 所以b可以=9999c 把a=abcd,b=9999c get进去

使用hackbar完成操作

相关推荐
ZHOUPUYU3 小时前
PHP 8.3网关优化:我用JIT将QPS提升300%的真实踩坑录
开发语言·php
Tony Bai10 小时前
告别 Flaky Tests:Go 官方拟引入 testing/nettest,重塑内存网络测试标准
开发语言·网络·后端·golang·php
GIS追梦人13 小时前
笔记-Laravel12 开发API前置准备
php·laravel
程序猿_极客14 小时前
【2026】分享一套优质的 Php+MySQL的 校园二手交易平台的设计与实现(万字文档+源码+视频讲解)
vue.js·毕业设计·php·mysql数据库·二手交易系统
ZHOUPUYU15 小时前
PHP 8.0+ 千万级订单系统的分布式事务实战:TCC模式破解高并发难题
php
VXbishe18 小时前
基于Spring Boot的老年社区资源分享平台设计与实现-计算机毕设 附源码 25337
javascript·vue.js·spring boot·python·node.js·php·html5
样子201818 小时前
PHP 之分片上传
开发语言·php
爱敲代码的小冰19 小时前
php dockerfile安装依赖详解
android·开发语言·php
hartyu20 小时前
纯PHP + Selenium + ChromeDriver方案实现原理,半自动化内容抓取
开发语言·selenium·php
FJW02081421 小时前
Nginx + Redis + srcache + PHP-FPM架构部署
redis·nginx·php