前几天在国外的某个ctf社区发现了一道好玩的赛题。
建议ctfer在阅读这篇文章的时候,首先要掌握以下的一些内容,因为这些东西对于ctf比赛来说,都是很有必要掌握的。
-
基本的Linux知识
-
对于X86有基本的了解
-
了解堆栈工作原理
-
C语言的基本知识
-
了解缓冲区溢出漏洞的原理
-
基本的python开发能力
本文涉及知识点实操练习:[PWN综合练习(一)](https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015111814131600001&pk_campaign=freebuf-
wemedia)(CTF PWN进阶训练实战,尝试溢出一个URL解码程序。)
点击此处即可获取CTF赛题资料
计算机字节和shell的魅力
我第一次接触到网络安全编程时,我就已经发现开发其实是一门艺术,并且研究员需要很高的水平才能胜任这一工作,因为很多时候你需要各种领域的知识进行结合。例如。C语言、汇编、堆栈、利用python进行漏洞开发利用等,当然,这些只是冰山一角。
对于一个刚进入漏洞利用开发领域的小白来说,这可能是很难的,因为这是一个从零开始进行积累的过程。
作为一名小菜鸡,我决定先挑战这个网站的最简单的pwn赛题。别问为什么,问就是别的试题太难了。
进入正题
让我们先进入SSH!
ssh [tiny_easy@pwnable.kr](mailto:tiny_easy@pwnable.kr) -p2222
(对于Windows用户,我强烈推荐使用xshell,它是一款很好上手的软件,可用于处理ssh会话并轻松下载软件)
在ssh内,我们运行“ ls”命令,仅找到一个二进制文件和我们的flag文件,由于我们没有任何权限,因此无法进行读取。
我们先下载二进制文件并对其进行一些检查:先使用“
file”命令进行查看。该命令可以让我们查看二进制文件的详细信息,包括其体系结构,位数(x64与x32)和其他很多的细节。
从输出的内容中我们可以看到,该文件是x86体系结构的32位ELF文件,并且是静态链接的。
可是等等… 注意这个细节!
让我们运行这个二进制文件,看看会发生什么情况: