美文网首页
SQLDUMB LESSON-1

SQLDUMB LESSON-1

作者: Jodiey | 来源:发表于2019-04-04 11:58 被阅读0次

网络安全相关方面,以SQLDUMB 为实践,此篇是关于lesson 1中自身知识匮乏的记录

    本文从以下两个方面阐述
  • Mysql 中 information_schema
  • Mysql 中 注释符 '--' 以及 '#' 的采坑

Mysql 中 information_schema
在此只对注入过程中用到的方面进行记录

    information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。记录了数据库当中字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等。
   SQL注入中,可利用该表可以进行一次完整的注入。

  • 猜数据库
    SELECT schema_name FROM information_schema.schemata
  • 猜某库的数据表
    SELECT table_name FROM information_schema.tables WHERE table_schema='xxxxx'
  • 猜某表的所有列
    SELECT column_name FROM information_schema.columns WHERE table_name='xxxxx'
  • 获取某列的内容
    SELECT *** FROM ****

注释符 '--' 以及 '#' 的采坑

一. 在数据库中,尝试‘--’注释符

    1. 代码如下:
      select * from users where id = '1' order by 3 --' limit 0,1
    1. 查询结果失败,注释语句出现问题 -- 查询语句失败.png
    1. 修改上述sql语句,代码如下:
      select * from users where id = '1' order by 3 -- ' limit 0,1
    1. 查询成功: -- 注释查询成功.png

\color{red}{通过对比得,sql语句注释符 [--] 与其后需要注释的语句间,必须有 [空格]}

    1. 进行SQL注入,修改url,代码如下:
      http://localhost/sql/Less-1/?id=1' order by 3 --+
    1. 查询结果如图所示: 代入 '--+' 注释符到Url.png
    1. 作为对比,查询不带 '+' 的语句,结果如下,抛出异常: 不代入 '--+' 注释符到Url.png

总结:HTTP请求中, [+] 被自动识别为[空格] 符,从而满足sql带注释的语句语
上述 [+]可同样用url 中代表空格的编码 [%20]代替


二. 在数据库中,尝试‘#’注释符

    1. 代码如下:
      select * from users where id = '1' order by 3 #' limit 0,1
    1. 查询结果如图所示,数据库中可查询到数据,说明语句没有问题 带有 '#' 注释符的查询.png
    1. 进行SQL注入,修改url,代码如下:
      http://localhost/sql/Less-1/?id=1' order by 3 #
    1. 查询结果如图所示, 代入 '#' 注释符到Url.png
    1. 根据上图可查看到,传入的参数为 1' order by 3,并没有像类似数据库中的查询语句,将\color{red}{\# ' \ limit\ 0,1} 注释,从而导致语句查询失败
    1. 将 '#' 号改成url的编码%23,代码如下:
      http://localhost/sql/Less-1/?id=1' order by 3 #
    1. 查询结果如下图: 修改‘#’为%23.png

总结:HTTP请求中不包括#,url中#号是用来指导浏览器动作的在服务器端无响应


    以上便是对Lesson 1 中个人知识的一些补充

相关文章

网友评论

      本文标题:SQLDUMB LESSON-1

      本文链接:https://www.haomeiwen.com/subject/srozbqtx.html