你需要知道的是:
Pwn 类题目提供的附件通常是一个可执行文件,它包含一个漏洞。选手需要利用这个漏洞来获取远程 shell,并最终获得 flag。
该附件一般不会有后缀,要分析它,可以利用IDA 等工具
nc一般需要在Linux系统的终端中进行
pwn类题目的一般化解题思路(第一类)
- 查看附件
- 分析附件漏洞
- nc到靶机
- 根据分析到的漏洞对靶机进行操作
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 | blacklist = ['cat','ls',' ','cd','echo','<','${IFS}'] |
当检测到有输入黑名单中的命令时会断开连接