当前位置: 首页 > news >正文

BWVS 靶场测试

一、PHP弱类型 is_numeric()

输入:127.0.0.1/BWVS/bug/php/code.php 

clipboard.png

# 1、源代码分析

如果num不是数字,那么就输出num,同时如果num==1,就输出flag。即num要是字符串又要是数字

# 2、函数分析:

is_numeric()函数:函数用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回空值,即 FALSE。

立刻想到PHP的弱类型比较,构造payload:?num=1shu

# 3、payload解析:

1shu不是数字或数字字符串则返回false,!false为ture 输出num。php弱类型会自动将第一位为数字的字符串为该数字的值,否则为值0。所以1shu会被解析为1==1。成功返回flag

clipboard.png

# 二、strcmp函数缺陷

# 1、理论知识

1、strcmp(str1,str2)函数用来字符串的比较,当str1 < str2时 返回小于0 ,str1 > str2时返回>0的数,str1 == str2时返回 等于0

2、但是他不能判断数组,直接返回flase

所以可以直接构造payload: ?password[]=1 查看源代码 /bug/php/md5.php

# 2、代码分析

<?phpinclude_once('../../bwvs_config/sys_config.php');require_once('../../header.php');$password=$_GET['password'];if(strcmp('21232f297a57a5a743894a0e4a801fc3',$password)){   //当password==21232f297a57a5a743894a0e4a801fc3 时相等 为falseecho 'password is false ! ! ! ! !';}else{echo 'flag is here!!<br>';echo 'flag{挑战成功}';}?><?php 
require_once('../info.php');
?>

发现当password为这串字符串时,即?password=21232f297a57a5a743894a0e4a801fc3时,也能得到flag

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CSS布局和定位应用方案
  • 网络编程-TCP并发服务器-多点通信-域套接字
  • 重学java 39.多线程 — 线程安全
  • 一篇文章讲透排序算法之希尔排序
  • 大摩:AI PC渗透率到2028年将达65%,联想和戴尔是最大受益者
  • 【linux】docker下nextcloud安装人脸识别插件
  • 碌时刻必备!微信自动回复让你告别消息堆积
  • 临时存储和永久存储的区别
  • HarmonyOS 鸿蒙应用开发 - 多态样式 stateStyles
  • solidworks画螺栓学习笔记
  • 自己手写一个栈【C风格】
  • Qml:线程
  • 93.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-增强技能信息显示后进行分析
  • Redis批量删除指定前缀的key
  • STM32H743的FDCAN使用方法(2):STM32CubeMX初始化代码修改
  • 【css3】浏览器内核及其兼容性
  • Android组件 - 收藏集 - 掘金
  • express如何解决request entity too large问题
  • Github访问慢解决办法
  • Invalidate和postInvalidate的区别
  • Javascript Math对象和Date对象常用方法详解
  • jdbc就是这么简单
  • Laravel Telescope:优雅的应用调试工具
  • Mocha测试初探
  • MySQL用户中的%到底包不包括localhost?
  • nodejs:开发并发布一个nodejs包
  • PermissionScope Swift4 兼容问题
  • vue 配置sass、scss全局变量
  • Vue实战(四)登录/注册页的实现
  • 闭包--闭包之tab栏切换(四)
  • 从零搭建Koa2 Server
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 模型微调
  • 前端技术周刊 2019-01-14:客户端存储
  •  一套莫尔斯电报听写、翻译系统
  • 用简单代码看卷积组块发展
  • HanLP分词命名实体提取详解
  • Linux权限管理(week1_day5)--技术流ken
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #NOIP 2014# day.2 T2 寻找道路
  • #预处理和函数的对比以及条件编译
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (02)vite环境变量配置
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (zt)最盛行的警世狂言(爆笑)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十六)Java 数据结构
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (汇总)os模块以及shutil模块对文件的操作
  • (四)模仿学习-完成后台管理页面查询
  • (五)activiti-modeler 编辑器初步优化
  • (学习日记)2024.01.09
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决