文件包含漏洞
include_once()
如果该文件中的代码已经被包含了,则不会再次包含
include与require区别:
如果有错误,include会继续执行后面的。require则会停止
highlight_file() 函数对文件进行 PHP 语法高亮显示
PHP里用点拼接
PHP中addslashes函数是把单引号、双引号、反斜杠前添加反斜杠
- file://—访问本地文件系统
- http://—访问HTTP URL
- ftp://—访问FTP URL
- php://—访问各种I / O流
- zlib://—压缩流
- data://—数据(RFC 2397)
- glob://—查找匹配模式的路径名
- phar://— PHP存档
- ssh2://—安全外壳2
- rar://— RAR
- ogg://—音频流
- Expect://—流程交互流
能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞
远程文件包含漏洞。是指能够包含远程服务器上的文件并执行
开启:php.ini中的
allow_url_fopen = On
allow_url_include = On
00%截断:
由于操作系统使用c语言写的,C语言默认0x00(/0)是作为字符串的结尾,操作系统在识别的时候,读取到\0时达到字符串的结束,可以用burp抓包修改
一些常见的敏感信息路径:
Windows系统:
c:\boot.ini // 查看系统版本
c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
c:\windows\repair\sam // 存储Windows系统初次安装的密码
c:\ProgramFiles\mysql\my.ini // MySQL配置
c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
c:\windows\php.ini // php 配置信息
Linux/Unix系统:
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini // PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件