美文网首页
一步一步学习 Web 安全 2.3 SQL 注入 dvwa 简单

一步一步学习 Web 安全 2.3 SQL 注入 dvwa 简单

作者: f1a94e9a1ea7 | 来源:发表于2020-05-19 21:02 被阅读0次

    前面了解了 SQL 注入原理和步骤,现在来简单的上手体验一下。

    如果还没有搭建 dvwa 的话移步 DVWA 的安装 进行搭建。

    练习

    1. 把 dvwa 的难度调到 low,进入 SQL Injection

    2. 试着输入:1,点击 submit 后,页面上显示了 first name 和 surname,可见这里是根据输入的 id,返回该 id 对应的 first name 和 surname 两个字段,再随意输入一个很大的数字,比如 233,页面没有任何返回,猜测当数据库里不存在这个 id 时,不返回任何数据

    3. 判断是否存在注入,输入:1',页面返回异常,说明极有可能存在注入

    4. 输入:1' and '1' = '1,页面正常执行,输入 1' and '1' = '2,没有返回数据

    5. 输入: 1' or '1' = '1,返回了所有数据,说明确实存在 SQL 注入

    6. 开始获取数据:1' union select database(), user() # ,可以看到返回了两个数据库和对应的用户名。
      这里有一个特别要注意的是如果输入:
      1' union select database(), user(), version() #
      或者:
      1' union select database() #
      都会返回报错,可以看到报错内容是:The used SELECT statements have a different number of columns,意思是 union 前后两条语句返回的列数不一样。
      前面已经知道输入:1,返回了两个字段,那么 union 后面这条语句也需要返回两个字段,1个或者3个都会报错。

    7. 获取当前数据库:1' union select 1,database() #

    8. 获取库名后就可以获取表名:1′ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #

    还想获取其他数据可以参考上一节的内容,这里只是简单体验一下,更多的详细的内容后面会细说。

    上一节:一步一步学习 Web 安全 2.2 之 SQL 注入步骤
    下一节:一步一步学习 Web 安全 2.4 之 mysql union 联合查询注入

    相关文章

      网友评论

          本文标题:一步一步学习 Web 安全 2.3 SQL 注入 dvwa 简单

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