摘要:
总结: 通过这道题的学习与收获有: 1、atol函数放入的数据应该是打包之前的,而非是打包之后的数据 2、exit函数执行流程,exit函数的调用流程exit函数 >run_exit_handlers函数 >_dl_fini函数 > rtld_lock_unlock_recursive指针 如果我们 阅读全文
摘要:
有时候在做64位题目的时候会exp完全没问题,但就是获取不了shell。然后通过gdb调试发现是在最后的system函数执行的时候卡住了,然后就满脸疑惑,这也能卡??? 为什么执行system函数要栈对齐 其实啊,64位ubuntu18以上系统调用system函数时是需要栈对齐的。再具体一点就是64 阅读全文
摘要:
疑惑 从第一次接触pwn的到现在将近四个月了,每次做出来pwn题之后,把写好的脚本打到服务器上,就可以在服务器那边开启一个shell,然后用cat就可以读出我们需要的flag了。可是事实上我们真的可以用pwn的解题手法去进行一次攻击么?我们最后在对方主机去执行system('/bin/sh')真的可 阅读全文
摘要:
这篇文章也算是集百家之长了,因为在学习ret2dlresolve这个高级rop的时候,师傅们可能都是因为实力比较强,因而在一些细节的地方没有解释为什么,如此在学习的时候,还是稍微有点吃力的,学习了很多位师傅的博客之后加上自己的一些思考才写出了这篇博客(我认为写的比较好的博客链接都放到文章最后了,我有 阅读全文
摘要:
这个SROP是一种极其有趣的攻击方式,它是利用程序从内核层面切换到用户层面恢复上下文时的一个漏洞,该漏洞可以让我们自己自行设置所有寄存器里的值。 在这之前我们要先去了解一下系统调用,因为这个漏洞就是在用户态和内核态切换发生的,提到系统调用,这里还要简单介绍一下用户态和内核态的相关知识。 什么是用户态 阅读全文
摘要:
关于这个ret2csu,与其说它是一种题型,倒不如说这是一种方法(用于控制寄存器) #什么是ret2csu? 这个其实就是在程序中一般都会有一段万能的控制参数的gadgets,里面可以控制rbx,rbp,r12,r13,r14,r15以及rdx,rsi,edi的值,并且还可以call我们指定的地址。 阅读全文
摘要:
这个第一章,主要是介绍了计算机上的一些专业术语,以及一些最基础的概念(并没有深入讲解,不过会在后面的章节进行探究)。不过这些概念彼此之间联系不大,并不是循序渐进的,因此这一章,我单独介绍里面出现的术语。 计算机系统是个啥?操作系统又是个啥? 这一章的名字叫做计算机系统漫游,别的不说,就光看名 阅读全文
摘要:
在pwntools中,sendline和send都是发送数据,但是sendline是发送一行数据,换句话说就是sendline会在发送的数据末尾加一个回车。而这个回车所造成的影响,是跟对应的输入函数有关系,在做pwn题中,碰见的输入函数有scanf("%s"),gets(),read(),fgets 阅读全文
摘要:
ret2syscall需要寻找的指令的思路和构造shellcode的思路是一样的,只不过ret2syscall获取的指令算是就地取材,而ret2shellcode创造指令算是无中生有。在32位程序中,我们要系统调用,那就需要把系统调用号传入eax寄存器,然后需要把ecx和edx的寄存器给清空。最 阅读全文
摘要:
1、什么是shellcode 这里我谈谈自己的理解,shellcode就是一段机器码,如果可以让CPU从shellcode首字节开始往下执行,那么shellcode执行完毕就会达到编写者想要的目的(shellcode不一定非要是获取shell的机器码),至少初学者先这么理解应该是没什么问题的。 2、 阅读全文