文件包含一些简单的笔记

基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
AppServ,XAMPP,WAMP都是集成了apache,mysql,php的套装,使用起来比较方便,就不需要再去一个个的配置php,apache和mysql。
下载相应的安装包进行安装,不过对于php项目来说,WAMP会默认显示NOTICE信息,页面上一大段一大段的,比较难看。怎么去掉这些警告信息呢?先找到php.ini文件。
其路径是:(我的安装路径是D:\wamp)D:\wamp\bin\php\php5.3.10\php.ini ,打开该文件。
在文件中搜索,error_reporting = E_ALL ,这是默认值,然后改成:error_reporting = E_ALL&~E_NOTICE,接着重启apache服务器就ok了。

在php的配置文件php.ini里面

allow_url_fopen = On :为On时,能读取远程文件,例如file_get_contents()就能远程读取文件
allow_url_include =On:为ON时,就可以使用includerequire等方式包含远程文件

php 中引发文件包含漏洞的通常是以下四个函数:
1、include() 当使用该函数包含文件时,只有代码执行到 include() 函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行。
2、include_once() 功能和 include() 相同,区别在于当重复调用同一文件时,程序只调用一次。
3、require() 只要程序一执行就会立即调用文件,发生错误的时候会输出错误信息,并且终止脚本的运行
4、require_once() 它的功能与 require() 相同,区别在于当重复调用同一文件时,程序只调用一次。
当使用这四个函数包含一个新文件时,该文件将作为 PHP 代码执行,php 内核并不在意该被包含的文件是什么类型。
所以如果被包含的是 txt 文件、图片文件、远程 url、也都将作为 PHP 代码执行。这一特性,在实施攻击时非常有用。

包含日志

利用条件:需要知道服务器日志的存储路径,且日志文件可读。
很多时候,web 服务器会将请求写入到日志文件中,比如说 apache。

?file=../../../../../../../../../var/log/apache/error.log

在用户发起请求时,会将请求写入 access.log,当发生错误时将错误写入 error.log。
默认情况下,日志保存路径在 /var/log/apache2/。
文件包含一些简单的笔记_第1张图片
可以尝试利用 UA 插入 payload 到日志文件
文件包含一些简单的笔记_第2张图片
日志默认路径
apache+Linux 日志默认路径

/etc/httpd/logs/access_log
或者
/var/log/httpd/access log

apache+win2003 日志默认路径

D:/xampp/apache/logs/access.log
D:/xampp/apache/logs/error.log

IIS6.0+win2003 默认日志文件

C:/WINDOWS/system32/Logfiles

IIS7.0+win2003 默认日志文件

%SystemDrive%/inetpub/logs/LogFiles

nginx 日志文件在用户安装目录的 logs 目录下
如安装目录为 /usr/local/nginx,则日志目录就是在

/usr/local/nginx/logs

也可通过其配置文件 Nginx.conf,获取到日志的存在路径

/opt/nginx/logs/access.log

web 中间件默认配置
apache+linux 默认配置文件

/etc/httpd/conf/httpd.conf

或者

index.php?page=/etc/init.d/httpd

IIS6.0+win2003 配置文件

C:/Windows/system32/inetsrv/metabase.xml

IIS7.0+WIN 配置文件

C:/Windows/System32/inetsrv/config/application/Host.config

在这里插入代码片

你可能感兴趣的:(文件包含一些简单的笔记)