《小迪安全》学习笔记05
目录
读取:
写入:
(其中的读取和写入时我认为比较重要的,所以单独做成了目录,这里的读取和写入是指在进行sql注入的时候与本地文件进行的交互)
好久没发博客了。。。从这篇开始的小迪安全学习笔记就开始进入到漏洞模块了,这篇主要是讲一些与sql注入相关的思想,杂谈一些内容吧先。。
区分两个东西:
SRC:发现漏洞接即可
实战:发现漏洞之后,要根据这个漏洞获取一些相应的权限,如后台权限,甚至是网站权限,最后是提权,获取敏感信息,提供修复建议等等。
高危漏洞:sql注入,upload,文件包含,未授权访问,命令执行
中危漏洞:反序列化,逻辑漏洞
低危漏洞:目录遍历,文件读取,XSS跨站
CTF中web题一般考sql注入,文件上传,反序列化,代码执行,最后渗透测试的关键在于信息收集,(手工加工具都同样重要)。
目录遍历漏洞:其中有些目录不用自己猜,是可以用工具扫到的,其次扫的时候要注意看有没有狗,有狗不能扫否则会把你IP拉黑,目录遍历中的一个小心眼:可以先读这个网站首页的index.php文件,其中可能会有其他目录所在位置信息。
漏洞都是需要一些其他的拿到的信息去配合的
区分:
目录遍历漏洞:只读取文件,文件夹名,只能但是不能读取到文件内容。
文件读取漏洞:单个文件读取,不能读取文件夹里面的内容。
SQL注入
接下来有四种(都有)可能存在注入漏洞的场景:
www.example.com/index.php?id=1
www.example.com/?id=1
www.example.com/index.php?id=1&x=1
www.example.com/index.php
第一个是最正常的,第二个是有些php开发的网站默认首页就是index.php,第三个是多个传参,哪个可以注入注入哪个,第四个是post传参。
一些小常识:
1.一些注入工具(sqlmap)除了指定注入点外,一般默认就是在最后面进行注入。所以在这种个情况下,可以自己把要注入的参数放到最后面:
(.php?a=1&b=2)这种其实是可以互换参数位置的,页面会正常返回,如:(.php?b=2&a=1)。
2.数据库中的点( . )代表下一级,比如 security.user就代表: security数据库下的user表

5.0以上高版本
5.0以下低版本
原来在sql注入中信息收集同样重要,主要收集:
- 数据库名字 select database();
- 数据库版本 select version();
- 数据库用户 select user();
- 操作系统 select @@version_compile_os;
select user() 查询用户
root@localhost是权限最高的用户。
那么出现漏洞的数据库(A网站)如果是root最高权限,那么就有可能对同一个数据库下的其他B网站,C网站进行跨库注入。
如果是普通用户的话,只能注入自己的网站数据库,如果是root用户,则可以跨库注入。
以sqli_labs靶场为例,一般的联合查询语句以及注意事项:
- select schema_name from information_schema.schemata
- select table_name from information_schema.tables where table_schema='security'
- select column_name from information_schema.tables where table_name ='users' (最好加上 and table_schema='security')
- select username,password from users
(最好写成 from security.users) 因为你在做题时,不一定就在security数据库下
#文件读写操作
读取:
load_file() 函数: 可以读取本地的文件(下图为读取C盘123文件夹下的1.txt)

注意:路径层级要用 / ,而不是 \
如果显示NULL,进行以下操作:
打开my.ini文件,在[mysqld]下面添加这行代码:
secure_file_priv=
然后重启mysql
写入:
into outfile函数
Into dumpfile函数

将ilwa写入2.txt文件中。
一般我们会用这些函数读取网站,服务器的敏感文件,配置信息,具体文件在网上找。也可以写入一句话木马,用蚁剑连接,直接获取网站权限。
获取网站目录/路径:
- 通过报错信息查看。
- 遗留文件 比如phpinfo.php 这里面出现了一些php配置的路径。

3.平台配置文件
注意:文件读写操作可能会被过滤(幻术引号)
只需要把php的 magic_quotes_gpc改为 off状态就行。
magic_quotes_gpc如果为on状态的话,它会将单引号,双引号,反斜杠(\),null前面都无差别加一个 反斜杠 ”\“
类似函数还有:addslashes()
绕过方法有两种:1.编码(16进制编码 HEX) 或者 宽字节绕过
因为编码用不到单引号,而且可以正常查询,亲测有效↓

相关防御手段:
- 幻术引号函数
- 内置函数过滤
比如: is_int()
- 自定义过滤 比如过滤 or and select where
- WAF 过滤 WAF也是主要靠2,3的过滤方法进行过滤
WAF绕过方法有:
更改提交方法
大小写混合
解密编码类
注释符混用
等价函数替换
特殊符号混用
借助数据库特性
HTTP参数污染
垃圾数据溢出
欢迎各位佬批评指正!
相关文章:
《小迪安全》学习笔记05
目录 读取: 写入: (其中的读取和写入时我认为比较重要的,所以单独做成了目录,这里的读取和写入是指在进行sql注入的时候与本地文件进行的交互) 好久没发博客了。。。从这篇开始的小迪安全学习笔记就开始…...
56_多级缓存实现
1.查询Tomcat 拿到商品id后,本应去缓存中查询商品信息,不过目前我们还未建立Nginx、Redis缓存。因此,这里我们先根据商品id去Tomcat查询商品信息。此时商品查询功能的架构如下图所示。 需要注意的是,我们的OpenResty是在虚拟机,Tomcat是在macOS系统(或Windows系统)上,…...
每日进步一点点(网安)
今日练习题目是PHP反序列化,也学习一下说明是序列化和反序列化 1.PHP序列化 序列化是指将数据结构或对象转换为可传输或可储存的格式的过程。这通常需要将数据转换为字节流或者其他编码格式,以便在不同系统和应用程序之间进行传输或存储 在PHP中&…...
宝塔php7.4安装报错,无法安装,php8以上可以安装,以下的不行,gd库什么的都正常
宝塔的依赖问题导致的问题,最后手动挂载后才解决。。。废了三天三夜终于搞好了。。。。无语~ 建议:不要一直升级宝塔版本,升级前备份或者开服务商的实例镜像,方便恢复,不然,可就GG了࿵…...
SDL2:PC端编译使用
SDL2:PC端编译使用 1. SDL2:PC端编译使用1.1 安装必要的依赖1.2 下载编译SDL21.3 SDL2使用示例:Audio1.4 运行示例程序 1. SDL2:PC端编译使用 1.1 安装必要的依赖 首先,确保安装了编译SDL2所需的依赖库: …...
Windows 蓝牙驱动开发-蓝牙设备栈
蓝牙设备栈 蓝牙驱动程序堆栈包含 Microsoft 为蓝牙协议提供支持的核心部分。 有了这个堆栈,已启用蓝牙的设备可以彼此定位并建立连接。 在此类连接中,设备可以通过各种应用程序交换数据并彼此交互。 下图显示了蓝牙驱动程序堆栈中的模块,以…...
docker一张图理解
1、push 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。参数说明: –disable-content-trust : 忽略镜像的校验,默认开启 # 上传本地镜像myapache:v1到镜像仓库中。 docker push myapache:v1 1.2、search 从Docker Hub查找镜像。参数说明: –…...
RocketMQ、Kafka、RabbitMQ,如何选型?
如何根据应用场景选择合适的消息中间件? 分布式、微服务、高并发架构中,消息队列(Message Queue,简称MQ)扮演着至关重要的角色。 消息队列用于实现系统间的异步通信、解耦、削峰填谷等功能。 目前常见的MQ实现包括RabbitMQ、Rock…...
RabbitMQ故障全解析:消费、消息及日常报错处理与集群修复
文章目录 前言:1 消费慢2 消息丢失3 消息重复消费4 日常报错及解决4.1 报错“error in config file “/etc/rabbitmq/rabbitmq.config” (none): no ending found”4.2 生产者发送消息报错4.3 浏览器打开IP地址,无法访问 RabbitMQ(白屏没有结…...
无公网IP 实现外网访问本地 Docker 部署 Navidrome
Navidrome 是一款可以在 macOS、Linux、Windows以及 Docker 等平台上运行的跨平台开源音乐服务器应用,它支持传输常见的 MP3、FLAC、WAV等音频格式。允许用户通过 Web 界面或 API 进行音乐库的管理和访问。本文就介绍如何快速在 Linux 系统使用 Docker 进行本地部署…...
pnpm add 和 pnpm install 的区别?
文章目录 1. pnpm add2. pnpm install3. 总结应用场景示例 在使用 pnpm 管理项目依赖时, pnpm add 和 pnpm install 是两个常用的命令,但它们的功能和使用场景有所不同。以下是详细的解释: 1. pnpm add 功能:用于向项目的 pack…...
Linux:文件描述符fd、系统调用open
目录 一、文件基础认识 二、C语言操作文件的接口 1.> 和 >> 2.理解“当前路径” 三、相关系统调用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基础认识 文件 内容 属性。换句话说,如果在电脑上新建了一个空白文档࿰…...
CPU负载与CPU使用率之区别
在日常的性能测试与系统监控中,CPU负载和CPU使用率是两个常见的指标,它们经常被提及,但也经常被混淆。本文将为你深入解析两者的区别,以及它们各自的意义和应用场景,让你更清楚地掌握这些关键性能指标。 存储、内存和 …...
C++实现设计模式---外观模式 (Facade)
外观模式 (Facade) 外观模式 是一种结构型设计模式,为子系统中的一组接口提供一个一致的界面。外观模式定义了一个更高层次的接口,使得子系统更容易使用。 意图 简化复杂子系统的接口。为客户端提供一个统一的入口,屏蔽子系统的内部细节。 …...
仿射密码实验——Python实现(完整解析版)
文章目录 前言实验内容实验操作步骤1.编写主程序2.编写加密模块3.编写解密模块4.编写文件加解密模块 实验结果实验心得实验源码scirpt.pyusefile.py 前言 实验目的 1)初步了解古典密码 2)掌握仿射密码的实现 实验方法 根据下图仿射密码(变换…...
【Qt 常用控件】按钮类(QPushButton、QRadioButton、QCheckBox)
按钮控件继承自抽象类QAbstractButton。 抽象类不允许实例化对象,内部定义纯虚函数。只能通过子类继承,重写纯虚函数的方式使用。 1. QPushButton 1.1 QAbstractButton中和QPushButton相关的属性 text按钮显示文本icon按钮图标iconSize按钮图标尺寸s…...
Amazon Relational Database Service (RDS)
Amazon Relational Database Service (RDS) 是 AWS 提供的一项完全托管的关系数据库服务,旨在简化部署、管理和扩展关系型数据库应用程序。通过 RDS,用户可以使用多种流行的关系数据库引擎,如 MySQL、PostgreSQL、MariaDB、Oracle 和 Microso…...
linux分配磁盘空间命令
使用命令lsblk查询linux磁盘空间时,发现空间并没有被分配完 如图,600G,但实际分配了一共199G,剩余500G,我们需要通过命令进行剩余存储的分配。 思路:创建新的分区->更新内核分区表->初始化新分区作…...
21_Spring Boot缓存注解介绍
前面我们通过使用@EnableCaching、@Cacheable注解实现了Spring Boot默认的基于注解的缓存管理,除此之外,还有更多的缓存注解以及注解属性可以配置优化缓存管理。下面我们针对Spring Boot中的缓存注解及相关属性进行详细讲解。 1.@EnableCaching注解 @EnableCaching是由Spri…...
【linux】grep、awk、sed实战练习(1)-template
一、grep常见用法 1.1.从文件中查找关键字符串 # 比如:查找/etc/nginx/nginx.conf文件包含"listen"的行 [rootecs_server test]# grep "listen" -n /etc/nginx/nginx.conf 52: listen 8088; 87: listen 8096; # 比如:查…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
