主页 > 网络知识 > PHP文件包含小总结(2)

PHP文件包含小总结(2)

 

PHP文件包含小总结

 

3.getshell总结 3.1.Getshell之session

条件:session文件路径已知,且session文件中内容部分可控。

获取session文件路径:

1、session文件的保存路径可以在phpinfo的session.save_path看到。

 

PHP文件包含小总结

 

2、默认路径:

/var/lib/php/sess_PHPSESSID

/var/lib/php/sess_PHPSESSID

/tmp/sess_PHPSESSID

/tmp/sessions/sess_PHPSESSID

session的文件名格式为sess_[phpsessid]。而phpsessid在发送的请求的cookie字段中可以看到。 

 

PHP文件包含小总结

 

利用:

1.要包含并利用的话,需要能控制部分sesssion文件的内容。可以先包含进session文件,观察里面的内容,然后根据里面的字段来发现可控的变量,从而利用变量来写入payload,并之后再次包含从而执行php代码。

2.例如现在有一个session.php可控用户会话信息值:

 

PHP文件包含小总结

 

3.可以看到这个session.php文件中的用户会话信息username的值是用户可控制的,那我们就可以传入恶意代码进行攻击利用。

 

PHP文件包含小总结

 

4.将恶意代码传入以后,接下来就要利用文件包含漏洞去包含这个恶意代码。

 

PHP文件包含小总结

 

5.从返回结果来看,我们的payload和恶意代码已经正常解析和执行。

3.2.Getshell之日志 3.2.1.访问日志

条件:需要知道服务器日志的存储路径,且日志文件可读。

日志存储默认路径:

1.apache+Linux日志默认路径:/etc/httpd/logs/accesslog或/var/log/httpd/accesslog

2.apache+win2003日志默认路径:D:xamppapachelogsaccess.log、D:xamppapachelogserror.log

3.IIS6.0+win2003默认日志文件:C:WINDOWSsystem32Logfiles

4.IIS7.0+win2003 默认日志文件:%SystemDrive%inetpublogsLogFiles

5.nginx 日志文件:日志文件在用户安装目录logs目录下,假设安装路径为/usr/local/nginx,那日志目录就是在/usr/local/nginx/logs下面

利用:

1.多数情况,web服务器会将请求写入到日志文件中,比如说apache。在用户发起请求时,会将请求写入access.log,当发生错误时将错误写入error.log。默认情况下,日志保存路径在/etc/httpd/logs/下。

2.但如果是直接发起请求,会导致一些符号被编码使得包含无法正确解析。可以使用burp截包后修改。

 

PHP文件包含小总结

 

3.正常的php代码已经写入了 /etc/httpd/logs/access.log。然后包含即可执行代码。

 

PHP文件包含小总结

 

4.但有的时候,log的存放地址会被更改。这个时候可以通过读取相应的配置文件后,再进行包含。

中间件默认配置文件存放路径:

1.apache+linux 默认配置文件

        /etc/httpd/conf/httpd.conf或/etc/init.d/httpd

2. IIS6.0+win2003 配置文件

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

3. IIS7.0+WIN 配置文件

        C:WindowsSystem32inetsrvconfigapplicationHost.config

3.2.2.SSH log

条件:需要知道ssh-log的位置,且可读。

ssh日志默认路径:

1./var/log/auth.log

2./var/log/secure

利用:

1.用ssh连接:

ssh '<?php phpinfo(); ?>'@remotehost

之后会提示输入密码,随便输入就可以。

 

PHP文件包含小总结

 

2.然后利用文件包含,包含日志文件:

 

PHP文件包含小总结

 

3.3.Getshell之environ

条件:

 

php以cgi方式运行,这样environ才会保持UA头。

 

 

environ文件存储位置已知,且有权限访问environ文件。

 

environ文件默认位置:

proc/self/environ

利用:

1.proc/self/environ中会保存user-agent头。如果在user-agent中插入php代码,则php代码会被写入到environ中。之后再包含它,即可。

2.例如我们现在访问一个网站,使用burpsuite抓包,将恶意代码插入到user-agent中。

 

PHP文件包含小总结

 

3.利用文件包含漏洞去包含proc/self/environ,成功执行php代码。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!