![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pwn学习
夜行猫
这个作者很懒,什么都没留下…
展开
-
buuctf-pwn1 sctf 2016
拿到文件后checksec一下,发现开启了NX保护,说明堆栈不可执行,那我们就不能向堆栈上写东西。查看一下程序main()函数调用了vuln()函数,查看一下此函数有没有什么漏洞可以利用,enmenm,发现代码很多不知道什么意思(太菜了太菜了),好好看看这些代码到底啥意思吧~~,部分代码注释如下:本来看到代码5处,想着能通过向缓冲区S中写入数据,利用栈溢出来覆盖返回地址为后门函数地址,但是fgets()函数告诉我此法不行,因为你最多只能向S中输入32个字符,而缓冲区S的大小为0x3c,也就是需要输入原创 2020-09-20 18:22:37 · 717 阅读 · 0 评论 -
buuctf--pwn-warmup
下载文件后首先查看保护机制,checksec发现没有开什么保护,64位程序,在IDA中打开查看程序流程gets()函数很明显会有栈溢出漏洞,然后发现有后门函数,也就是sub_40060D函数,而且会发现你执行此程序的时候可以直接输出后门函数的地址,就不需要再找他的地址了 sprintf(&s, "%p\n", sub_40060D)这个函数的意思就是将sub_40060D的地址放在s缓冲区中输出地址,所以执行的时候就可以直接看到后门函数地址。所以现在的漏洞利用思路就是将v5缓冲区覆盖原创 2020-09-19 12:09:23 · 494 阅读 · 0 评论 -
pwn1
首先在vm终端checksec一下查看一下pwn1的保护机制可以看到有canary保护,canary是一种用来防护栈溢出的保护机制。其原理是在一个函数的入口处,先从fs/gs寄存器中取出一个4字节(eax)或者8字节(rax)的值存到栈上,当函数结束时会检查这个栈上的值是否和存进去的值一致,若一致则正常退出,如果是栈溢出或者其他原因导致canary的值发生变化,那么程序将执行___stack_...原创 2020-04-09 21:57:03 · 396 阅读 · 0 评论 -
bugku-pwn2-wp
下载完题后先在VM中checksec查看保护机制基本没有开什么保护,可以知道文件是64位的,用64位IDA打开,按F5键反汇编一下,看一下main函数可以发现read()函数存在栈溢出漏洞,缓冲区s的大小为0x30,而read()函数指向缓冲区中读入0x100大小的数据,所以造成栈溢出。在main函数下面有一个get_shell_()函数,打开看一下有一个system(“cat fl...原创 2020-04-05 19:05:41 · 345 阅读 · 0 评论 -
jarvis oj---level1解题方法
题目场景nc pwn2.jarvisoj.com 9877level1.80eacdcd51aca92af7749d96efad7fb5解题在vm终端“checksec"查看一下保护机制没有什么保护,用IDA打开文件查看vulnerable_function()函数可以看到栈溢出我们没有看到system()函数,没有找到"/bin/sh",但是在vulnerable_funct...原创 2019-09-29 18:15:10 · 473 阅读 · 0 评论 -
jarvis oj---level0解题方法
题目场景:nc pwn2.jarvisoj.com 9881level0.b9ded3801d6dd36a97468e128b81a65d解题在虚拟机里打开终端,输入命令“checksec"查看有没有什么保护机制checksec之后发现有NX保护将文件用IDA打开,F5键查看main函数,发现使用了vulnerable_function()函数,双击查看函数read可以读入0x2...原创 2019-09-29 18:14:38 · 298 阅读 · 0 评论 -
jarvis oj---level2x64
题目来源nc pwn2.jarvisoj.com 9882level2_x64.04d700633c6dc26afc6a1e7e9df8c94e解题x64和x86的区别:linux_64与linux_86的区别主要有两点:首先是内存地址的范围由32位变成了64位。但是可以使用的内存地址不能大于0x00007fffffffffff,否则会抛出异常。其次是函数参数的传递方式发生了改变,x86...原创 2019-09-29 18:12:33 · 304 阅读 · 0 评论 -
pwn4-bugku
checksec首先用checksec命令查看有没有什么保护机制没有开任何保护机制,用IDA(64位)打开查看main函数。函数分析# memset函数# setvbuf函数# read函数经过分析函数可以知道缓冲区中是&s,大小为0x10uLL,read函数是将大小为0x30uLL的数据存放到缓冲区&s中,其大小超过了缓冲区的大小,存在栈溢出。s大小...原创 2019-09-18 20:12:45 · 709 阅读 · 0 评论 -
Bugku pwn 1--wp
打开题目之后发现只有:nc 114.116.54.89 10001那就好处理了,直接在VM中执行这句命令。这句命令什么意思呢?我一开始也不晓得,pwn题里面都有,所以还是要清楚的。nc + ip地址 + 端口号(nc命令用于设置路由器)nc即netcat,是一个网络工具(Linux自带),有IP地址和端口号,就可以连接路由器,连接成功后,目标主机会运行题目文件,进行交互。一般还会有一...原创 2020-03-25 16:13:08 · 381 阅读 · 0 评论