[ctf零基础入门]php基础

这篇博客适合CTF新手,介绍了PHP的基本语法、弱类型特性、变量覆盖方法,以及MySQL的基础操作,包括数据库创建、表的增删改查。文中还提到了一些可能的漏洞利用情况,如弱类型可能导致的安全问题,并给出了PHP连接MySQL的示例。
摘要由CSDN通过智能技术生成

本文难度简单,适合完全0基础
整理该笔记时,作者完全0基础自学1个月在备考单位考试,水平有限时间紧张,如有错误和不足,请指教。

工具安装:
phpstudy、
java->burpsuite和(或)火狐及hackbar
可以安装-sublime编辑器
我的测试环境是win10 64 phpstudy 8.1
吾爱破解的破解版Burpsuite+1.7.26Cn
(因为新出的BurpSuitev2.5.0.2 需要装新旧两版java我时间紧就没用它)

入门基础

Php基本语法:
https://www.w3school.com.cn/php/php_syntax.asp
先快速自学,遇到问题,请教百度

php要求
1、文件后缀必须为php
2、文件开头必须是 <?php 文件结束:?>
3、变量的声明必须添加 $
4、每一行代码后都要添加;来结束。

变量的要求
1、变量以 $ 符号开始,后面跟着变量的名称
2、变量名必须以字母或者下划线字符开始
3、变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
4、变量名不能包含空格
5、变量名是区分大小写的($y 和 $Y 是两个不同的变量
超全局变量
https://www.php.net/manual/zh/language.variables.superglobals.php
PHP中预定义了几个超级全局变(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 不需要特别说明,就可以在函数及类中使用。PHP 超级全局变量列表:
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
 $_SERVER 服务器环境变量数组,由 Web 服务器创建,是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
$_POST 通过POST方法传递给脚本的变量数组
$_GET 通过GET方法传递给脚本的变量数组
$_COOKIE cookie 变量数组
$_REQUEST所有用户输入的变量数组包含了 $_GET,$_POST 和 $_COOKIE 所包含的输入内容
 $_FILES 与文件上传相关的变量数组
 $_ENV 环境变量数组
 $_SESSION 会话变量数组

题目:http://123.206.87.240:8004/index1.php
源码:

<?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>

?args=GLOBALS

弱类型

对于0基础新手建议下面设计到代码和语句的地方,都手动敲代码在电脑上测试下
如果一个字符串为 “合法数字+e+合法数字”类型,将会解释为科学计数法的浮点数
如果一个字符串为 “合法数字+ 不可解释为合法数字的字符串”类型,将会被转换为该合法数字的值,后面的字符串将会被丢弃
如果一个字符串为“不可解释为合法数字的字符串+任意”类型,则被转换为0!

1 <?php
2 var_dump("admin"=&#
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值