码迷,mamicode.com
首页 > 数据库 > 详细

DVWA系列之2 low级别SQL注入

时间:2015-12-01 09:44:22      阅读:612      评论:0      收藏:0      [点我收藏+]

标签:源代码   文本框   信息   用户   

将Security level设为on,在左侧列表中选择“SQL Injection”,然后在右侧的“User ID”文本框中输入不同的数字就会显示相应的用户信息。

我们首先需要判断这里所传输的参数是文本型还是数字型,分别输入3和1+2,观察它们显示的结果并不一致,因而就判断出参数类型是文本型。

点击页面右下角的“View Source”可以查看源代码,其中最重要的是如下图所示的两行语句:

技术分享

第一行是以GET方式获取用户通过id参数传来的值并赋值给变量id,第二行是将一条select语句赋值给变量$getid,select语句的作用是从users表中查找first_name和last_name两个字段的值,条件是user_id字段的值与用户输入的值相符。

这里我们在文本框中输入“’ or 1=1 #”就可以显示users表中的所有数据:

技术分享

将我们输入的语句代入源码中:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = ‘‘ or 1=1 #‘";

对于文本型的注入,主要就应考虑引号闭合的问题。#是MySQL中的注释符,它把之后的内容都给禁用了。

下面我们练习一下之前的手工MySQL注入流程。

首先输入“’ union select 1,2 #”判断出字段数量为2,并且两个字段都可以代入参数进行查询。

 

输入“’ union select 1,2 #”检测出MySQL版本为5.0,当前数据库名为dvwa。

输入“‘ union select table_name,2 from information_schema.tables where table_schema=‘dvwa‘ #”爆出dvwa数据库中有两个表:guestbook、users,其中我们关心的很明显是users。

输入“‘ union select column_name,2 from information_schema.columns where table_name=‘users‘ #”,爆出users表中的字段。

输入“‘ union select user,password from users #”,爆出用户名和密码。

本文出自 “一壶浊酒” 博客,转载请与作者联系!

DVWA系列之2 low级别SQL注入

标签:源代码   文本框   信息   用户   

原文地址:http://yttitan.blog.51cto.com/70821/1718375

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!