学习渗透测试,一定要掌握各种漏洞的检测和利用方法。今天我们分析一下dvwa环境中sql注入从低级到高级的渗透步骤。

手动挖掘Sql注入,首先要发现注入点。以low级别为例,发现一个可以输入内容的文本框时,首先测试一下是不是存在sql注入。

Low Level

分别在文本框中输入1和1’进行测试。输入1时,回显正常,如下:

输入1’时,提示错误。此外,我们可以看到,我们在文本框中输入的内容会显示在url中,也就是说id参数通过get 方式传递。

确定了存在注入的点,就开始尝试注入。通过union select 1,2……测试该注入点可以显示的字段数。union select 1,unionselect1,2 均正常。union select1,2,3时出现报错,说明该注入点最多可以显示两个不同的字段。

确定该注入点可以显示的字段数之后,通过database()函数,获取当前数据库名称。当前数据库名称时“dvwa”

特别需要注意的是:直接用1’union selectdatabase(),user()进行注入,查看当前数据库和用户时,会报错,提示有三个单引号。这三个单引号是系统自动加上的,只要用“--”注释掉,就可以正常执行了。'--'是mysql数据库的单行注释符,而且第二个'-'后面一定要有一个空格(下面构造的SQL语句也是如此),这里它把后台添加的单引号注释掉了。用#注释时,会把submit注释掉。

知道当前数据库名称后,可以利用information_schema数据库获取当前数据库中存在的表。如下图所示,dvwa数据库中有两个表,分别为:guestbook和users。

知道当前数据库以及数据库中的表的名称之后,就可以猜解每个表中的有那些列。如下所示们可以dvwa.users表中有user和password这两组非常重要的数据。获得这个两组数据,就可以明确知道登陆用户以及该用户对用的密码。

用1’union select password,user fromdvwa.users -- 命令查看password和 user这两列中的数据。两列中的数据如下:

Medium Level

ID通过下拉菜单进行选择。选择不同ID时,URL并没有任何变化。

那么参数id并不是通过get方式传递的。通过burpsuit抓包,看一下抓取的请求包,发现参数使用post方式传递。可以看到我们上传的id参数如下:

通过修改参数id后面的注入语句进行注入尝试。具体可参考low级别的渗透过程。

在用1 union select1,table_name from information_schema.table wheretable_schem=dvwa命令,尝试查找dvwa数据库中的表时提示Unknown column 'dvwa' in 'where clause'。所以改用database()函数获取数据库名。Database()函数获取数据库名称时,没有出现报错。该命令显示,dvwa数据库中有两张表,分别是:guestbook和users。

知道dvwa中是的两个表的名字之后,继续查看每个表中包含那几个列:1 union select table_name,column_name from information-schema.columns where table_schema=database() and table_name=table_name。

由上一句注入测试,可以看到users表中有user和password两列。将这两列内容导出,我们就可以得到用户登录数据库。用select password,user from dvwa.users命令,查看password和user两列的内容。

High Level

先测试是否存在注入点。Id=1正常,id=1’时报错。可以确定存在sql注入漏洞。

利用union selectdatabase(),user()进行注入,发现只能显示一行内容,那么可以猜测源代码中,对回显的数量,做了限制。

在sql命令中,用#注释,发现可以回显多行内容。那么源代码中,应该是在id参数之后,对显示的内容做了限制。#注释掉id参数后面的命令,把对回显的限制注释掉了。

可以回显之后,后面的注入操作与low级别相同。

反过来,我们查看一下源码,可以发现,在id之后,利用limit语句限制select语句返回的数据数量。

*本文作者:EVA。本文属丁牛科技原创,如需转载请标明出处。

sql注入 练手网站_新手渗透测试训练营——SQL注入相关推荐

  1. sql注入 练手网站_靶场sql注入练手----sqlmap篇(纯手打)

    绝大数情况下,管理员的账号密码都在admin表里 查询字段名 构造 ?id=1 and 1=2 union select 1,column_name from information_schema.c ...

  2. 新手前端练手网站_程序员从入门到入狱:必收藏的七大网站

    作为一个正在自学JAVA的菜鸡,我把我在学习中用到的网站整理了一下,分享给和我一样正在学习编程的小白们. 1.菜鸟教程 菜鸟教程是零基础小白入门的一个必备网站,菜鸟教程包含了所有跟编程有关的技术.从前 ...

  3. 新手前端练手网站_影视后期新手大礼包

    点击上方蓝色字关注我们~ 为什么很多人学习影视后期学不下去?为什么很多人学习影视后期不知道是为了什么?无论是工作需要,或者兴趣爱好,又或者转行设计.还在迷茫的你,请认真看完下面的视频,会对你有十分大的 ...

  4. 新手前端练手网站_编程到底难不难学?新手入门选择哪种语言好?

    以下内容适合的读者:想要学习编程的小白 一.编程到底难不难学? 对于这个问题我的回答是不知道,学会了编程的人会说好学,中途就放弃的人会说很难,任何知识想要掌握好都不是一件容易的事情.所以我决定用自己的 ...

  5. Web渗透测试对靶机注入shell(phpMyAdmin)

    Web渗透测试对靶机注入shell 文章目录 Web渗透测试对靶机注入shell 1.寻找目标信息 netdiscover扫描 nmap扫描 利用御剑后台进行扫描 2.对登录页面进行暴力破解 启动bu ...

  6. WEB渗透测试知识梳理-注入类-1-SQL注入-Mysql

    渗透测试知识梳理-注入类-1-SQL注入-Mysql 1. SQL注入 1.1 漏洞简介 1.2 漏洞危害 1.3 漏洞详情 1.3.1 MySQL注入 1.3.1.1 报错注入 1. floor() ...

  7. sql server ssl安全错误_渗透测试 丨 SQL注入的攻与防

    " 注入攻击漏洞,例如SQL,OS以及LDAP注入.这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候.攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者 ...

  8. 【渗透测试】SQL注入笔记

    目录 SQL注入原理 两个关键条件 输入位置 总结 数据库查询语法 手注流程-数据库注入漏洞 第一步:判断注入点 第二步:判断字段数 第三步:判断回显点 第四步:查询相关内容 SQL注入原理 用户输入 ...

  9. Web渗透测试(sql注入 access,mssql,mysql,oracle,)

    Access数据库注入: access数据库由微软发布的关系型数据库(小型的),安全性差. access数据库后缀名位*.mdb, asp中连接字符串应用-- "Driver={micros ...

最新文章

  1. 找出字符串中所有数字
  2. “.中国”域名注册总量超26.6万:11月份净减193个
  3. 懒到极致之怒撸一键打包发布系统
  4. 北邮OJ 2016网预 - Saber's Conjecture
  5. php数据库录入和输出,PHP数据库之CURD操作
  6. TFS2017持续发布中调用PowerShell启停远程应用程序
  7. 利用tushare进行对兴业银行股价的爬取,并使用numpy进行分析
  8. javaWeb RSA加密使用
  9. 剑指offer 面试题64. 求1+2+…+n
  10. Altium AD20原理图元件自动编号,位号重新排序
  11. python3.7安装tensorflow-gpu_tensorflow-gpu安装的常见问题及解决方案
  12. UDP 理论概述与编码入门
  13. [转载]在iTOP-4412开发板上调试helloworld应用
  14. PCA方法从原理到实现
  15. Java中类与对象的关系与区别
  16. Dezender的使用
  17. FEEMD-快速EEMD
  18. 我是如何搭建一台家庭NAS的
  19. oracle的date_add,SQL Server 中add函数到 oracle date add的操作
  20. ext2与ext3的区别

热门文章

  1. 数字性格分析测试软件,性格测试:从你喜欢的数字看个性
  2. vegan素食认证介绍
  3. 用 Ghost 软件实现基于 PXE 的网络硬盘克隆
  4. 放射性同位素标记/radioisotope labeling用于放射性同位素的标记/同位素示踪利用放射性核素化合物
  5. MYSQLDUMP参数详解 --all-databases
  6. 智能电话机器人小白使用搭建
  7. 百度网盘播放地址html,百度云web播放器cyberplayer的flv播放地址一定要支持跨域访问如何设置...
  8. QQ 为什么不能有 Linux 客户端
  9. 怎么在贴吧做推广之养号篇
  10. 西电2018计算机复试线,2018年硕士研究生招生考试复试通知