DVWA靶场SQL注入(low)

一、SQL注入原理

SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令。

它是利用现在已有的应用程序,将SQL语句插入到数据库中执行,执行一些并非按照设计者意图的SQL语句。

产生原因:程序没有细致过滤用户输入的数据,从而导致非法数据进入系统。

二、环境配置

参照链接超细DVWA靶场搭建--(小黑栈渗透测试初级篇1)_dvwn能不能做内网渗透_小黑日志的博客-CSDN博客
 

三、测试过程

low难度

当我们在输入框中输入1时,发现有回显 ,那这就可以方便我们接下来的实验。


首先我们要知道代码层面为什么会产生SQL注入

我们去查看靶场的源代码(low.php)

$query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";

那岂不是我们可以在输入1的时候在后面拼接一些别的指令?


那么我们继续实验

在输入框中输入1'union select 1,2 --

注:至于为什么直接从两个开始,是因为select 1 的话会报错说

The used SELECT statements have a different number of columns

从上面直接输入1不拼接语句的回显来看,可能是因为他有两个显示位,而你只给了一个数据,匹配不上故而报错。

我们发现1和2的显示位置到了下面

那么我们输入1' union select 1,2,3 -- 或者1’union select 1,2,3,4 -- 呢?

发生了报错,说明最多只能注入到2

在我们判断了回显位置后,我的目的是想看一看当前数据库中其他用户的账号密码。

那么我们就先看一下当前数据库的名字

1' union select 1,database() --

查询出数据库为dvwa

接下来查询表名

这就要用到information_schema默认库

information_schema提供了对数据库元数据、统计信息、以及有关MySQL Server的信息访问(例如:数据库名或表名,字段的数据类型和访问权限等)。该库中保存的信息也可以称为MySQL的数据字典或系统目录。

那在我们对表名一无所知的时候就可以来这个里面查询。

拼接后查询语句为:1' union select 1,table_name from information_schema.tables where table_schema='dvwa'--

如果这个语句报错了参照这个链接解决关于SQL注入报错:Illegal mix of collations for operation ‘UNION‘原因剖析与验证_0ak1ey的博客-CSDN博客

 

发现有两个表名

接下来我们就要查字段名(知道数据库名-->知道表名-->知道字段名-->查询具体的字段信息)

 我们来查users的,看起来比较有用

拼接语句为:1' union select 1,column_name from information_schema.columns where table_name='users'--

在知道了字段名后我们就要去查询具体的信息了,我们发现users这个表的信息确实很有用,含有密码信息

1’ union select user,password from users#

我的这里再次报错了.........

正在想法子解决....

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值