White's Blog.

从零开始的PWN入门0x00

字数统计: 459Reading time: 1 min
2018/05/07 Share

0x00 什么是PWN?


Wikipedia:

在骇客行话里,尤其在另外一种电脑技术方面,包括电脑(服务器或个人电脑)、网站、闸道装置、或是应用程序,”pwn”在这一方面的意思是攻破(”to compromise”,危及、损害)或是控制(”to control”)。在这一方面的意义上,它与骇客入侵与破解是相同意思的。例如某一个外部团体已经取得未经公家许可的系统管理员控制权限,并利用这个权限骇入并入侵(”owned” 或是”pwned”)这个系统。

Pwn 题目主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在CTF比赛中,PWN题目主要出现在 Linux 平台上。题目一般会提供一个地址,这个地址的端口上挂着你需要解决的题目。有时候出题者会提供题目源码,有时不会提供。需要解题者想办法通过逻辑或者漏洞来解决问题。

0x01环境和工具的准备


IDA Pro(装在本机)IDA7.0

Linux系统(建议ubuntu16.04LTS,可以装在虚拟机内)

下面的工具都装在ubuntu内

python环境(建议装python2.7,毕竟要用pwntools)

pwntools安装

在ubuntu中打开终端,输入:
pip install pwntools

安装好后测试一下是否成功

输入python,进入交互,输入:
from pwn import *
如果没有报错即为成功

gdb 插件Pwngdb Pwngdb

gdb常用指令

b 下断点 eg: b main #在main函数处下断点; b 0x00002333 在0x00002333处下断点

r 运行

n 执行下一条语句

stack 查看当前栈情况

x/s 将该地址的内容以字符串形式输出 eg:x/s 0x00002333 查看0x00002333处的字符串的值

fmtarg 测试偏移量 eg:fmtarg 0x7fffffffdc60

原文作者:White

发表日期:May 7th 2018, 12:23:51 am

更新日期:November 23rd 2019, 4:44:43 pm

CATALOG
  1. 1. 0x00 什么是PWN?
  2. 2. 0x01环境和工具的准备
    1. 2.0.1. IDA Pro(装在本机)IDA7.0
  3. 2.1. Linux系统(建议ubuntu16.04LTS,可以装在虚拟机内)
    1. 2.1.1. 下面的工具都装在ubuntu内
    2. 2.1.2. python环境(建议装python2.7,毕竟要用pwntools)
    3. 2.1.3. pwntools安装
    4. 2.1.4. gdb 插件Pwngdb Pwngdb
    5. 2.1.5. gdb常用指令