PHP 开源CMS 寻找EXP 基本知识入门

PHP概述

PHP基本常识(了解)

  • PHP定义

    Personal Home Page Tools 原始定义 Hypertext Preprocessor 当前定义 超文本预处理器
    是一种被广泛应用的开放源代码的多用途语言
    PHP是服务器端脚本,返回的是HTML代码

    与php竞争的语言
    C# 微软公司
    Java Oracle公司
    python Google公司

  • PHP开发环境
    服务器端脚本 最主要的领域 php是主要方式
    命令行脚本 直接在dos命令提示符下执行php

  • PHP运行环境
    OS:Windows、Linux、Unix、MAC
    web服务器:apache、iis、nginx、
    数据库:MySQL、SQL server、Oracle

示例程序

<?php
$a=33;
$b=22;
if($a>$b){
echo($a);
}else{
echo($b);
}
?>


新建一个记事本 改后缀名为.php 或者notepad++保存为.php 然后将该文件移动到网站根目录 即www


然后在浏览器输入127.0.0.1 即本地环回地址进行测试

嵌入到HTML中

<html>
<body>
		<table border=1>
		<tr><td>
		<?php
		echo date( 'Y-m-d H:i:s' )
		?>
		</td></tr>
		</table>
</body>
</html>


报错原因是没有设置系统的 default timezone

可以右键phpstudy查看phpinfo
也可以自己写个phpinfo();访问他

找到php.ini的路径

打开php.ini,date.timezone 原本是空的

重启phpstudy 结果没变化。。。。。。可能要重启电脑?还是浏览器?还没试
所以我直接在代码中添加

PHP基本语法(掌握)

每个语句以;结束
以<?php 开始 以 ?>结束
注释 // 单行
/* */ 块

  • PHP数据类型

    4种标量类型
    Boolean布尔型、integer整性、float浮点型、string字符串
    布尔值 true false 不分大小写
    整型值 十进制 十六进制0x 八进制0 开头
    浮点值0.0 1.5e2 1.5乘10的2次方 e-2 10的-2次方
    字符串 单引号定义的原样输出 双引号定义的会自动转换 “\n”自动换行 “$str” 输出的是给这个变量赋的值
    空白字符串
    没有成员变量的数组 NULL都是false

    2种复合类型 array数组、object对象
    索引数组 $arr=array(1,2,3,4) 下标 0 1 2 3
    $arr[0]=“tom”
    关联数组 $arr=array(‘a’=>1,‘b’=>2) 下标自定义
    $arr[“tom”]=“22”

    2种特殊类型 resource资源、null
    没有被赋值的变量为null
    被unset() $name 也为null

    var_dump($var); 打印这个变量的值

  • PHP变量

    预定义变量
    echo(PHP_VERSION);
    echo FILE //当前文件物理路径

    变量范围
    一般在本程序文件中有效
    用户自定义函数中的变量只在本函数有效
    自定义函数中可以用global定义变量 这样函数外也能引用这个变量
    静态变量static只在用户自定义函数中使用 离开此程序值不会消失

    php外部变量
    当一个表单提交给php程序时,表单中的值会自动在程序中使用
    html表单 get post
    $_GET[‘name’]
    $_POST[‘password’]

    常量
    define(“myname”,“tom”)
    全局 区分大小写

  • PHP常用函数
    strlen() //字符串长度
    strpos() 字符串内指定的字符
    strcmp() strcasecmp() strncmp() 字符串比较
    strstr() stristr() 查找替换
    trim() ltrim() rtrim() 删除空白符
    printf() 输出不同类型值

参考手册
PHP中文参考手册 php_manual_zh.chm
php官方网站可以下载最新的文档
php5中 函数有189类 共有5593个函数
平时开发中常用的也就是100个左右

参考资料:hackctf

PHP网站框架指纹识别

浏览器----中间件------数据库

查看服务器支持的语言
HTTP Header
X-Powered-By
Server
Cookies 中的session ID
URL访问的文件后缀 .jsp .php
报错页面判断中间件
Apache Not Found
IIS Server Error 灰色和红色
Nginx
插件 W3Techs 可以知道

常见的开源CMS
wordpress
drupal
thinkphp
discuz!
dedecms

御剑扫描后台

找到漏洞
寻找EXP

  • 直接搜索版本可以知道漏洞
  • 通过exploit-db.com 搜索漏洞编号
kali  wpscan --url  

PHP弱类型赛题
字符串与整数比较会进行类型转换 就是1a== 1
md5 0e缺陷 开头的哈希值 字符串不一样但是MD5后结果一样
md5 传入数组结果为NULL
strcmp 也是
sha1 也是
PHP代码分析
全局变量GLOBALS 查看flag
文件包含漏洞
遍历读取文件内容
cookie伪造

php://filter 元封装器
resource 指定要过滤得数据流 文件名
read 设定过滤器名称 以/分隔
write

欢迎来到IO源码站,如果喜欢本站,可以按 Ctrl+D 收藏本站
没有账号? 忘记密码?

社交账号快速登录