你需要知道的是:

Pwn 类题目提供的附件通常是一个可执行文件,它包含一个漏洞。选手需要利用这个漏洞来获取远程 shell,并最终获得 flag。

该附件一般不会有后缀,要分析它,可以利用IDA 等工具

nc一般需要在Linux系统的终端中进行

pwn类题目的一般化解题思路(第一类)

  1. 查看附件
  2. 分析附件漏洞
  3. nc到靶机
  4. 根据分析到的漏洞对靶机进行操作

1,查看附件

利用IDA打开附件,根据代码可得知编程语言

2,分析漏洞

附件可能包含的漏洞类型有很多,但最常见的漏洞包括:

  • 格式化字符串漏洞
  • 堆溢出漏洞
  • 栈溢出漏洞
  • 未初始化变量漏洞
  • 指针错误
  • 内存损坏

3,nc到靶机

nc操作

Netcat (nc) 是一个命令行工具,用于创建网络连接。它可以用于建立 TCP 和 UDP 连接,以及监听端口。nc 是一个非常强大的工具,可用于各种目的,包括网络调试、端口扫描和文件传输。

nc 的语法如下:

1
nc [options] host port

host 是远程主机的名称或 IP 地址。port 是远程主机上的端口号。

nc 的选项有很多,但一些常用的选项包括:

  • -l:监听端口。
  • -p:指定本地端口。
  • -u:使用 UDP 协议。
  • -v:显示详细信息。
  • -z:发送零字节。

例如,以下命令将在本地主机的 8080 端口监听:

1
nc -l -p 8080

以下命令将连接到远程主机的 80 端口:

1
nc host 80

4,对靶机进行操作

利用这些漏洞:

  • 发送精心设计的输入到程序
  • 使用工具来调试程序
  • 使用工具来分析程序的二进制代码

一旦利用了漏洞,就可以获得远程 shell。然后,可以使用 shell 来执行各种操作,包括:

  • 读取文件
  • 写入文件
  • 执行命令
  • 移动文件
  • 删除文件

最终,需要使用 shell 来获得 flag。flag 是一个字符串,它通常被存储在某个文件中或以某种方式被程序输出。一旦获得了 flag,就可以提交到 CTF 比赛的评分系统中。

pwn类题目的一般化解题思路(第二类)

查看附件

分析.elf文件

以使用readelf命令查看ELF文件的详细信息,例如文件头、节头表、节数据等。

pwn题目漏洞的分类讨论

blacklist,黑名单

在一些题目中,服务器会用blacklist函数来禁用某些命令,例如:

1
2
3
4
5
6
7
8
blacklist = ['cat','ls',' ','cd','echo','<','${IFS}']

while True:
command = input()
for i in blacklist:
if i in command:
exit(0)
os.system(command)

当检测到有输入黑名单中的命令时会断开连接

漏洞利用