自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Pikachu漏洞练习平台----验证码绕过(on server) 的深层次理解

对于Pikachu平台 验证码绕过(on server)一题的深层次理解和与之对应的网站代码知识的分析。

2022-08-13 23:03:06 1746 1

原创 2020 5space pwn题 twice

好久好久没有写博客了,刚放暑假希望自己能抓紧学学吧 -_-6月24号比的赛,现在才想起来写总结,最近痴迷于想扣篮,一直在打球也没有很努力在学习。。。一场比赛只出来这么一道题,不过也行了,最近一直没有学pwn,还能记得是真不错。。。主函数就是一个循环,nCount是主要参数, InitData函数无关紧要,,点进去 sub4007A9函数看一看这里的形参 a1 就是 nCount 传进来的,是一开始那个循环的计数器,所以初始值为0后面就有点看不懂了,所以点进去 sub_400760函数 看

2020-07-13 23:37:57 271

原创 de1ctf_2019_weapon (IO_FILE)

这道题的方法对于我来说有点陌生,堆操作之后利用IO_FILE的相关知识,记录一下,以后还会有更多对于 IO 的利用保护机制全开,所以常规方法肯定没办法分析程序:这是主程序menu函数create函数逻辑是输入申请大小,在输入index,然后就写入chunk没有任何检查,比如申请过的index不能用之类的最简洁的申请函数delete函数同样是简洁的释放函数,而且有 uaf 漏洞rename函数改写chunk内容,写入的时候貌似没有溢出,但是 uaf 能用在这上面程序看似

2020-05-27 22:36:19 998

原创 2020网鼎杯 逆向 joker

这么看又是一道猜密码的题ida看着有些问题,同学说要栈修复,我做的逆向少不知道是啥。。。所以就看的汇编往下看到这里,有了 scanf ,所以就是要输入字符串,之后进行 strlen 函数,然后看到cmp那一句,与 0x18 比较,所以字符串大小必须是 0x18 大小,也就是 24而且注意到我们输入的字符串存在了 [ebp+var_96] 这个位置这里能看到,输入的大小不是24就输出 Wrong之后往下走,能看到 [ebp+var_96] 传给eax,然后依次传给 wrong 函数,和 om.

2020-05-11 23:22:50 545 1

原创 2020网鼎杯 逆向 signal

先分析一下程序main函数进来是这样,__main()好像没什么用,之后把 0x403040位置的东西复制到v4变量,之后vm_operad函数又将v4传了进去。先看一下 0x403040 位置是什么是很多四字节为单位的数,之后会用到进去 vm_operad 函数之后可以看见,之前传进来的 v4 现在是 a1 ,也就是 0x403040那个位置的数用a1来表示粗略的看一下,有 what a shame 这样的字符串,所以应该是要比较字符再仔细分析程序,switch 这里用的参数是

2020-05-11 16:12:00 1409 3

原创 BUUCTF pwnable_start

程序只有这么点代码,稍微分析一下esp入栈,返回地址入栈(这里直接返回到exit函数,就退出程序了)清空四个寄存器这些东西被入栈,不知道是什么,往下看这里调用了write函数,在汇编当中调用write函数的形式和寄存器是这样的wtite ( fd , addr , length ) 三个参数对应的寄存器为 ebx ecx edx将esp赋值给了ecx,说明要打...

2020-05-01 11:27:14 335

原创 BUUCTF jarvisoj_guess

博文1博文2首先这是我看的两个wp,第一个博主讲的很多main函数里面对我来说有一些难点,就是socket编程,正在学计网,到学期后半段可能会有写socket编程的作业,先了解一下SOCKET看到这里就能看出,程序里面也用到了其中一个结构 sockaddr_in这个结构就是保存socket的信息的这是地址族,看不太懂,可能和这道题没太大关系,堆在这用到的时候看一下...

2020-04-22 23:51:09 299

原创 BUUCTF gyctf_2020_borrowstack

第一个read的只能溢出0x10字节,也就是刚好覆盖返回地址,如果要ROP地方肯定不够所以栈迁移到bank,在那里ROP之前没遇到过这样的题,怎么迁过去我苦思冥想,最终还是看了wp,,用两个leave来控制rsp和rbp寄存器,太妙了leave是个伪代码,,分解开就是mov rsp,rbppop rbp如果把栈构造成这样‘A’ * 0x60bank_addrleave_...

2020-04-22 10:52:12 775

原创 BUUCTF [V&N2020 公开赛]simpleHeap

保护机制全开的程序,也无法利用got表,,只能覆盖 malloc_hook 或者 free_hook堆的题要好好分析代码 T T1.addsub_AB2 是到heap_got (储存堆指针的表)里面找第一个空着的堆序号返回给v1,没有可用的就返回-1,最多申请10个堆之后输入堆的大小,最大是 111,也就是0x6F,,加上chunk头是0x7F ,也就是申请的堆只能fastbin...

2020-04-17 00:13:10 1103

原创 BUUCTF axb_2019_fmt32

主程序就是这样的,能看到有一个printf的格式化字符串漏洞sprintf 相当于把参数替换了之后的格式化字符串送入了第一个参数,也就是format首先,没有后门也没有系统函数,要用格式化字符串泄露出牟哥libc函数,来获得libc基址然后,仔细算一下 s 和 format 两个参数,都没有溢出,,也没有函数能写进got表,,所以还是再次利用格式化字符串漏洞通过%n来写入数据先看...

2020-04-16 20:06:27 1494

原创 BUUCTF [V&N2020 公开赛]warmup

sub_80A函数进去是初始化设置缓冲区没啥用sub_84D进去是这样的进去之后一大堆变量。。。不太想看,,就挑重点的吧这个prctl 函数简单来说也是设置了沙箱规则#include <sys/prctl.h>int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long ar...

2020-04-14 21:21:35 794

原创 BUUCTF cmcc_simplerop

这道题打开ida又是那么一大堆一大堆的函数,也没有外部引用的段,所以就是静态链接把好多函数都链接进来了所以就和 BUU上另一道 inndy_rop 一样,直接用ROPgadget 去找rop链 from struct import pack # Padding goes here p = '' p += pack('<I', 0x0806e82a) # pop edx ...

2020-04-14 12:37:07 884

原创 BUUCTF pwnable_orw

这道题又是一道seccomp,,这个orw_seccomp函数里面说的傻我看不懂。。。反正根据套路肯定还是不能用system,,还是通过 open,read,write,来泄露flag文件写这种shellcode写的方法一个是直接汇编 或者 可以用pwntools里面带的shellcraftpwntools官方文档其他的没啥可说的,看一下代码shellcraft:#cod...

2020-04-12 23:09:30 495

原创 BUUCTF [V&N2020 公开赛]babybabypwn

先看一下,,所有保护机制都开启了进入main的第二个函数,里面是这一堆东西查了一下这个是沙盒机制,seccomp ,,这个seccomp_rule_add函数是给这个沙盒添加规则,意思是这个函数不能调用这个函数的第三个参数,是代表函数的number,,别的不太清楚,网上也没有查到。。但是 59号代表的是execve函数所以这个函数不能被调用,,也就是说无法得到系统权限了(吧)所以这样...

2020-04-10 23:14:05 1018 1

原创 BUUCTF hitcontraining_uaf

这是我第一次自己做出来的堆题,,????动没什么特别,,看一看代码还是一个堆块管理系统,不过这次他管理的时候有些不一样1.add不一样就在这里,,如果要创建一个用户数据,,先malloc一个八字节的指针堆块(我这么叫。。里面放着指针),,这八字节,前四个字节是一个pirnt_note_content函数,,这个函数的作用是以他后面相邻四个字节的数据为指针,打印这个指针里面的内容;;;申请...

2020-04-09 16:25:19 906 1

原创 BUUCTF bjdctf_2020_babyrop 1 和 2

这两个rop其实是差不多的,第二个比第一个多了一个canary先看一下第一个bjdctf_2020_babyrop1init里面两个putsvul里面一个puts一个read没有system和binsh ,要泄露libc,但是现在没有可以控制的输出手段,,所以要通过read,,覆盖返回地址为puts,,构造参数让puts输出libc的函数这是网上别人的做法,,首先到pop rd...

2020-04-09 15:52:15 1442 1

原创 BUUCTF [ZJCTF 2019]EasyHeap

Partial RELRO 那说明got表可写,可以通过改写got表为想要的函数,堆通常的利用方法还是老样子,一个堆块管理系统,main函数太长了不放了,就是根据你的输入选择操作值得一提的是有个这个这个函数能dedaoflag吗??一会再说,反正system是有了,不用泄露libc了1.create可以看到,堆块最多有十个,,还是用了一张表维护着堆块的指针,,这样就让人想把这个...

2020-04-08 19:26:05 2626 3

原创 pwnable.kr uaf(c++类/虚函数的了解)

连进去有三个文件#include <fcntl.h>#include <iostream>#include <cstring#include <cstdlib>#include <unistd.h>using namespace std;class Human{private: virtual void gi...

2020-04-07 13:32:05 254

原创 pwnable.kr asm (open函数的探究)

这其实是一道挺简单的题,会用pwntools写shellcode就行了,不过里面有一个小点,网上别的文章从没有人提过,前两天学校有人讲座讲了这道题,然后也讲错了。。。不求甚解也得看情况。。连上去,然后ls发现有这么几个文件,,这是asm.c#include <stdio.h>#include <string.h>#include <stdlib.h>...

2020-04-06 15:41:26 437

原创 攻防世界 4-ReeHY-main-100

本来想着做2018年的网鼎杯 pwn的,但是就算看了 wp也无法模仿着实现,所以就退而求其次先做一些堆的题吧18年网鼎杯的pwn有个babyheap,里面用到的unlink我一直不懂,断链是知道咋实现的,但是到底有啥用真是不做题无法体会然后在攻防世界找了一个pwn题,就是这道题,看了一个肥肠肥肠细致的博主的文章,收获颇多传送门下面我就记录一下,题的思路大致和这个博主一样,后面我自己发挥了一...

2020-04-01 15:06:09 758

原创 攻防世界 time_formatter

Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x400000)FORTIFY: Enabled这里一看有个fortify,以前没见过这种防护机制,(开启了FORTIFY_SOURCE对格式化字符串有两个影响:...

2020-03-28 16:19:00 513

原创 攻防世界 level3

整个程序就这么几行代码,vul函数里有明显栈溢出,猜测是覆盖返回地址为system,,,但是程序里没有system也没有binsh,所以只能自己泄露查一查write函数,三个参数,第一个为1代表输出,第二个是要输出东西的指针,第三个是输出长度所以可以利用wirte,把第二个参数改为某个libc里面函数的地址,泄露出来,然后根据偏移得到system和binsh但是只有一个read函数并不...

2020-03-26 23:02:15 500

原创 攻防世界 string

这回终于做上了一道像一个小系统一样的题,有很多输入输出,程序逻辑也复杂了一点,比赛中我看都是这样的题,一直以来遇到这样的题都是不知所措,从这一道开始练手把这是一个文字版RPG game…一开始看main函数看不出来什么,注意到输出了secret输出secret之后进入另一个函数,将v4的值传了进去然后让输入名字,这里好像没有溢出,名字长度小于12输入名字之后进入三个函数的第一个,开始...

2020-03-22 22:43:01 1156 5

原创 攻防世界 cgpwn2

乍一看是个普通的溢出,但是没有给binsh字符串,我就想到bugku pwn4里面也是没有字符串,用的$0做字符串,也达到binsh的效果可是一看只有$么得$0…然后我就开动脑筋,这回还真没看别人的wp,自己想的,可喜可贺我灵机一动,,前面输入名字是什么玩意,,点进去name一看在bss段上,,那不就可以找到了,他也没开pie第一次输入/bin/sh不就完了,然后第二次溢出覆盖返回...

2020-03-19 22:22:51 447

原创 攻防世界 level2

这道题一点也不难,不过遇到了一个之前没有注意到的知识直接溢出buf就可以覆盖返回地址但是之前做的rop是64位,把参数存放在rdi然后调用system就行32位的system参数放在栈中,,我以前简单的以为要执行的语句就放在栈顶于是我把plt表中的地址放进去了,紧接着binsh地址,然后送出去后不对看网上的wp说,他们用的是这个地址这个地址是call过去的,者就解释的通了call...

2020-03-19 16:18:37 247

原创 Pwnable.kr simple login

程序的逻辑是,首先输入s,最大三十个字节(这里没有溢出),然后base64解密,解密后的明文存在v4,长度存在v6,后面判断v6不能大于12,判断成功后将v4复制到input变量,,之后进入auth函数inoutauth函数第一句的memcpy感觉就很突兀,把input复制给v4(这是autn里的v4),后面根本没有用到v4,从这个角度看这句话应该也有点问题,,,因为前面判断了,所以inp...

2020-03-18 16:19:07 268

原创 攻防世界-int_overflow

输入1进入登陆系统,这个函数下没有漏洞好像login函数里也看起来很正常,buf和s大小设置都很合理,似乎不会造成溢出到了login函数最后有检查passwd的函数,题目说的intoverflow就体现在这里了,我也没有自己琢磨出来,看的别人的writeupv3是一个无符号整数,最大值是八个比特都用上即256,但是只要再多1就会溢出,v3会变成从0开始的数,可能是由于程序之前没有对s输入...

2020-03-16 20:16:46 339

原创 Bugku pwn3

这道题保护机制全都是开启的这个程序意思是一开始让你选择一个无关紧要的文件,打开这个文件之后读取文件内容打印,然后就是用户的输入先输入要输入的内容有多长,之后写入thinking_note,这里thinking_note大小是固定的,所以这里造成栈溢出,下一步判断是否624个字,也没啥用,好像每次都不对然后进入if,这里又可以读取0x270的内容这里读入1000在第一个read的...

2020-03-09 23:57:49 335 2

原创 Leak-canary 简单绕过canary

leak-canary提取码8ypi这是从别人那里看见的,在看canary怎么绕过的时候看到的别人的博客他讲的感觉挺对,不过这个程序他利用的不是很充分,然后我就现学现卖一下了这里好像严格来说至少有两个漏洞,一个是buf<read的大小,栈溢出;一个是printf格式化字符串漏洞。根据canary的保护机制,他就是在栈里面放一段数,(应该是随机的吧)然后在函数返回的时候检查这段...

2020-03-02 16:52:24 563

原创 Bugku pwn5

我怀着沉重的心情写这个blog,在我做出这道题之前费劲了千辛万苦,花了三天时间,思考加发呆加询问…菜就不用说了。好好记录一下吧。代码中存在格式化字符串漏洞,具体运行起来是这样这是第一个坑,%x与%p是有区别的,x输出四个字节,p输出八个字节,这是64位的程序,所以地址应该大于四个字节了。之前一直用的%x最后泄露出来的地址不对,也很难发现。(菜+1)为什么是%11$p呢,这要从pri...

2020-02-28 21:44:20 566 3

原创 Bugku pwn4

bugku pwn4先ida打开elf文件,发现是64位,之前知道64位和32位有所不同但是还没有接触到过程序里没什么,然后打开字符串子视图有这么一句话,引起怀疑,然后双击点开,右键点开外部引用图表到发现0x400751这个函数在调用这一段字符串,打开400751并且反汇编,发现是system函数,里面的参数正是这一段字符串,想到如果里面是系统指令就好了。打开虚拟机,调试过程中也没有...

2020-02-16 00:38:16 349

原创 bugku 代码审计2 strcmp比较字符串

bugku 代码审计2 strcmp比较字符串<?php$flag = "flag{xxxxx}";if (isset($_GET['a'])) { if (strcmp($_GET['a'], $flag) == 0) //如果 str1 小于 str2 返回 < 0; 如果 str1大于 str2返回 > 0;如果两者相等,返回 0。 //比较两个字符串...

2020-02-12 22:26:04 219

原创 bugku代码审计1 extract变量覆盖

bugku代码审计1 extract变量覆盖去网上看了几个wp,好像都不太详细,对于file_get_content()函数都没有解释<?php$flag='xxx';extract($_GET); if(isset($shiyan)) { $content=trim(file_get_contents($flag)); if($shiyan==$content)...

2020-02-11 00:05:14 209

空空如也

空空如也

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

TA关注的人

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