[网鼎杯 2020 朱雀组]Nmap 1

这个题目主要考察的是nmap的常用命令和escapeshell函数

Nmap 相关参数

-iL 读取文件内容,以文件内容作为搜索目标

-o 输出到文件

举例

nmap -iL ip_target.txt -o result.txt

扫描ip_target.txt内包含的ip地址,输出扫描结果至result.txt

读取文件结果

# Nmap 6.47 scan initiated Fri Dec 24 06:48:23 2021 as: nmap -Pn -T4 -F --host-timeout 1000ms -oX xml/a9950 -iL /flag -o 22' 127.0.0.1\
Failed to resolve "flag{c5e95c66-f441-496b-ac27-699ea43d5c32}".
WARNING: No targets were specified, so 0 hosts scanned.
# Nmap done at Fri Dec 24 06:48:23 2021 -- 0 IP addresses (0 hosts up) scanned in 0.11 seconds

会提示搜索内容失败,然后会写出来内容是啥,从而实现任意文件读取。

escapeshell

分为excapeshellarg()和escapeshellcmd()两个函数

escapeshellarg()

escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数,保证其作为参数的安全性。



用转义符转义所有单引号,然后用单引号包裹,如

123' aa

经过escapeshellarg,先转义单引号

123\' aa

再用单引号包裹

123'\'' aa

最后,escapeshellarg会将整个字符串用单引号包裹,让字符串变成这样

'123'\'' aa'

escapeshellcmd()

escapeshellcmd - 把字符串中可能欺骗shell命令的字符转义, 用以保证送到system函数或者exec函数的字符串是安全的。



可以看到,不光这些字符,转义符本身还有落单的引号也会被转义。

这个时候,我们把传入escapeshellarg的字符串拿过来,在经过这个函数的处理。

'123'\'' aa'

转义后

'123'\\'' aa\'

因为转义符被转义,最后的引号便落单,逃逸了出去。这个时候,被输入的字符串不再被当成单个参数处理(不再有引号包裹), 即逃出了这两个函数。

题目



看上去是会把我们的参数拼接入nmap命令。

我们构建字符串

127.0.0.1 -iL /flag -o haha

希望读取位于根目录的flag文件,然后存入结果到haha中。

报错

看了别的师傅的WP发现经过了这两个函数的过滤,换用payload

127.0.0.1' -iL /flag -o haha

仍报错,但可以读取haha文件



这里要注意,参数因为经过了escapeshellcmd函数,被包裹上了引号,所以我们实际输出结果是输出到了haha'文件中,多了一个引号,在这里也可以看到。

[网鼎杯 2020 朱雀组]Nmap 1的更多相关文章

  1. 【网鼎杯2020朱雀组】Web WriteUp

    nmap nmap语法,很简单. 127.0.0.1' -iL /flag -oN vege.txt ' phpweb 打开,抓包,发现可以传递函数和其参数 试了一下很多函数都被过滤了,不能执行系统命 ...

  2. 刷题[网鼎杯 2020 朱雀组]phpweb

    解题思路 打开是一个蛮有意思的背景,众生皆懒狗,是自己没错了.源代码看一看,啥都没有.抓个包 诶,一看到func和p两个参数,想到了call_user_func(). 尝试着把date改成system ...

  3. BUUCTF | [网鼎杯 2020 朱雀组]phpweb

    一道比较简单的题,不过对PHP还是不够熟悉 知识点 1.PHP date函数 PHP date() 函数用于对日期或时间进行格式化. 语法 date(format,timestamp) 参数 描述 f ...

  4. [网鼎杯 2020 朱雀组]phpweb-1|反序列化

    1.打开界面之后界面一直在刷新,检查源代码也未发现提示信息,但是在检查中发现了两个隐藏的属性:func和p,抓包进行查看一下,结果如下: 2.对两个参数与返回值进行分析,我们使用dat时一般是这种格式 ...

  5. 网鼎杯2020青龙组writeup-web

    本文首发于Leon的Blog,如需转载请注明原创地址并联系作者 AreUSerialz 开题即送源码: <?php include("flag.php"); highligh ...

  6. [网鼎杯 2020 青龙组]AreUSerialz

    题目分析 <?php include("flag.php"); highlight_file(FILE); class FileHandler { protected $op ...

  7. 【网鼎杯2020白虎组】Web WriteUp [picdown]

    picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...

  8. 【网鼎杯2020青龙组】Web WriteUp

    AreUSerialz 打开题目直接给出了源代码 <?php include("flag.php"); highlight_file(__FILE__); class Fil ...

  9. BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz

    BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz 看题 <?php include("flag.php"); highlight_file(__FILE__) ...

  10. [网鼎杯2020]boom

    [网鼎杯2020]boom 分析 感觉比较友善,主要考查数学运算. 解析 解压之后发现是个exe文件,运行得到一个md5 查询: 输入明文得到: 下个挑战是解三元一次方程: 拿matlab算一下. s ...

随机推荐

  1. 普通文本(.txt)篇章排版样式参考 [文档说明][日志]

    把普通文本的篇章排版样式归总一下,供自己参考,当然如果读者能以此借鉴并学习到一些东西,是笔者最大的鼓励. 日志类 [1] 头标 [时间日期][备注][属性]内容 [2] [文件信息][符号][文件信息 ...

  2. 大数据之路Week10_day07 (JavaAPI 操作Redis 模拟将redis当作缓存,从Mysql数据库中查询数据)

    在现实生活中,当很多人去访问一个数据的时候,Mysql会很慢,甚至会挂掉,如果这里之间存在一个缓存的话,直接从内存中查询数据将会快很多. 这里就去模拟将redis看作是一个缓存,因为redis就是基于 ...

  3. Java字节码增强实际应用在哪些方面?

    Java字节码增强由于与业务应用耦合性较低,且可任意修改程序代码,所以在许多方面都有应用.也是许多公司产品实现的基础.下面大概分类一下: 1.在可观测和监控方面的应用 如果一个应用的架构服务之间的依赖 ...

  4. go krotos proto编译引用外部包 was not found or had errors

    前言 kratos protos 生成 pb.go 文件时,会出现引用其他 proto 文件报错 was not found or had errors,因找不到此文件而无法编译. 解决 首先我们先了 ...

  5. postgresql 查询表结构

    sql查询 SELECT A.attnum, ( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid ...

  6. 安装ip冲突

  7. 自定义的 Vue 3 Composition API 钩子,antd标签

    1. 创建自定义钩子 useDeviceStatus.js: import { computed } from 'vue'; export function useDeviceStatus(statu ...

  8. 【Linux】1.1 Linux课程介绍

    Linux课程介绍 1. 学习方向 linux运维工程师: 维护linux的服务器(一般大型企业) linux嵌入式工程师: linux做驱动开发,或者linux的嵌入式 linux下开发项目 2. ...

  9. 阿里云ECS下安装的MySQL无法远程连接?

    场景重现 在阿里云ECS下, Ubuntu系统上通过以下命令安装的MySQL数据库, 本地连接正常, 但远程死活连接不上. # 安装MySQL apt-get install mysql-server ...

  10. 第八届机械工程与应用复合材料国际会议(MEACM 2025)

    第八届机械工程与应用复合材料国际会议(MEACM 2025) 吉隆坡,马来西亚 2025年8月25-27日 会议简介:2025年第八届机械工程与应用复合材料国际会议(MEACM 2025)将于2025 ...