二进制安全之栈溢出(十一)

本文是 plt 和 got 表相关的漏洞利用实例,是 Google CTF 中的一道题,题目给了源码和 binary。

不按顺序来的 TCP 包

关于 TCP 建立连接和断开连接的流程,很多人都能大致说出来,可以参考协议森林

subprocess 参数绑定与命令注入

使用了 subprocess 传递数组形式的 args 过去就一定没有命令注入的问题么?

二进制安全之栈溢出(十)

本篇没有新内容,只有一个新名词 off-by-one,利用方法还是之前的。

</2017><2018>

2017 年恍恍惚惚的就过去了,回想了一下,这一年就做了几件微小的事情

二进制安全之栈溢出(九)

本篇的代码和之前的略有修改,diff 是这样的。

二进制安全之栈溢出(八)

阅读本文前需要阅读 https://www.zhihu.com/question/21249496 和回答后面的四个链接。

二进制安全之栈溢出(七)

本篇文章会使用一个稍复杂的 gadget,同时解决 gadget 含有换行符带来的问题。

二进制安全之栈溢出(六)

上一篇文章在执行 system 函数的时候是使用的 libc 中的 /bin/sh 字符串,如果我们想运行一个自定义的命令那就不一定能在内存中找到了,万幸的是 student 结构体的内存也是可以控制的,我们可以在结构体中也放入一个字符串,这样就...

二进制安全之栈溢出(五)

NX 不可执行是一项重要的漏洞利用缓解措施,为了绕过 NX 我们需要利用已有的可执行区域的代码片段来辅助完整漏洞利用。

二进制安全之栈溢出(四)

这一篇会总结一下前面一笔带过的几个问题,否则那仅仅是一个理想环境下的漏洞利用,在真实环境下很难遇到这么好用的。

二进制安全之栈溢出(三)

上一篇文章中控制了函数的返回地址,将地址修改为已有的指令地址,但是为了实现任意代码执行,是需要将返回地址修改为我们可以控制的 shellcode 的地址的。

二进制安全之栈溢出(二)

上一篇文章是通过数组越界覆盖结构体中其他成员内存,达到修改该成员的值的目的,接下来将使用第二种方法获取 flag,就是使用数组越界覆盖函数的返回地址,达到控制函数执行流程的目的。

二进制安全之栈溢出(一)

这将是一个连载,也是我的学习过程的记录,有任何问题麻烦拉到页面最下方,使用评论功能告诉我。

Vulnerable Docker VM WriteUp

半夜发烧睡不着,看到一个有意思的类CTF的题目,就看了下。