•CTF是一个很好的桥梁,可以很好的实现从零基础到入门再到精通的过程,以CTF为跳板衍生出来的各个方向都会让你受益匪浅,从而找到自己的兴趣所在并为之深耕。
•温馨提示:CTF固好,不要过度迷恋偶~;
CTF只是一种可以让你快速成长打基础的途径,可以有效的检验你当前的学习成果;最终还是要把学到的知识用到现实的场景
何为PWN?
•PWN用中文解释可以理解是二进制漏洞挖掘与利用,但为什么叫PWN呢?
•冷知识:
•源于黑客的俚语,与“胖”同音,有多了、溢出之意;
•与“嘭!”发音类似,黑客成功攻破了某个软件或服务的声音,可以理解为计算机被PWN掉的声音
•热知识:
•破解或利用成功(程序二进制漏洞)
•攻破(服务器、设备)
•控制
•PWN用中文解释可以理解是二进制漏洞挖掘与利用,但为什么叫PWN呢?
•源于黑客的俚语,与“胖”同音,有多了、溢出之意;
•与“嘭!”发音类似,黑客成功攻破了某个软件或服务的声音,可以理解为计算机被PWN掉的声音
![CTF-PWN方向分享 CTF-PWN方向分享]()
IDApro:超强的反编译工具,推荐使用7.0以上版本,F5!F5!F5!F5!vmware:虚拟机软件,安装ubuntu虚拟机ubuntu1604:pwn分析利用的各种工具支持最好的一个linux版本。pwntools:python的库,还自带了一些工具,linuxpython2.7.x环境下支持最好,做pwn必备!!由于python2停止维护,官方推荐使用python3。
sublime/atom/vscode/gedit/vim:一款舒服的编辑器会让你写exp的时候保持好心情
tmux:分屏复用的软件,调试的时候用很炫酷也很舒服
gdb:linux下动态调试的工具,一开始用的时候会感觉很不方便,之后越用越爽
gdb插件:peda/pwndbg/… 这里推荐pwndbg:https://github.com/pwndbg/pwndbg
pwndocker:有些pwn题目用的libc不是常规的2.23,所以可以用这个工具快速搭建出环境,而不用安装很多虚拟机:https://github.com/skysider/pwndocker
patchelf:用来修改程序动态链接库的指向,效果和pwndocker类似
➜ ~ sudo apt install gdb && pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple
➜ ~ git clone https://github.com/longld/peda.git ~/peda
source ~/peda/peda.py 查找字符串方便
➜ ~ git clone https://github.com/pwndbg/pwndbg ~/pwndbg
source ~/pwndbg/gdbinit.py 对堆的支持更好
➜ ~ wget -q -O ~/.gdbinit-gef.py https://github.com/hugsy/gef/raw/master/gef.py
source ~/.gdbinit-gef.py 对内核调试支持更好
https://github.com/1094093288/gdb321.git
•由于程序没有控制用户输入的数据量,导致输入的数据过长而覆盖相邻栈的关键数据,造成栈溢出
•由于printf等函数自身的缺陷及程序错误地使用printf函数,导致通过函数本身的格式化字符串机制去泄露或改写地址
•通常出现在无符号整数和有符号整数转换的时候,在他们能表示的边界附近,产生整数溢出,通过整数溢出改变程序执行流程。
•由于控制堆的大小没有限制好,导致输入过量数据,覆盖相邻堆结构,导致堆溢出攻击
•Use After Free的简称,在堆块释放后没有清空堆指针,还能再次使用释放后的堆指针,由此产生的漏洞
通常出现在无符号整数和有符号整数转换的时候,在他们能表示的边界附近,产生整数溢出
![CTF-PWN方向分享 CTF-PWN方向分享]()
![CTF-PWN方向分享 CTF-PWN方向分享]()
如何学习PWN?
•固化基础
联系客服回复“CTF学习资料”免费获得完整PDF版
![CTF-PWN方向分享 CTF-PWN方向分享]()
原文始发于微信公众号(Xiaoyu安全服务):CTF-PWN方向分享
评论