自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 seethefile 记录

老套路放进IDA分析发现此处是一个明显的栈溢出。我们可以通过溢出name来覆盖fp1)openfile:打开文件,文件指针就是fp,不能打开文件名为flag的文件2)readfile:从fp读取0x18F个字节到magicbuf上3)closefile:关闭文件,指针fp赋04)writefile:只是一个打印函数,而不能写入,不能打印{flag,FLAG,}名的文件,如下伪造FILE结构体来getshell的题目exp:from pwn import *...

2021-12-18 22:53:07 294

原创 tcache_tear记录

老套路64位,保护全开,所以这题需要先泄露canary的值然后ret2libc来解决。1.malloc操作在输入数据时存在堆溢出2.free操作没有将指针标量置0, 存在UAF漏洞3.info操作输出bss段地址0x602060 处的数据漏洞点:free后ptr变量没有置为零, 所以存在UAF漏洞...

2021-12-16 19:57:17 120

原创 re alloc 记录

老套路,查保护和看文件架构。这是一道堆的题目,刚接触不怎么会,看看大佬的WP吧分析题目,没有开PIE,FORTIFY好像在这里没什么影响。题是菜单选择题,allocate,free,reallocate。给定了bss段上面的两个位置可以存chunk,输入size和index时,使用的是atoll返回。free过后清零, 但是realloc函数在size为0时同样执行free操作,而reallocate函数中并没有检查size的下界,tcache在libc2.29新增了一个key,防止do...

2021-12-04 15:43:24 114

原创 apple store

老套路,开启了金丝雀和NX。所以得先泄露金丝雀值然后ROP了菜单函数是整个applestore的操作流程handler函数是整个题目的核心add函数通过创建一个size为0x20 的chunk来存放需要购买的商品的数据具体结构如下:str addr <----- &chunkpricenext addrbefore addr创建完毕后插入以mycart为头节点的双向链表中cart函数通过遍历链表来输出购物车中的商品的信息, 并返...

2021-12-01 23:33:12 138

原创 silver bullet记录

老套路检查一下没开canary和pie,只开了NX。所以我们用ROP ret2libc.我们运行程序发现,这个程序需要我们赢这个游戏他才能ret,就是beat非0。通过先creat再powerup泄露基地址,然后ret2libc进行ROP。EXP:from pwn import *p = remote("chall.pwnable.tw", 10103)e = ELF("./silver_bullet")l = ELF("./libc_32.so.6")context.log...

2021-11-30 22:20:39 2447

原创 hacknote 记录

做了这么久的Pwn终于遇到堆的题目了。而此处就有一个漏洞——UAF漏洞,即释放之后并没有清空指针,则仍然可以调用其他的相关函数。也就是,实际上调用了控制chunk可用部分的前4个字节的函数指针所指向的函数,参数为控制chunk可用部分地址。那么,如果我们可以修改控制chunk中可用部分的前4个字节所指向的位置,修改为system,并在后四个字节中添加上 ||sh (这里一开始没想到,注意为了执行shell命令,可以的一些方法 sh# 或者 ||sh ,前一个可以注释掉后面的...

2021-11-27 11:20:10 340

原创 dubblesort记录

查看下保护与它的架构。这题考察的知识点是如何绕过canary和ret2libc。我们分析一下main的C代码。read函数读取的时候不会在数据末尾加上’\x00’ , 这就导致了可以泄露栈上的libc地址,v9 没有进行边界检查, 导致输入的数据可以导致栈溢出利用printf'\0'截断的特性来输出栈上残留数据,此处为.got.plt的地址,进而泄露libc基址通过此处改变栈上数据,篡改retaddr为system函数地址,retaddr之后的位置存放"...

2021-11-24 21:06:42 311

原创 3x17记录

老套路开启了栈不可执行,所以无法传入shellcode考虑rop。并且它还是静态链接。•静态链接:静态链接需要在编译链接的时候将需要执行的代码直接拷贝到调用处,这样可以做到程序发布的时候不需要依赖库,相反的程序占用的内存可能相对较大•动态链接:动态链接则是当需要调用时,再将库中的代码加载到程序中去,在编译的时候只需要用符号和参数去代替这些代码。这样程序编译出来的内存较小,但是需要将库一起发布出去,缺少库则可能运行不了。我们运行一下发现是addr:我们shift F12 查找一下.

2021-11-21 20:29:19 3045

原创 calc 记录

老规矩了是个32位的文件开了canary和nx。这道题对我来说很难了,主要是由于代码量太大,难以找到可利用的漏洞函数。main函数代码并没啥特别之处,关键在于calc函数。calc函数正如名字所示,实现的是一个计算器的功能,所以我们接下来要着重对这个calc函数进行分析。我们着重要看三个函数,get_expr,init_pool和parse_expr。1、get_expr这个函数的主要功能是读取计算的表达式, 运算符只包括+ , - , *, /, %五种, 除了运算符和参加运...

2021-11-17 19:58:50 261

原创 Orw 记录

开启了canary保护考虑open read write其中seccomp是一个开启内核system call保护的函数。通过这一函数可以划定程序准许用户态调用的系统函数,相当于划定白名单,即题目所言【仅开启了open、write、read】。EXP:from pwn import *r = remote('chall.pwnable.tw',10001)context.log_level = 'debug'elf = ELF('orw')shellcode = s...

2021-11-15 23:16:56 1831

原创 start 记录

我们首先查看源码我们发现它没有开启任何保护我们尝试运行一下所以这个汇编代码的这一部分应该是把这个字符串压入栈内。反编译一下这一部分应该是调用了sys这个函数 fd=1是标准输出buf的字节长是5*4=20个字节而这里的标准输入3Ch是六十个字节,明显是栈溢出了。因为它什么保护都没有开启,所以我们可以控制返回地址,所以我们可以考虑传入shellcode,接着将返回地址覆盖到shellcode地址上,为了覆盖shellcode的地址,我们需要找到一个地址...

2021-11-15 22:02:56 2226

原创 pwn5记录

没啥好说的

2021-11-09 10:15:49 58

原创 pwn4记录

我们利用shift F12过滤找到看一下保护措施main反编译后的函数为这样可以看到s的长度为0x3c,而我们只能输入32个字符,但是我们发现我们输入的I会被系统替换成you,所以我们输入20个I就可以填满S了。所以EXP:...

2021-11-08 11:27:19 111

原创 pwn3记录

IDA里面看一下main函数,发现有个系统函数读取flag.F5反编译一下v2=11.28125同样也可以获取flag。所以这个题目就是修改V2。checksec一下0x4是存储v2的地址,0x30是开始存储V1的地址。因此,覆盖0x30-0x4=44个字节给v1,另外4个字节给v2由于v2数值在内存中以16进制存储,所以,找到11.28125的16进制值。有两个比较指令,双击进去这个就是11.28125的十六进制值。所以exp:...

2021-11-08 10:36:04 82

原创 pwn2记录

按照老套路file和checksec 一下文件我们看一下main函数内容F5 反编译一下发现一个后门函数程序运行时也会输出这个地址。所以exp:

2021-11-08 00:07:14 71

原创 BUUCTF pwn rip

现在开始是记录我个人对BUU上PWN题的刷题记录。首先是一个ELF文件,放到Linux里面来看。首先老套路checksec一下接着我们将这个文件放到IDA中静态分析、shift F12 一下看看敏感字段我们发现里面有个系统调用函数。我们查看下汇编代码我们查看Stack of main 视图发现只要存入15个字节就可以返回fun函数所以payload:from pwn import *p = remote('node4.buuoj.cn',...

2021-11-03 23:03:14 294

原创 PWN环境搭建

首先安装ubuntu虚拟机。一、换源接着gedit /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubuntu/ xenial main deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu/

2021-10-13 22:42:40 1059

原创 RCE和preg_match绕过

首先以题为例进来后是这个界面题目告诉我们用json格式所以我们输入{"cmd":"ls"}查看有啥文件发现有index.php这个文件里面有源码,这个题目一开始是就给了源码<?phpputenv('PATH=/home/rceservice/jail');if (isset($_REQUEST['cmd'])) { $json = $_REQUEST['cmd']; if (!is_string($json)) { echo 'Hacking atte...

2021-09-29 19:54:56 773

原创 XML实体注入

XML实体注入首先介绍下基础知识把XML大体格式如下:接下来我以一个题目讲解首先题目已经告诉我们了这是一道关于XML的题目那么怎么做呢我们打开靶机发现是一个登录界面我们审查网页源代码发现里面还有个dologin.php类似于PHP源码。所以我们考虑BP抓包发现是个XXE漏洞Accept: application/xml, text/xml, */*; q=0.01X-Requested-With: XMLHttpRequest我们用这个格式payl

2021-09-25 13:46:56 464

原创 Python Pickle反序列化

以题目为例吧进来是这个界面我们查看下网页源代码我们按F12来检查cookie因为一般这种商店题都需要查看cookie和session发现我们将这串base64字符串进行解码怀疑他可能是被加密过了我们利用python的pickle库对他进行解密因为这个字符串他是pythonpickle反序列化过后的字符串这里真正考察的是Pickle反序列化漏洞,利用Pickle反序列化exp反弹shell所以我们需要在kali 中进行使用脚本通过pickle...

2021-09-24 21:04:27 147

原创 PHP伪协议

进来是这样我们查看网页源代码发现上面是一段PHP代码对于第一个if我们只要让参数中不要出现_这个符号即可采用%20绕过对于第二个if我们首先传入的参数中要有2333其次要匹配pregmatch所以搜索换行符的URL编码%0a绕过b%20u%20p%20t=23333%0a 即可绕过提示我们有个PHP文件我们进去告诉我们需要是127.0.0.1所以hackbar修改一下发现是一团乱码不懂是啥然后百度一下这个是JSfuck编码我们解码得到说..

2021-09-23 20:19:09 986

原创 PHP 伪随机数

PHP伪随机数以题为例进来发现是朱一旦看不出来什么,所以我们查看网页源代码发现里面有check.php文件我们进去查看发现php源代码通过分析我们了解到要给num传入一个字符串让他等于str的值我们先用python脚本进行爆破生成了随机数接着我们利用脚本工具php_mt_seed生成私钥私钥为seed后面的数字接着我们写PHP脚本运行生成IeK7b1pbmp6gJ0UhZuQ2这个字符串的值就是我们要的值了...

2021-09-23 20:17:51 159

原创 PHP phar反序列化

以题为例进来后我们注册一个账户并登录查看一下网页源代码发,并没有发现什么我们上传个文件看看能不能通过菜刀获取权限发现并不能连接上。此时我们通过BP抓包看看能不能获取到有用的信息发现一个filename裸露在我们视野我们考虑让filename=xxx.php获取到index.php我们这样尝试发现没用这是为啥呢?这里有个细节我们一般上传文件都是在网站主目录下的,所以这里需要跳转到上级目录所以我们需要让filename=../../index.php出现了index.

2021-09-23 20:12:43 580 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除