[网鼎杯 2020 朱雀组]Nmap 1
[网鼎杯 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的更多相关文章
- 【网鼎杯2020朱雀组】Web WriteUp
nmap nmap语法,很简单. 127.0.0.1' -iL /flag -oN vege.txt ' phpweb 打开,抓包,发现可以传递函数和其参数 试了一下很多函数都被过滤了,不能执行系统命 ...
- 刷题[网鼎杯 2020 朱雀组]phpweb
解题思路 打开是一个蛮有意思的背景,众生皆懒狗,是自己没错了.源代码看一看,啥都没有.抓个包 诶,一看到func和p两个参数,想到了call_user_func(). 尝试着把date改成system ...
- BUUCTF | [网鼎杯 2020 朱雀组]phpweb
一道比较简单的题,不过对PHP还是不够熟悉 知识点 1.PHP date函数 PHP date() 函数用于对日期或时间进行格式化. 语法 date(format,timestamp) 参数 描述 f ...
- [网鼎杯 2020 朱雀组]phpweb-1|反序列化
1.打开界面之后界面一直在刷新,检查源代码也未发现提示信息,但是在检查中发现了两个隐藏的属性:func和p,抓包进行查看一下,结果如下: 2.对两个参数与返回值进行分析,我们使用dat时一般是这种格式 ...
- 网鼎杯2020青龙组writeup-web
本文首发于Leon的Blog,如需转载请注明原创地址并联系作者 AreUSerialz 开题即送源码: <?php include("flag.php"); highligh ...
- [网鼎杯 2020 青龙组]AreUSerialz
题目分析 <?php include("flag.php"); highlight_file(FILE); class FileHandler { protected $op ...
- 【网鼎杯2020白虎组】Web WriteUp [picdown]
picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...
- 【网鼎杯2020青龙组】Web WriteUp
AreUSerialz 打开题目直接给出了源代码 <?php include("flag.php"); highlight_file(__FILE__); class Fil ...
- BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz
BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz 看题 <?php include("flag.php"); highlight_file(__FILE__) ...
- [网鼎杯2020]boom
[网鼎杯2020]boom 分析 感觉比较友善,主要考查数学运算. 解析 解压之后发现是个exe文件,运行得到一个md5 查询: 输入明文得到: 下个挑战是解三元一次方程: 拿matlab算一下. s ...
随机推荐
- Flink学习(四) Flink Table & SQL 实现wordcount Java版本
Flink Table & SQL WordCountFlink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言. 一个完 ...
- Vue3 路由配置与导航全攻略:从零到精通
在现代前端开发中,单页应用(SPA)已经成为主流趋势.而作为 Vue.js 的核心功能之一,Vue Router 提供了强大的路由管理能力,帮助开发者轻松构建流畅.高效的单页应用.本文将带你深入探讨 ...
- C语言格式输出方式
C语言格式输出 1.转换字符说明 C语言格式输出方式 2.常用的打印格式 在 C 语言中,格式输出主要依靠 printf 函数来实现. 以下是一些 C 语言格式输出的代码举例及相关说明: printf ...
- 什么是CPU?
当你用手机刷短视频.用电脑玩游戏,或是使用智能手表查看健康数据时,这些设备的核心"大脑"--CPU(中央处理器)正在默默工作.它是现代计算设备的核心,但很多人对它一知半解.今天我们 ...
- ppt 字少怎么办
1.加图标 2.加色块 3.加图片 最终效果
- 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异 引言 在开发 Web 应用时,处理 HTTP 错误响应是常见的任务,尤其是在客户端代码中捕获并向用户展示错误信息.然而,当使用 HTTP ...
- 单词搜索 & 周赛第二道
单词搜索 描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中.单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同 ...
- postgresql 查询表结构
sql查询 SELECT A.attnum, ( SELECT description FROM pg_catalog.pg_description WHERE objoid = A.attrelid ...
- 【Guava工具类】Strings&Ints
String相关工具 Strings Guava 提供了一系列用于字符串处理的工具: 对字符串为null或空的处理 nullToEmpty(@Nullable String string):如果非空, ...
- 【SpringCloud】微服务架构编码构建
微服务架构编码构建 约定>配置>编码 Mysql的主从 slave会从master读取binlog来进行数据同步 三步骤+原理图 MySQL复制过程分成三步: master将改变记录到二进 ...