博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DVWA SQL Injection LOW
阅读量:6509 次
发布时间:2019-06-24

本文共 1005 字,大约阅读时间需要 3 分钟。

最近在学习SQL注入,初出茅庐,就从dvwa开始吧

sql注入可以通过sqlmap工具实现,为了更好地了解原理,这里主要是手工注入

注入的一般流程为:

1,找到注入点,此步骤可通过工具

2,判断注入类型

3,判断列数,展示位

4,利用函数获取数据库用户,版本号,数据库名等信息

5,联合注入法利用information_schema数据库中存储所有的表查看所有的表名

6,同步骤五获取字段名

7,根据字段名查看值

low级别:

更改过DVWA Security为low级别后我们就进到如下页面:

通过查看源码发现low等级的没有对输入的值做任何过滤,可以直接注入

1)用户交互的地方为表单,这也是常见的 SQL 注入漏洞存在的地方,首先我们通过测试语句测试是否存在注入点

     先输入正常的数据查看返回的结果:

     

   可以发现我们刚输入的值被作为ID值显示在页面上,接着我们输入“ ' ”测试,页面报错说明这个表单存在注入漏洞:

    

2)确定存在注入后,我们需要确定诸如类型为数字还是字符,以下是一些测试语句:

      Ps:--+可以用#替换,url 提交过程中 Url 编码后的#为%23

     or 1=1--+

     1' or '1'='1

     'or 1=1--+

     "or 1=1--+

     )or 1=1--+

     ')or 1=1--+

     ") or 1=1--+

     "))or 1=1--+

      我们输入1 or1=1令sql语句返回值为真,结果语句被作为值输出来了,说明不是数字型注入。输入1' or '1'='1 ,返回了数据库          中的所有数据,说明是字符型注入:

      

 

  3)利用order by  字句查询列数,当输入"1' order by 3"时报错,说明列数为2:

        

4) 利用联合注入法测试出展示位:1' and 1=2 union select 1,2#

     

 

5)利用内置函数注入得出连接数据库用户,数据库名称和版本信息:user(),database(), version()

   

    

 

6)利用存储了所有数据库和表信息的information_schema数据库查询所有数据库的名称:

   

 

7)猜表名(太长了,只截了要用 的 表名):

     

8)字段名:发现敏感字段名user password

9)查看user password的值:获得管理员账号及密码

 

 

 

转载于:https://www.cnblogs.com/qingwuyou/p/10687471.html

你可能感兴趣的文章
进制转换
查看>>
反转字符串中的单词
查看>>
html与html5的一些区别
查看>>
ASCII码
查看>>
java常用四种排序源代码
查看>>
win7 下硬盘安装Redhat7
查看>>
js图表控件:highcharts的应用
查看>>
Redis 分布式锁的正确实现方式
查看>>
mysqldump 备份命令使用中的一些经验总结
查看>>
Linux下MySql安装配置方法总结
查看>>
本IT博客用于域名投资、互联网、资源下载等相关干货收藏和学习
查看>>
ArrayList底层实现
查看>>
【转载】Java程序设计入门 (二)
查看>>
which、whereis、location和fand的区别
查看>>
IP地址和子网划分学习笔记之《子网掩码详解》
查看>>
单词最近距离
查看>>
高性能网站性能优化与系统架构(ZT)
查看>>
程序猿知道英语词汇
查看>>
数据存储(两)--SAX发动机XML记忆(附Demo)
查看>>
ECSHOP添加购物车加图片飞入效果
查看>>