sql注入

本文详细介绍了SQL注入的概念、作用、分类及学习平台。内容涵盖不同类型的SQL注入,如数字型、字符型、显错注入、盲注等,并通过实际操作展示了SQL注入的步骤和利用技巧,包括Metasploitable2平台上的实践,帮助读者深入理解SQL注入的原理和防范措施。
摘要由CSDN通过智能技术生成
SQL注入:

   所谓的SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或请求页面的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

SQL注入作用:
  • 绕过登录验证:使用万能密码登录网站后台等
  • 获取敏感数据:获取网站管理员帐号、密码等
  • 文件系统操作:列目录,读取、写入文件等
  • 注册表操作:读取、写入、删除注册表等
  • 执行系统命令:远程执行命令
SQL注入分类:
1. 按照数据类型:
  • 数字形(Integer)
  • 字符型(String)
2.按返回结果:
  • 显错注入(Error-Based)
  • 盲注(Boolean/Time-Based Blind)
其他分类:
  • POST注入:注入字段在POST数据中
  • Cookie注入:注入字段在Cookie数据中
  • 搜索注入:注入处为搜索的点
  • Baes64注入:注入字符串需要经过base64加密
  • 布尔型盲注:即可以根据返回页面判断条件真假的注入
  • 时间延迟型盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断
  • 报错回显型注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
  • 联合查询型注入:可以使用union的情况下的注入
  • 堆查询型注入:可以同时执行多条语句的执行时的注入
学习平台
–Metasploitable2

   Metasploitable2是Metasploitable2团队维护的一个集成了各种漏洞弱点的linux主机(ubantu)镜像,方便广大安全人员进行MSF漏洞测试跟学习,免去搭建各种测试环境。


   SQL注入中最常见利用的系统数据库,经常利用系统数据库配合union联合查询来获取数据库相关信息,因为系统数据库中所有信息都在这个数据库里面,比如所有数据库名、所有的表名、列名以及列名的数据库类型等
   这里主要关注MYSQL系统数据库information_schema,关注系统数据库的columns表和schema表以及tables

SCHEMATA表:提供了关于数据库的信息
在这里插入图片描述

COLUMNS表:给出了表中的列信息
在这里插入图片描述

TABLES表:给出了关于数据库中的表的信息
在这里插入图片描述

   SQL函数是在SQL注入中用的比较多的,经常利用SQL函数来判断数据库的版本,当前用户,当前用户权限以及数据库的安装路径等等 如下图:
在这里插入图片描述

注入步骤
1.求闭合方式

一般的闭合方式包括 ‘ ’, “ ”,( ),{ } ,(‘ ’)等等
例如:

当输入/?id=1’ and 1=1 --+时页面显示时,页面显示正常输出时
在这里插入图片描述
当输入/?id=1’ and 1=2 --+时页面显示时,页面显示不输出时
在这里插入图片描述

说明该闭合方式正确,闭合方式为‘ ’,如果不对再一个个试闭合方式。
注:- -+的作用是将后面的代码注释掉

2.查询表的列数

使用order by +数字

/?id=1’ order by 10 --+
不出结果表示猜的数大了,则利用二分法减半再试
在这里插入图片描述出结果了就表示猜对了
在这里插入图片描述

图中表明列数为3列

3.查询表的显示位

利用/?id=-1’ union all select +求出来的列数

为什么前面的id中是-1而不是1
因为在Metasploitable2的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值