当前位置:网站首页>CTF题解五 Web PHP大法(实验吧)
CTF题解五 Web PHP大法(实验吧)
2022-08-09 13:30:00 【目标是技术宅】
实验吧题目链接:http://www.shiyanbar.com/ctf/54

首先,根据题目中提示,要注意备份文件。
点开题目链接后,最后有提示index.php.txt。于是进行访问。

采用的是GET方法,代表着之后可以用?id=XXX的方式进行测试。
程序的主要逻辑是,GET方法得到的id的值必须被hackerDJ所包含,却又在进行一次url解密后,与其相等。
这里涉及到PHP中urldecode这一函数的特性。urldecode会把字符串中所有带%的数字进行解密。
尝试输入?id=%68ackerDJ,按下回车键,发现什么也没发生。看一下浏览器的url,发现浏览器为我们完成了一次url解码,如图:

所以我们需要对hackerDJ进行两次url加密。
看一个例子:
<?php
$a="%2568ackerDJ";
$a=urldecode($a);
echo $a, "</br>";
$a=urldecode($a);
echo $a;
?>这里%25对应的符号是%。
所以第一次解密后得到%68ackerDJ,再解密一次得到hackerDJ。
输入?id=%2568ackerDJ,就可以得到flag了:
flag: DUTCTF{PHP_is_the_best_program_language}
边栏推荐
- 远程控制软件-向日葵
- 12. cuBLAS Development Guide Chinese version--Level-1 functions asum() and axpy() in cuBLAS
- 救火队员的行为准则
- 【LeetCode】1413. 逐步求和得到正数的最小值
- Spark GC日志分析
- C语言中的 递归问题 以及将递归改写成非递归。(解析常见的几个递归题目及代码) 求阶乘、求斐波那契、汉诺塔、
- pytest 与 unittest 的区别
- 开源一夏│别逗,作为程序员你竟还没参与过开源项目?
- vs how to use a Button to link to another page
- mmdetction
猜你喜欢

SEATA分布式事务框架解析

From the Dutch flag problem to the optimization and upgrade of quick row

企业公众号开通微信支付

内容社区行业搜索最佳实践

openharmony容器组件之Column

三种ThreadLocal,玩转线程变量保存与传递

华为ensp静态路由、DHCP

C语言中的 递归问题 以及将递归改写成非递归。(解析常见的几个递归题目及代码) 求阶乘、求斐波那契、汉诺塔、

使用Connection对象连接管理事务

Three kinds of ThreadLocal, play with thread variable storage and transmission
随机推荐
Es7.x使用RestHighLevelClient进行增删改和批量操作
Kubernetes资源编排系列之三: Kustomize篇
C语言 三子棋(含完整 代码详解)
12. cuBLAS Development Guide Chinese version--Level-1 functions asum() and axpy() in cuBLAS
皮肤资料整理
C语言 函数问题
ensp如何正确配置静态路由
Column of openharmony container component
Operating system migration practice deploying MySQL database on openEuler
From the Dutch flag problem to the optimization and upgrade of quick row
spark单机版安装
Firewalld防火墙基础
对百度的内容进行修改
关于舵机的漂移与不听指挥乱动的问题
阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec
SEATA分布式事务框架解析
将 .json 格式 转换成 .xml格式
Flex for openharmony container components
openharmony容器组件之Flex
理解redis,一篇就够