设为首页收藏本站
查看: 1092|回复: 16

纯干货!最牛逼的基础SQL注入漏洞全图文

[复制链接]
  • TA的每日心情
    慵懒
    5 小时前
  • 签到天数: 127 天

    [LV.7]常住居民III

    发表于 2020-6-30 14:07:42 | 显示全部楼层 |阅读模式
    大家好 我是中国红客联盟教务处讲师:蛋壳
    前几期的情报收集以及XSS的教学贴反馈不错 如果没有看过我的前几期的贴子 请移步至:http://www.cnhonkerarmy.com/thread-250598-1-1.html
    http://www.cnhonkerarmy.com/thread-251045-1-1.html http://www.cnhonkerarmy.com/thread-246323-1-1.html 进行观看学习

    鉴于最近红盟灌水严重 再次声明 本人全部文章均为"蛋壳"原创作品 投放至中国红客联盟 转载请告知
    ------------------------------------------------正文------------------------------------------------
    注意:本贴目的主要让各大网民知道如何防护自己隐私不被泄露 可能涉及敏感因素较多 请勿以身试法 !!!
    我们这次的教学贴以DVWA靶机作为实战目标
    关于dvwa靶机的搭建 可在各大搜索引擎得到答案
    我们先登录dvwa靶机 将安全设置成 low(最低)级别

    然后移步到SQL Injection选项卡 进行SQL注入漏洞的分析和实战

    我们在输入框输入"1”提交看下


    同理  输入"2" 看下网站反馈过来的信息

    由此我们做一个对比 当我们输入1 和2 网站反馈过来的内容是不同的 那么我们做一个思考
    为什么我们输入1和2反馈的内容是不同的呢?
    这里就涉及到一个知识点 叫数据库
    数据库常见的有 MYSQL MSSQL ACCESS 等数据库
    他们起到的作用主要是储存数据
    我们可以做一个比方 把网站的数据库比作一家书店的仓库 那么书店仓库储存的是不是这个书店的书记? 那么网站的数据库储存的是什么? 是不是网站的数据
    通过百度搜索 证实了我们这一观点

    那么我们就知道一点 我们在网页上输入的1 和 2 输出的内容 是保存在数据库里的
    得到这一结论 我们再去考虑 是什么东西让数据库的内容显示在网页中的呢
    这里同学们要去学习一个名词 叫  SQL语言
    我们一起看看百度百科是怎么定义这个SQL语言的

    我们是不是知道 这个SQL语言是干什么的了 他是用于存取数据以及查询数据库的内容的一个语言
    就相当于我们输入1 和 2  他通过这个SQL语言到数据库去查询ID是1 id是2的内容 反馈给我们的
    这里我们又涉及到一个学习内容 "ID"
    id是什么 对于我们一些新手朋友可能并不清楚 这里要涉及到数据库的一个结构了
    我们把 XLS 工作表 比作成数据库

    打开工作表 就比作进入数据库的内部

    我们可以看到 工作表下面有1 2 3 这几个页

    那么我们知道 每个页如果编写好内容 内容是不同的
    我们把工作表下面的页叫做数据库的"表"
    那么我们接着往下看

    我在表格里输入了这些个内容 大家应该对admin password不陌生吧(不知道的这里去百度就很清晰了)
    而ID 就相当于我们去吃饭 有的时候是不是要排号 比如我是一号 那么我的id就是1
    这里id就是起到一种 排序的作用
    那么我们在回到我们的dvwa靶机里考虑这个问题
    我们刚刚id输入的1 他通过上文说的sql语句 在数据库查询到了id等于1的一个内容反馈给我们了
    是一个什么原理呢 这里跟大家对他这个源代码进行分析一下

    这里大家可能看不懂 很正常 你们主要注意这么一条

    这句话就是一条sql命令 我们仔细看这条命令
    在输入框内输入 ID后,系统会自动返回ID对应的用户名
    在数据库里运行这句代码就是这样的

    但是这条语句却有一条致命缺陷
    我们注意一个地方

    这条语句这个位置是有俩上引号的
    这俩上引号的作用就是 让这句话可以执行
    就相当于小时候的1+1=2一样 这个引号就相当于等于号 如果考试你不写这个等于号 老师肯定给你算错
    在SQL语言里也一样
    而这个引号内的内容$id 就是我们输入的内容
    如果我们输入1 那么$id 就变成了1 语法就变成了这样

    那么这里聪明的同学就会说 既然这条语句的上引号我们是没法改的 因为这俩是网站程序员写的 我们访问肯定是没权限去修改的 那么我们能否在1后面输入一个上引号(‘) 那样不就多出来一个了么?
    好的 那么我们实际去操作一下

    然后提交

    好的 我们可以看到 网站提示了这样的页面
    这里我和大家说一下这个页面的意思 就是SQL语法有问题
    那么我们去考虑 为什么会有问题呢 是不是我们多加了一个上引号啊 我们加这个上引号 让前面那块没问题 但最后多了一个 就像1+1=2 考试的时候你非得写1+1==2 俩等于 可能有的老师会给你正确 但是在SQL语法里 他是很严格的 会直接给你报错 告诉你这块有问题
    那么我们去构造这么一个语句

    然后我们先去提交看看会发生什么

    这里大家可能不理解 为什么我输入这个神奇的代码就出现之前没遇到过的东西
    我来带大家分析下我这句神奇的代码
    这块代码 在sql语句里 完整的应该是这样的

    前面这块 是程序员开发的sql语句 既然这块我们输入我们自己的上引号 浏览器可以去执行 但是报错了 那么我们替换成我这个语句 执行 就相当于

    前面这块语法没问题 程序员本身也是这么写的 但是要注意 我们是在1后多加了一个上引号 使其前面一块语法正确
    那么我们看后面

    这块是这样的 是我们自己拼接的代码 这句代码主要是这个意思 就是获取当前连接的数据库名称、数据库的版本
    就相当于 前面是他网站自己的sql命令 紧跟着后面我们插入了我们自己的sql命令
    然后有同学肯定会问 老师你刚刚不是说 他程序员开发的时候 是俩引号保证语法正确 但是你自己又输入了一个 那不就应该错误了么

    这里就是语法的一个问题了 我们要记住 在数据库语法里 #后的内容就相当于一个注释的作用 通俗的话说 就是#后的所有内容 不去执行他
    这样就避免了我们的多一个上引号报错的问题
    那么同理 按照我们这个思路 或者利用工具辅助 最终利用漏洞得到数据库的用户名账号密码

    可移步到https://blog.51cto.com/14113984/2427991访问进行深度学习
    这就是我们今天聊得内容 基础的SQL注入漏洞相信你有了一个初步的认识了吧

    下课!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    点评

    起立!老师再见!  发表于 前天 17:14
  • TA的每日心情
    郁闷
    昨天 17:32
  • 签到天数: 57 天

    [LV.5]常住居民I

    发表于 2020-6-30 14:17:52 来自手机 | 显示全部楼层
    蛋壳出品,必属精品,收藏了
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:07
  • 签到天数: 78 天

    [LV.6]常住居民II

    发表于 2020-6-30 14:10:24 | 显示全部楼层
    牛逼牛逼,学到了学到了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:41
  • 签到天数: 107 天

    [LV.6]常住居民II

    发表于 2020-6-30 15:06:15 | 显示全部楼层
    这两天正好刚开始接触注入,学习到了
    不过感觉注入的指令好难记啊,请问有什么技巧吗?还是就只能硬背?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2 小时前
  • 签到天数: 197 天

    [LV.7]常住居民III

    发表于 2020-6-30 19:33:41 | 显示全部楼层
      蛋总牛逼
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-6-8 19:37
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2020-6-30 19:36:52 来自手机 | 显示全部楼层
    蛋总牛逼,太强了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 09:50
  • 签到天数: 60 天

    [LV.6]常住居民II

    发表于 2020-6-30 19:40:24 | 显示全部楼层
    蛋总厉害,冲冲冲
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 14:34
  • 签到天数: 97 天

    [LV.6]常住居民II

    发表于 2020-6-30 19:49:12 | 显示全部楼层
    我来学习了,学到了学到了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:04
  • 签到天数: 732 天

    [LV.9]以坛为家II

    发表于 2020-6-30 22:06:02 | 显示全部楼层
    大佬出手,必为精品!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2 小时前
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2020-7-1 09:36:59 来自手机 | 显示全部楼层
    牛逼牛逼。早就仰慕蛋壳了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-7-3 19:23
  • 签到天数: 173 天

    [LV.7]常住居民III

    发表于 2020-7-1 19:57:29 | 显示全部楼层 赞助商
    边梓墨 发表于 2020-6-30 15:06
    这两天正好刚开始接触注入,学习到了
    不过感觉注入的指令好难记啊,请问有什么技巧吗?还是就只能硬背?

    你只要懂他意思就行了,指令网上一大堆,何必去记呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:41
  • 签到天数: 107 天

    [LV.6]常住居民II

    发表于 2020-7-1 21:09:58 来自手机 | 显示全部楼层
    lousiyuan 发表于 2020-7-1 19:57
    你只要懂他意思就行了,指令网上一大堆,何必去记呢?

    哦哦好的,谢谢指导
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    前天 10:44
  • 签到天数: 73 天

    [LV.6]常住居民II

    发表于 2020-7-1 21:27:17 | 显示全部楼层
    蛋总出品必属精品!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 12:38
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 前天 12:51 | 显示全部楼层

    我来学习了,学到了学到了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    前天 13:04
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 前天 13:06 | 显示全部楼层
    没上课怎么就下课了😏
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /3 下一条

    红盟社区--中国红客联盟 

    Processed in 0.080837 second(s), 27 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表