首页 > 数据库 >sql注入基础

sql注入基础

时间:2023-07-08 10:56:12浏览次数:51  
标签:语句 union 列数 基础 sql select 注入

1.基于错误的注入

错误注入的思想是通过构造特殊的sql语句,根据返回的错误信息,确定注入点。

通过错误信息也可以探测数据库类型和版本等有用信息

通过输入单引号,触发数据库异常,通过异常日志判断数据库类型

2.基于布尔的注入

布尔注入的思想是闭合sql语句,构造or和and逻辑语句,注释多余的代码

例如 原sql语句:select * from Users where username='username' and password='pwd'

利用布尔注入构造语句: select * from Users where username='' or 1=1 -- ''and password='pwd',由于1=1恒真,所以可以返回所有表里面的信息。

简单的应用是万能密码: ‘ or 1=1#

3.基于union的注入

union语句用于联合前面的select语句获取更多信息

一般通过错误和布尔注入确认注入点后,就开始通过union语句获取信息

 

通过order by语句确认前面select语句的列数,

414a9060-9d5e-46ee-bbb5-fc85dd67d3c0.node4.buuoj.cn:81/index.php?id=1%27 order by 4 -- + 

此时恰好没有页面没有回显,确认列数为3

414a9060-9d5e-46ee-bbb5-fc85dd67d3c0.node4.buuoj.cn:81/index.php?id=0%27 union select 1,database(),version() -- +

union联合的select语句的列数一定要与前面select语句查找的列数相同,如果union后select语句列数比原语句列数少,可以加数字填充,如果比前面多,需要用group_concat()关键字把内容合并成一条数据。这里利用union语句,得到了当前库名为note和数据库版本

4.基于时间的盲注

有些数据库对错误信息做了安全配置,使得无法通过上面方式确认注入点,通过设置sleep语句探测注入点

用法是: 测试的数据' and sleep(t) -- +

如果测试的数据存在数据库,页面会延迟t秒相应

 

标签:语句,union,列数,基础,sql,select,注入
From: https://www.cnblogs.com/dg05/p/17476320.html

相关文章

  • mysql 慢查询处理
    mysql执行EXPLAINSELECT`post`.*,`category_post`.`category_id`FROM`mj_portal_post``post`INNERJOIN`mj_portal_category_post``category_post`ON`post`.`id`=`category_post`.`post_id`WHERE`post`.`post_status`=1AND`post`.`post_type`=1AND`post`......
  • 一文彻底搞懂MySQL基础:B树和B+树的区别 转载 https://blog.csdn.net/a519640026/arti
    写在前面大家在面试的时候,肯定都会被问到MySql的知识,以下是面试场景:面试官:对于MySQL,你对他索引原理了解吗?我:了解面试官:MySQL的索引是用什么数据机构的?我:B+树面试官:为什么要用B+树,而不是B树?我:…面试官:用B+树作为MySql的索引结构,用什么好处?我:…B树和B+树是MySQL索引使用的数据结构......
  • MySQL常用知识点总结
    MySQL常用知识点总结参考地址:(https://maifile.cn/est/a3206887806899/pdf)【一】知识点总结【二】多表查询【三】常用函数【四】Excel数据清洗......
  • (MySQL)开启慢查询日志
    MySQL的慢查询日志默认没有开启,我们可以查看一下系统变量slow_query_log。showvariableslike'slow_query_log';修改/etc/my.ini如果要开启慢查询日志,需要在MySQL的配置文件(E:\ProgramData\MySQL\MySQLServer8.0\my.ini)中配置如下信息:#开启MySQL慢日志查询开关slow_......
  • 一次删除mysql中多个表 的方法
     需要一次性删除大量满足特定条件的表名(一般是表名称满足某些关键字)1、首先生成删除drop语句2、执行语句  mysql-uroot-p1111usedb1;--查询构建批量删除表语句(根据数据库中的表名称模糊查询)selectconcat('droptables',TABLE_NAME,';')asdroptablefr......
  • 查看sql server数据库连接情况
    SELECT*FROM[Master].[dbo].[SYSPROCESSES]WHERE[DBID]IN(SELECT[DBID]FROM[Master].[dbo].[SYSDATABASES]WHERENAME='你的数据库名称')系统存储过程SP_WHO提供关于当前 Microsoft?SQLServer?  用户和进程的信息。可以筛选返回的信......
  • HTML 基础
    1.初始HTML1.1HTML简介HTML是用来描述网页的一种语言HyperTextMarkUpLanguage简称HTMLHTML不是一种编程语言而是一种标记语言HTML使用标记标签来描述网页HTML文档也叫web页面1.2后缀1.3什么是HTML1.4实例解析1.5HTML标签1.6HTML版本1.7......
  • JavaScript必会基础知识
    本手册的目标是快速向您介绍JavaScript的基础知识,以便您可以开始编写应用程序。我不会涵盖JavaScript的所有理论和概念,而是只教您该语言最重要的构建块。我们将介绍变量、数据类型、函数、对象、数组和类等内容。您还将学习如何将它们全部混合起来构建一个小而可靠的程序。......
  • Mysql8.0配置Mysql主从复制GTID复制和延迟从库应用
    一、Mysql主从复制1、Mysql主从复制的作用和原理  1)主从复制的作用  防止单节点数据库故障数据丢失 增强数据的安全性和可靠性 2)原理  主Mysql开启二进制日志 从数据库监听主Mysql二进制日志变化 从复制二进制日志到本地 读取复制的二进制日志执行二进制日......
  • Go语言基础-Go语言基础语法入门
    第01天Go语言基础语法入门1初识GO语言简介Go是一门开放源码的编程语言,可容易构建,简单、可靠和高效的软件历史Go语言是由谷歌的开发工程师(罗伯特·格瑞史莫、罗勃·派克、肯·汤普逊等)于2007年开始设计,利用20%的自由时间开发的实验项目,并于2009年以BSD-style授......