欢迎来到我的blog
引言:大学生活感觉有些摆烂,感觉也不能学了跟没学一样,就搭了一个博客浅浅记录下,也希望写会博客能够让我有些学习的动力。(但好像还在摆烂) 可恶,居然被你发现我的博客了😭😭😭 这里可能会记录一些wp,比赛记录,感受心得,以及一些乱七八糟的东西,都有可能写 看我心情。本博客不定时更新,如果有时图片看不了可以开梯子试试,要是一直断更也是可能的(因为本人实在是太菜了没什么好写的)如果想要交流学习或者想要相关题目附件可以加我本人联系方式 qq:1401129008 最后 感谢您能看到这,欢迎来到我的博客,希望您有个愉快的阅读体验TvT
一小点ciscn半决pwn
又好久没更新博客了 有点懒 昨天打了ciscn半决可惜没进决赛 pwn只会修不会打时间也不是很够(就是我太菜了) 修的还慢 要是早点修好的话说不定还可能进决赛 挺遗憾的 没咋打过awdp技巧还是少了不太会打 依旧是队友带飞 catchmefix 删除函数没有置零 存在uaf漏洞 置0即可 刚开始想的是在外面写个置0函数再跳转回来 但是试了好几次都失败了 于是干脆直接在原来的基础上改 把mov eax,0这行缩短一点 上面塞了个置零 这样就好 塞入ebx是动调看到ebx都是0 就塞这个了 如果直接塞0的话写不太下 多说点水水字数 但好像直接改一个跳转到置0就可以了 跳到这就好帮你写好了 后面应该就像别人一样准备考研了 没什么技术感觉也找不到工作 看别人都还写了年度总结什么的 我可能也懒得写了 没拿什么奖 要说有重要的事的话那就是遇到了个可爱的女孩子TvT 可能是因为我比较社恐比较菜 打ctf没认识到什么关系较好的师傅 在这里感谢下mowen师傅和kira师傅 在我学习pwn的时候给我给予过帮助 都很厉害 还有我的队友们 谢谢你们带我玩。
2025浙江省赛决赛的一些pwn
打的很差 拖队友后腿了 我的锅 很对不起队友的努力 比赛时候印象最深的就是ai狗了 看了半天晕了 还有电脑真是越来越卡了 自带的window文件资源管理器比赛时候卡的要死 卡晕了 现在下了个360的感觉还行 mips_pwn_challenge 开头输入255 就会给你栈地址 本题是个mips 平时没有遇到 那时候xyctf2024有这种 但我那时候刚入坑没有记过这个 但调式和其他异构pwn区别不大 但是我的虚拟机前几个月炸过 qemu没装回去 还是自己太菜了 思路很简单 很大的输入直接溢出 并且mips没有nx保护 所以我们写个shellcode并且返回跳转到那里就可以了 这里我也看网上文章复习了下调试 然后就可以调试了 然后有要输入的地方在第一个终端输入就行 调试输入后看看 这里的返回地址是fp上方这个d9c 所以可以填充2c字节 溢出返回地址 并且写入shellcode 返回地址就是shellcode开始位置 也就是fp位置da0 exp easy calc请教了下学弟 学弟还是太厉害了 我是fw 好笨啊 运行程序 发现好像是个计算的 用ida打开好多一大串 一点不想看 只...
2025浙江省赛的一些pwn
打了下省赛 水一下博客 又是被带飞的一天 rop 主要函数就是一个输出一个输入函数 在输出函数中存在负数溢出 可以泄露出libc 这里我们可以负数溢出 这里rbp指向的是dac0所以a1其实是在rbp-0x60也就是dac0-0x60即da60 我们可以在这里泄露一下libc 可以利用puts+378这一行 这里是9f8距离a1相差0x68 所以我们输入-13后即可泄露出这块的地址 然后减去对应于libc的差值即可求出libc基址 那么同理这里输入也是可以改变栈的值 可以直接写rop a1此时是da60是位于rbp+0x10的位置,我们在这里写进bin_sh 后面再写进ret和system,然后输出把v2减回去 在rbp+0x8的地方写上rdi即可获得shell 刚开始看这题想着a1位置是rbp-0x60想着好像也没地方写,后面rbp的值也看错了 脑子真的是抽了wc exp one 这道题就是道常规的堆了 这里加1并且题目就叫one 直接就说明了是offbyone漏洞 没给libc我去看了第三题给的是2.35的结果发现这题的libc应该是2.27的也是搞了半天 结束后看了下学弟的...
非栈上格式化字符串的一些东西
又想水博客了,水一篇非栈上格式化字符串的小结。本文纯粹是我的个人理解,如果有错误欢迎师傅指正。 有时候自己一个人搞这种东西卡在一个点上是真的难受得搞半天 好想要有个师傅可以学习交流😭 可惜我也快不打这个了 litctf2025 onlyone 先贴上脚本更好理解一些,本题是非栈上格式化字符串 这个addr是rsp-8 即db98 也就是刚刚的返回地址 由于是非栈上格式化字符串 所以我们要布置二级指针 我们就要利用这里的rbp+0x18这行结果 第11的偏移就是dbc8 第39的偏移就是dca8 这段就控制第3个参数为addr 也就是db98 这里是控制第11偏移的参数 ,因为printf 解析参数会根据 % 进行判断,在 hn 前面一共有 11个 %,所以这个 %xxxc%hn 会将 xxx 数据加上 %p 泄露的字符个数写入第十一个参数。 是不是不知道92是怎么来的,我们还要先减去%p泄露出来的字节,这部分要怎么算呢,当然是接收了 为啥减一 是因为接收时候多接收了个\n 所以我们就把第三个参数改成了addr,下面你改第四个参数就能改变返回地址了 这里为什么前面要这么多%p这样...
2025强网杯的一些pwn
我又来更新了 感觉过的好快 一下就又好久没更了 周末搞了下强网杯 搞不来 我真的菜啊感觉脑子是真的笨学习也没有很努力 flag-market 这里可以看到存在一个scanf溢出 这里可以看到可以溢出到format(我刚开始直接溢出到stdout去了 结果发现只能覆盖一个字节 不懂搞不来) 所以就可以搭配printf进行格式化字符串漏洞 不过注意这种格式化字符串都得要记得换下libc 没给的话可以看看给的dockerfile或者别的题的libc(一般来说的话可能是同一个libc) 刚开始我想的是先泄露libc然后直接atoi直接覆盖成system,然后再输入bin/sh就好了 但是有个dword_40430C = 1的限制 所以还是得要把exit覆盖成main再循环一遍。 经过动调发现 这里第二次输入后s的值参数位置是在第12个所以我们格式化字符串就改写这里 先把exit改成main函数 同时还泄露一下libc(注意printf执行是在第二次输入完成之后 也就是输入好exit地址后) 第二次也是一样的覆盖 将atoi覆盖成system 最后输入bin/...
2025上海磐石ctf的一些pwn
暑假没事写一篇水下博客 感觉过的好快 一下就又好久没更了 account本题是个32位文件,并且内容清晰明了 我们输入的数据被存储到v1变量中 然后v1数组逐渐向栈的高地址增长,这里就会有栈溢出漏洞了 所以我们的思路就是利用这个进行ret2libc然后拿到shell 但是注意v2参数的覆盖当v2=10 也就是v1[10]的时候我们覆盖的是v2也就是ebp-0xc的位置 这里我们覆盖一个合法的值 所以我们直接覆盖v2值为13 到后面v2++变成14时 我们修改的就是返回地址的值了 到这里就泄露了libc地址 然后再来一遍我们覆盖返回地址为shell即可 但是需要注意的是32位程序中的地址均为4字节无符号整数,而程序使用__isoc99_scanf(“%d”, v1)读入的是4字节有符号整数。 所以我们大于0x80000000就需要进行转换 转换成负数 这样存到内存中就会是补码表示 例如: 简单来说就是大于0x80000000的地址超出范围了 直接写不进去 用负数补码写进去就行 exp 得到shell user 经典堆的菜单题 还帮你写好了功能 add 能创建5个chunk...
一小段sql及一些乱七八糟的东西
端午有空就把sqli刷了一遍,之后可能主要学下渗透了,ctf也是做不太来题目,本文就发下前10道sqli题记录下(后面写的挺简略的),网上有很多师傅写的wp很好,也可以参照他们的,如果有想要我后面wp的师傅也可以加我联系方式私聊要的。 有无渗透大佬带带,教教学习思路也是可以的,非常感谢。 sqliless1这种$id用’(或”)闭合成为字符型注入 ?id=1’–+ 注:Mysql的注释有: # 注释 – 注释 /* 注释 */ 这里的+经过url编码后是空格,%23经url编码是#,将–+换成%23效果是一样的 ?id=1’ order by 3–+order by后面跟数字n代表查询结果根据第n列排序 ?id=-1’ union select 1,2,3–+ 发现回显点2和3 ?id=-1’ union select 1,version(),database()–+ 数据库名为security ?id=-1’ union select 1,user(),(select group_concat(table_n...
litctf2025一些pwn知识
非栈上格式化字符串onlyone 先贴上脚本更好理解一些,本题是非栈上格式化字符串 这个addr是rsp-8 即db98 也就是刚刚的返回地址 由于是非栈上格式化字符串 所以我们要布置二级指针 我们就要利用这里的rbp+0x18这行结果 第11的偏移就是dbc8 第39的偏移就是dca8 这段就控制第3个参数为addr 也就是db98 这里是控制第11偏移的参数 ,因为printf 解析参数会根据 % 进行判断,在 hn 前面一共有 11个 %,所以这个 %xxxc%hn 会将 xxx 数据加上 %p 泄露的字符个数写入第十一个参数。 是不是不知道92是怎么来的,我们还要先减去%p泄露出来的字节,这部分要怎么算呢,当然是接收了 为啥减一 是因为接收时候多接收了个\n 所以我们就把第三个参数改成了addr,下面你改第四个参数就能改变返回地址了 这里为什么前面要这么多%p这样做呢 而不是像平时那样直接%11$然后接上后面的39呢 因为这样我们只能正确的修改第三个参数,第三个指向的第四个参数并不能改变成正确的返回地址 而是修改的是原本第三的参数所指向的第四个参数 如图 所以就不能这么写...
第二届校赛pwn题wp
PWN这次校赛由我负责出pwn部分题目,也都挺简单的。GGKING’s gift本题是shellcode签到题,大致思路是在栈上写shellcode然后栈溢出返回到shellcode即可 来看具体wp 首先就是看保护 nx保护没开,看看是不是shellcode 首先看main函数 是GGKING把nx保护关了,感谢GGKING,我们发现程序把code设置成了可执行,所以就可以用shellcode 我们可以输入0x17的字节到code里,我们看看code是在哪里 我们在看看vuln是啥 我们发现可以输入0x100字节,所以可以溢出到返回地址,将返回地址设置到code处就可以执行shellcode了 注意这里我们只能输入0x17个字节的shellcode,所以pwntools自带的那个shellcode过大输入不进去可以百度下找找短点的shellcode exp 成功获得shell 热天text pro上次新生赛出了这个ret2text,这里加个保护继续拿来用 大概思路是pie爆破 先看看保护 相比上次多开了pie 看看main函数 哇 是欢迎界面 点开vuln看看 哇 是最喜欢的栈...










