pwnable.kr笔记
本人是新学pwn的一个小菜鸟,最近在边学习边做pwnable.kr网站中的习题.现将一些菜鸟的解题方法与心得整理如下,欢迎各位大佬批评指正,谢谢!!!
本文环境:
- Windows11家庭中文版,版本21H2(OS 内部版本 22000.978)
- WSL 2
- Ubuntu-18.04.05 LTS
1. Toddler's Bottle
1.1 fd
第一题是一道关于Linux系统中的文件描述符(File Descriptor)的比较简单的题目.
预备知识: 文件描述符是系统用于唯一标识文件的一串无符号整型数字,它们由小到大依次分配.其中,每个进程开始时都会有三个打开的文件,为:标准输入(描述符0),标准输出(描述符1),标准错误(描述符2).在<unistd.h>中定义了成了常量
STDIN_FILENO
,STDOUT_FILENO
和STDERR_FILENO
.
首先我们使用题目给的命令进入远程服务器,括号内的guest
为登录密码(注:输入密码时不可见):
ssh fd@pwnable.kr -p2222# ssh(Secure Shell)是登录远程服务器的命令# 其中,fd@pwnable.kr表示远程服务器的域名,-p2222表示端口(port)2222# 使用exit命令退出连接# 相关参数及用法可参考https://cloud.tencent.com/developer/article/1594881
之后我们就得到这样的界面
使用命令ls
查看目录下文件或使用ls -la
查看目录下文件以及相关权限
我们发现目标文件fd
,fd.c
和flag
.但是在这个过程中,我们发现该服务器访问较慢,于是使用如下命令下载本地.但在此之前,为了方便管理,可先使用命令mkdir namefile
创建以namefile
为名文件夹,再进入该文件夹,将文件下载到该文件夹下:
mkdir fd# 本文创建文件夹名为fdcd fd# 进入fd文件夹中scp -P2222 fd@pwnable.kr:fd .scp -P2222 fd@pwnable.kr:fd.c .# scp(Secure Copy)用于复制文件和目录# 其中,fd@pwnable.kr表示远程服务器的域名,-P2222表示端口2222(注意是大写P),# .表示本地当前目录# 相关参数及用法可参考https://www.runoob.com/linux/linux-comm-scp.html