当前位置: 首页 > 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

http://www.lryc.cn/news/355513.html

相关文章:

  • c++ 里重解释转换之于引用 reinterpret_cast< long >
  • JAVASE2
  • ora-00392 ora-00312错误处理
  • 网页、h5默认滚动条样式重构
  • 香橙派AIpro测评上手指南
  • GBDT 算法【python,机器学习,算法】
  • 软考 系统架构设计师系列知识点之SOME/IP与DDS(3)
  • 将AI大模型装进你的手机,你愿意么?
  • 前端面试题12-22
  • 【论文解读】Performance of AV1 Real-Time Mode
  • java处理中文脱敏
  • 【Linux网络】端口及UDP协议
  • Unity 生成模版代码
  • 【ai】chatgpt的plugin已经废弃
  • 2024年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 多旋翼无人机机场考哪些内容?
  • 【前端每日基础】day23——箭头函数
  • 27.Java中单例模式的实现方式
  • C#面:当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?
  • express框架下后端获取req.body报错undefined
  • Element plus 低版本弹窗组件添加拖拽功能
  • 计算机组成原理易混淆知识点总结(持续更新)
  • 【STM32踩坑】HAL固件库版本过高导致烧录后无法运行问题
  • 芯片丝印反查
  • C语言之指针详解(5)(含有易错笔试题)
  • discuzX2.5的使用心得 札记一
  • 【Python】 探索Django框架的高并发处理能力
  • C-数据结构-平横二叉树
  • 算法训练营day41
  • cesium开发实例分享