2022ciscn pwn
前言
今年ciscn总共三题pwn,一题算是签到,一题2.34的堆做一半没成功,一题LLVM PASS没学过完全不会。分区赛六题pwn,awdplus的模式,成了修洞的乐园。
login-nomal
这题其实做过类似的,在蓝帽杯还是哪来着做过,在代码审计部分差不多一致,只是在最后的利用过程有改动。首先就是一个循环执行函数,接着看函数的主要内容。
image-20220705213148416
接着看又是一个循环,这个循环就是这题最麻烦的点了,需要一步步的耐心整理,当时我做是直接找了类似题目进行比较的,所以没花多少功夫,需要注意一下的就是msg后跟的字符串要多输入一个,因为处理的时候strlen-1了,会少一个字符。
image-20220705213257184
审完上面的代码,接下来就是主要的菜单内容,主要关注1和3执行的内容。
image-20220705213831271
在执行1函数可以设置一个flag为1,这个为3执行到mmap提供真的判断条件,而要能够执行这串代码,需要的是先通过isprint的检验,所以就是只能输入明文字符,这就涉及到的一个考点就是明文字符书写shellcode。明文字符生成可以通过alpha3或者AE64进行自动生成。我使用的是alpha3,执行命令为:
1 |
|
rdx是指call后面跟着的那个寄存器,也就是存放shellcode首地址的寄存器。
image-20220705213700566
image-20220705213732318
1 |
|
二维码
这题跑去问了柘狐师傅,也是个签到题。但是比赛那会没做出来,太菜了。
利用点在于black初始值是为0的,那么没有过滤..
image-20220707093637899
同时,因为可以输入文件的名字,并且是可以含有.
和/
,那么就存在了目录穿越的问题,利用../
可以返回到上一级的特点,可以把flag内容打印出来。
image-20220707093800921
image-20220707093746094
打印出的内容为base64加密的结果,解码即可。
image-20220707094151700
image-20220707094220973
1 |
|
- 本文作者:ShouCheng
- 本文链接:http://shoucheng3.github.io/2022/07/05/2022-07-05-2022ciscn-pwn/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!