前言:

终于是吧cracer的渗透教程看完了,
也终于是有点时间来整理这些凌乱的笔记了,
关于SQL注入后面会陆续把写的笔记整理成文章,敬请期待!
有什么疑问可以评论也可以直接私信

杂谈:

送给萌新的几句话:
SQL注入对于想学安全方面的人来说算是一个很基础的知识,
所以不要以为学完了SQL注入自己就是大神了,路还远着呢。

学习网络安全方面,实操很重要!很重要!很重要!
所以这方面的学习一定要以理论和实操相结合的方式,这样你才会真正有所收获和成长。

SQL注入方面的实操
线上可以去CTFhub,墨者,或者一些免费的线上靶场练练手(这里不提供了,自己勤快点)
线下可以自行搭建实验靶场,然后找诸如DVWA,Sqlilabs,等等环境(多动手很有用的)
怎么搭靶场可以参考我前面写的一篇文章

SQL注入

  • 前言:
  • 杂谈:
  • 一.SQL注入原理:
  • 二.SQL注入分类:
  • 三.注入步骤:
  • 四. 数据库类型
  • 五.注入分类详解
    • 1.按查询类型分类注入
      • (1)数字型:
      • (2)字符型:
      • (3) 搜索型:
    • 2.判断是否存在三种注入漏洞
      • (1)数字型
      • (2)字符型
      • (3)搜索型

一.SQL注入原理:

进入网页里请求的数据要进入到数据库进行查询,如果查询语句不做限制就极有可能泄露数据库的数据

二.SQL注入分类:

按查询的类型分类:

  • 数字型SQL注入:查询语句是这样的:select * from user where id=1
  • 字符型SQL注入:查询语句是这样的:select * from user where name='lihua’
  • 搜索型SQL注入:查询语句是这样的:select * from user where search like '%1%'

按http的提交方式可以分为:

  • GET型注入
  • POST型注入
  • coookie型注入
  • http请求头注入
  • UserAgent注入

按效果可以分为:

  • 报错注入
  • 联合查询注入
  • 盲注(又可分为布尔盲注和时间盲注)
  • 堆查询注入

三.注入步骤:

1.首先判断是否有注入(例如利用1=1,1=2)
2.判断注入类型(例如加上‘’看是否报错)
3.判断数据库类型(构造不同的查询特征语句)
4.这一步众说纷纭,可以开始注入,也可先确定数据库权限再开始
5.查数据库的库名,表名,列名以及相应的数据

四. 数据库类型

目前主流的数据库有三种,Mysql,Ms sql servel,Oracle(Access暂且不提)
所以简单说说三种数据库的语句区别
(初学者也只能简单学习,想学好SQL注入这三种数据库还是要好好研究的)
注意1前面和最后的那个b后面没有’这个符号,因为要构成sql注入语句(设置成了字符型SQL注入)

  • 1’ or ‘ab’='a+'b --------------MS SQLserver数据库,字符串连接,成功这返回永真条件
  • 1’ or ‘ab’=‘a’'b ---------------Mysql数据库,字符串连接,成功这返回永真条件
  • 1’ or ‘ab’=‘a’||'b -------------Oracle数据库,字符串连接,成功这返回永真条件

之后的注入就以Mysql注入为例

五.注入分类详解

1.按查询类型分类注入

(1)数字型:

例如:http://www.baidu.com/1.php?id=1
原理:注入点为数字存在于大多数网页中(一般为查看用户信息,查看文章)
1.数据库原型:
select * from 表名 where id=1
2.条件构造:
如果存在注入则可以构造select * from 表名 where id=1 and 1=1 (蓝色代表你的输入)
解析:1=1代表永真,所以代表的意义为:
1=1 and 这个页面是正确的
因此你访问页面是有效的,所以就成功了


(2)字符型:

例如:http://www.baidu.com/1.php?user=admin
原理:基本同数字型
1.数据库原型:
select * from 表名 where user=“admin”(数据库中可为单引号可为双引号)
2.条件构造:
如果存在注入则可以构造select * from 表名 where id=‘admin‘ and 1=1 ‘ (蓝色代表你的输入,注意最左边那个单引号不是你的输入)
或者这么构造:select * from 表名 where id=‘admin‘ and 1=1 ‘–+ (蓝色代表你的输入)(其中–+在sql中表注释,其他的Mysql注释还有/**/,#)
3.Q&A
Q:有人可能会问了,为什么标红的没有单引号呢?
A:因为是把admin赋值给user,然后user代入到mysql查询语句中,单引号只存在于Mysql,故在网页上不显示
Q:这个单引号怎么看不懂?
A: 看下图


(3) 搜索型:

例如:例如:http://www.baidu.com/1.php?keyword=xxx
原理:都差不多
1.数据库原型:
select * from 表名 where 字段 like ‘%xxx%’
2.条件构造:
如果存在注入则可以构造select * from 表名 where id=‘%xxx%‘ and ‘%1%’=’%1 %’(蓝色代表你的输入)
因为搜索型比较特殊,所以可以构造一个’%1%’=’%1%'的语句构成永真条件,
闭合的话根据数据库原型进行考虑即可

2.判断是否存在三种注入漏洞

(1)数字型

(2)字符型

(3)搜索型

待续…

从0开始学SQL注入(超详细)相关推荐

  1. kafka-eagle-2.0.1安装及使用(超详细)

    kafka-eagle-2.0.1安装及使用(超详细) 一.简介 kafka-eagle是一个由国内团队开发的开源的可视化和管理软件.它可以同时监控多个集群.监控 Kafka 集群中 Topic 被消 ...

  2. MySQL8.0.22安装及配置(超详细)

    MySQL8.0.22安装及配置(超详细) 大家好,今天我们来学习一下 MySQL8.0.22安装及配置,好好看,好好学,超详细的 第一步 进入MySQL官网下载,如下图所示: 第二步 进入下载完成后 ...

  3. sql大全超详细【转】

    SQL 命令 这部分包含那些 PostgreSQL 支持的 SQL 命令的信息.这里的 "SQL" 就是该语言通常的含义: 每条命令的与标准有关的兼容性的信息可以在相关的参考页中找 ...

  4. SQL注入学习详细过程

    sql注入学习笔记 一.union注入 1.判断是否存在注入: 2.查询字段数量 3.查询SQL语句插入位置 4.获取数据库库名 5.获取表名 6.获取字段名 7.获取数据 union注入PHP代码 ...

  5. 网络安全必学SQL注入

    1.1 .Sql注入攻击原理 SQL注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一,它也是目前被利用得最多的漏洞.要学会如何防御SQL注入,首先我们要学习它的原理. 针对SQL注入的攻击行为 ...

  6. sql注入总结--详细

    文章目录 SQL注入总结 1.原理 2.数据库基础 系统函数 字符串连接函数 mysql注释符 union 操作符的介绍 order by介绍 字符串编码 数据库结构 导入导出相关操作 增删改函数 3 ...

  7. 0起点自学sql注入

    SQL 注入天书-ASP 注入漏洞全接触选择自 digituser 的 Blog 随着B/S 模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水 ...

  8. thinkphp日志泄漏漏洞_ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...

    ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件 根据官方文档对"防止SQL注入" ...

  9. 测试php框架漏洞,ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...

    作者: seay 下面是摘自thinkphp官方的一个公告,官方直接贴出这些东西是非常不负责的行为,跟上次apache公开的Struts2的代码执行一样的行为,会造成很多用户被黑.建议类似的厂商不要再 ...

最新文章

  1. Third-generation sequencing and the future of genomics 第三代测序和基因组学的未来
  2. java client类_Jmeter中自定义JavaSamplerClient类的编写
  3. 太阳能正在崛起 光伏养老蔚然成风
  4. 百度API_获取当前详细地址
  5. python函数增强代码可读性_写Python必须知道的这几个代码技巧!你会吗?
  6. SQLServer事务的隔离级别
  7. LeetCode Python实现 链表简单部分
  8. 用js把数据从一个页面传到另一个页面
  9. 基于qt的贪吃蛇游戏 c语言,基于QT的贪吃蛇游戏设计
  10. 转:企业数字化的本质,其实就这3条
  11. atom平台 android ia,ZTE Grand X IN:搭载Atom平台的Android机
  12. svg怎么转换成png格式?
  13. 一键铺货API(淘宝)
  14. 开发者能力大赏,谁是技术知识达人?
  15. 遇见--CondaHTTPError: HTTP 000 CONNECTION FAILED for url 怎么解决
  16. 支持向量机之线性可分支持向量机(一)
  17. Java 应用一般架构
  18. 【计算机·科技】互联网的黑科技来啦
  19. CDOJ 1644 KKX Sequence
  20. 一个黑科技,Python竟然可以伪造很多'假'的数据!

热门文章

  1. 10进制与26进制转化
  2. UE4 AI+行为树实现人物漫游巡逻效果
  3. 巧用工具将ppt转换成Word
  4. 半年收入超2亿RMB 独立游戏开发者的艰苦创业路
  5. Shell:环境变量
  6. linux 4g大小文件夹,Linux: 如何分割文件,不再被 4G 大小限制了
  7. 使用正则表达式匹配AA、AAA、AABB几个相同字符重复出现
  8. Harmonic Number 调和级数
  9. oracle++dtcol,DataCol概述 - Foxtable 中文帮助文档
  10. 从Steinar Gunderson的离职信谈起