Bugku-10.闪电16鞭-php语句构造
时间:2021-08-12
本文章向大家介绍Bugku-10.闪电16鞭-php语句构造,主要包括Bugku-10.闪电16鞭-php语句构造使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
代码审计
长度要为len("return'7512158cb1d484b7a54f6c004b943687c4c66015';")=49
由源码知道,$flag可以输出,且输出后就是需要的flag
关于eval()函数
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false
使用短标签可以构造出echo
<? ?>
和<?= ?>
是短标签而<?php ?>
是长标签,其中<?=
是代替<? echo
的,<? ?>
代替的是<?php ?>
,
当你发现你的PHP不支持使用短标签,请到PHP的安装目录下找到php.ini文件,使用Ctrl+F搜索short_open_tag ,
然后将等号后面的Off改成On,再重新启动Apache服务,那么短标签就会被识别了
因此构造<?=$flag;?>
就可以输出了,但是flag被过滤了
$a
构造一个flag字符串,然后echo $$a
,不过[]
被过滤了
用大括号代替方括号
在PHP中,大括号“{}”可以起到如下作用:
- 将多个独立语句合并为一个复合语句,例如 if ... else ...中经常如此使用
- 在变量间接引用中进行定界,避免歧义。例如 ${$my_var[8]}与${$my_var}[8]的区分
- 用于指示字符串变量中的单个字符(下标从0开始),例如
$my_str="1234"; $my_str{1}='5'; //现在 $my_str 内容为 '1534'
因此最后构造
?flag=$a='fla1';$a{3}='g';?><?=$$a;?>111111111111111111
第一个;?>
是为了让代码开头的<?php
闭合,不然<?=$$a?>
无法执行
原文地址:https://www.cnblogs.com/AlucardLink/p/15134822.html
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Salesforce LWC学习(二十) CLI篇:新版本不支持Audience解决方案
- 【STM32F429开发板用户手册】第33章 STM32F429的SPI总线应用之驱动DAC8563
- ELK学习笔记之filbeat pod无法将容器日志发送
- 小学生看了都会的Apache配置虚拟主机教程
- 【STM32F407开发板用户手册】第34章 STM32F407的SPI总线应用之驱动DAC8501
- 学长冷月带你怒刷LeetCode之反转链表
- php面试笔记-php基础知识-变量和引用变量
- 【STM32F429开发板用户手册】第34章 STM32F429的SPI总线应用之驱动DAC8501
- docker 安装mysql5.7
- php面试笔记(5)-php基础知识-自定义函数及内部函数考点
- AJAX的一个简单实例,跨域的解决,使用JQuery来进行ajax的调用
- ASP.NET Core 将文件夹内容输出为压缩包文件方法
- 如何阻止指定类型的SAP CRM附件被上传到服务器
- Docker 之NameSpace与Cgroup
- 微信网页扫码登录和公众号网页授权登录的比较