一、PHP命令执行
<?php
print_r(`ipconfig`);
?>
echo `ipconfig`; //也可输出
二、全局变量
除了$_GET、$_POST、$_REQUEST、$GLOBALS、$_COOKIE,还有$_SERVER。$_SERVER为数组,包含多个元素:
$_SERVER['PHP_SELF'] | 当前脚本文件名 |
$_SERVER['SERVER_ADDR'] | 服务器IP |
$_SERVER['SERVER_SOFTWARE'] | 服务器标识,容器,后端语言 |
$_SERVER['SCRIPT_FILENAME'] | 当前脚本文件绝对路径 |
CTF:
$_SERVER['PHP_SELF'] 存在XSS利用点,若表单为:
<?php
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
// ......
?>
可在url地址栏接上 \"><script>alert(1)</script>
三、foreach循环
foreach用于遍历数组
<?php
$ar = array('haha','lala','hehe');
foreach($ar as $_a){
echo $_a.'<br>';
}
?>
每次循环,将$ar的一个元素值赋给$_a。
四、魔术常量
PHP提供了一些预定义常量,称为魔术常量。
__FILE__ | 脚本文件绝对路径,windows下显示"\",而$_SERVER['SCRIPT_FILENAME']显示"/" |
__DIR__ | 脚本所在目录,不含脚本名 |
五、一些细节
1、定义数组时,键名为null的变为''(空字符串),键名为true的变为1,键名为false的变为0。
2、htmlspecialchars()函数将预定义的字符转化为html实体。
- & (和号) 成为 &
- " (双引号) 成为 "
- ' (单引号) 成为 '
- < (小于) 成为 <
- > (大于) 成为 >
3、trim()函数用于去除输入的空格、制表符、换行等。