首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
ciscn专题
【华东南AWDP】第十七届全国大学生信息安全竞赛 CISCN 2024 创新实践能力赛区域赛 部分题解WP
前言:这次区域赛AWDP安恒作为支持,赛制风格遵循安恒,一小时check一次。室温35°在室内坐了8小时,午饭是藿香正气水拌冰水。这场总体下来中规中矩吧。 WEB-welcome-BREAK Ctrl+U拿到flag WEB-submit-BREAK 文件上传,简单绕过 绕过就两个,一个MIMA头,一个等号换php(短标签) WEB-submit-FIX 修两个点,一个是
阅读更多...
2024全国大学生信息安全竞赛(ciscn)半决赛(西南赛区)Pwn题解
前言 前两天把华南赛区和东北赛区的Ciscn半决赛题目复现完了。 最近西南赛区半决赛也刚刚结束,找师傅要了Pwn题目,复现一下。 Pwn1-vuln 比较有意思的题目,构造很巧妙,call的函数地址指向栈顶变量地址。 使得我们可以构造16字节的read的shellcode实现任意大小shellcode读取。 逆向分析 签到题,程序逆向很简单,挺有意思的一个题目。拖入IDA分析:
阅读更多...
CISCN 2022 初赛 ez_usb
还是从第一个 URB向后看 发现 同时 存在 2.8.1 2.10.1 2.4.1 但是显然 2.4.1 是7个字节 不满足 usb流量要求 只考虑 2.8.1 和 2.10.1 tshark -r ez_usb.pcapng -T json -Y "usb.src == \"2.8.1\"" -e usbhid.data > 281.json 正常取数据即可 import jsonwit
阅读更多...
ciscn
ciscn Crypto部分复现 古典密码 先是埃特巴什密码(这个需要进行多次测试),然后base64,再栅栏即可 答案:flag{b2bb0873-8cae-4977-a6de-0e298f0744c3} _hash 题目: #!/usr/bin/python2# Python 2.7 (64-bit version)# from secret import flagimport
阅读更多...
[CISCN 2018]sm
目录 1.题目 3.解题 4.参考 1.题目 题目链接 from Crypto.Util.number import getPrime,long_to_bytes,bytes_to_longfrom Crypto.Cipher import AESimport hashlibfrom random import randintdef gen512num():order=
阅读更多...
【Web】记录CISCN 2023 西南半决赛 seaclouds题目复现
目录 原理速览 构造细节 EXP 原理速览 在Spring依赖下,可以触发jackson的BaseJsonNode#toString,从而调用getter,而后为所欲为 【Web】浅聊Jackson序列化getter的利用——POJONode_jackson 序列化时指定get方法 【Web】浅聊Java反序列化之Rome——关于其他利用链 至于如何调用toString,对
阅读更多...
【Web】记录CISCN 2021 总决赛 ezj4va题目复现——AspectJWeaver
目录 前言 原理分析 step 0 step 1 EXP 前文:【Web】浅聊Java反序列化之AspectJWeaver——任意文件写入-CSDN博客 前言 这就是当年传说中的零解题嘛😭,快做🤮了 有了之前的经验,思路顺挺快的,中间不知道为啥一直一直一直一直报错,耗了一个下午总算打通 考的是AspectJWeaver写恶意字节码到靶机上(本题jsp靶机不解析),再
阅读更多...
[CISCN 2019华东南]Web11
打开题目 看到xff就应该想到抓包 看回显也是127.0.0.1,我们盲猜是不是ssti模板注入 输入{{7*7}}显示49 可以看的出来flag在根目录下 输入{system(‘cat /flag’)} 得到flag 知识点: 漏洞确认 一般情况下输入{$smarty.version}就可以看到返回的smarty的版本号 得
阅读更多...
[BUUCTF]-PWN:ciscn_2019_final_3解析
查看保护 RELRO保护为FULL,got表不可修改,只能修改hook表了 查看ida 这里的大致功能为alloc创建堆块(可填充内容)、free释放堆块(但是不清空指针) 值得注意的就是创建堆块大小不可以超过0x78(实际大小会对齐) 这里的libc版本要注意以下,它在题目中给了我们libc库,很巧妙的是这道题的版本选得很刁钻,只要稍微高一点的版本都用不了常规解法中的tcach
阅读更多...
详细ciscn_2019_s_3题解
来了来了,我拖了好久,因为吧,之前做了个堆题,大概用了一周才做完,做完堆题,下一个题是栈的,我以为会很简单,但是对我来说很难诶。上才艺… (系统调用其他师傅都有写,我就不赘述啦啦啦啦啦),因为师傅们翻到我这里肯定对系统调用有了解了呀,我这么菜,只能在最下边呜呜呜。 1.拖入ida,反汇编(64位),注意到函数传参与32位会不同。 在函数框内发现vuln(大家应该对这种函数很熟悉了吧),还有gadg
阅读更多...
ciscn_2019_s_9详解
checksec得知: 1、程序架构是 i386,32位,小端模式 2、got表可读可写 3、没有启用栈保护 4、栈中数据有执行权限 5、未启用位置无关可执行文件 6、存在可读可写可执行段 执行程序,要求输入字符串。 使用ida pro 反汇编 按f5生成伪代码 main函数调用了函数pwn(),双击函数pwn进入, pwn函数定义了字符数组s,大小为24,位于离栈顶8h,栈
阅读更多...
ciscn_2019_s_3(SROP)
0x01 分析 ida分析: vuln: read存在栈溢出,读入的地方是rsp-10,写入10个字节之后可以直接覆盖到return。0x19-0x0F=10。 gadgets: 这里需要注意两个地方:mov rax,15 和 mov rax,59。这里涉及到Linux系统调用: 15对应的是sys_rt_sigreturn系统调用; 59对应的是sys_exe
阅读更多...
[CISCN 2019 初赛]Love Math 记录
<?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){show_source(__FILE__);}else{//例子 c=20-1$content = $_GET['c'];if (strlen($content) >= 80) {die("太长了不会算");}$blacklist = [' ',
阅读更多...
【PWN · 格式化字符串|劫持fini_array|劫持got表】[CISCN 2019西南]PWN1
格式化字符串的经典利用:劫持got表。但是遇到漏洞点只能执行一次的情况,该怎么办? 前言 如果存在格式化字符串,保护机制开的不健全,通常可以劫持got表,构造后门函数。然而,如果不存在循环、栈溢出控制rop等方式,如果格式化字符串漏洞点正常来说只能执行一次,getshell是比较困难的。 不过,linux下的二进制程序,在最后退出时,总会执行一些清扫函数,其中涉及到了fini_ar
阅读更多...
[CISCN 2022 初赛]everlasting_night
题目:一张图片 对于一张隐写图片,我们要知道正常图片的文件头和文件尾才能发现隐藏在其中的内容 PNG:文件头标识:89 50 4E 47 文件尾标识:AE 42 60 82 这题的图片尾有一串不属于PNG的16进制编码 FB 3E FC E4 CE AC 2F 54 45 C7 AE 17 E3 E9 69 AB stegslove stegslove打开翻通道 发现A2通道有信
阅读更多...
ciscn 2022 misc 部分wp
everlasting_night 提示是注意png数据块 然后注意图片通道数据可以用来lsb解码 下载是一张图片,尝试几种方法之后没有太大发现 得到提示于是看了一下stegsolve f78dcd383f1b574b 这里发现了一串可疑字符串,题目提示,可以配合lsb隐写,用lsb脚本运行解密 在这里说一句,cloacked-pixel-master要用python2来使用
阅读更多...
BUUCTF--ciscn_2019_s_91
先看保护: 发现保护全没开,紧接着看看程序执行流程: 经过测试发现了段错误,这肯定就是栈溢出了。因此我们在IDA中看看具体逻辑: 程序主要就这个功能,我们还在程序中发现一个函数: 一段汇编,因此,这题就是个ret2shellcode。我们只需要手写汇编布置到栈上即可(这题不能用pwntools自带的shellcode因为不够长度,手写的这个仅仅28个字节),代码
阅读更多...
[CTFTraining] CISCN 2019 华北赛区 Day1 Web1
题目打开后是这样的: 先进行注册,然后登录上去: 注意左上角有一个上传文件,这时候构造phar.phar进行上传 <?phpclass User {public $db;}class FileList {private $files;private $results;private $funcs;public function __construct() {$file = new File(
阅读更多...
ciscn 华中赛区分区赛 awd pwn1
罕见的有保护没有都开。 输入是input sb是第一个: :后面的第一个事sc sc后面第一个回车是sd sd后面第一个又是input E0存放着input E8放着sc 所以其实也就是回车为分界,一组一个回车。 :又将每一组分开,分别存放在E0,E8。 有个strcasecmp函数 头文件:#include <string.h> 定义函数:int strcasecmp (const
阅读更多...
CISCN-2018-Quals——supermarket分析
supermarket的题目分析 2020-02-01 11:26:17 by hawkJW 题目附件、ida文件及wp链接 这道题实际上我们大体一看,就可以发现是于堆相关的题目,正好用这道题来学习内存的分配机制。这个分配机制是经过查阅的资料综合一些实验,经过自己的理解得出来的,如果有错误,希望各位师傅谅解! 1. 程序流程总览 首先,按照惯例,我们看一下程序开启的保护
阅读更多...
BUUCTF-pwn-ciscn_2019_ne_51
简单查看保护: 32为程序没有canary没有PIE,应该是简单的栈溢出。我们照着这个思路去找溢出点在哪,运行下程序看看什么情况: 程序上来是输入一个密码验证。随便输入下错误直接退出。因此我们需要到IDA中看看怎么回事: 主函数大致流程在此。还给了system函数地址: 使用ROPgadget工具查找字符串/bin/sh: ROPgadget --binary cisc
阅读更多...
BUUCTF-pwn-ciscn_2019_ne_51
简单查看保护: 32为程序没有canary没有PIE,应该是简单的栈溢出。我们照着这个思路去找溢出点在哪,运行下程序看看什么情况: 程序上来是输入一个密码验证。随便输入下错误直接退出。因此我们需要到IDA中看看怎么回事: 主函数大致流程在此。还给了system函数地址: 使用ROPgadget工具查找字符串/bin/sh: ROPgadget --binary cisc
阅读更多...
ciscn_2019_s_3
首先拿到程序先查看一下程序类型 是一个x86-64的ELF文件,查看一下保护,只开启了堆栈不可执行保护 用IDA分析一下该程序 main函数直接进入到vuln函数,这里利用了系统调用,64位的系统调用的传参方式为 首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 rdi,rsi,rdx寄存器中,返回值存在rax寄存器 vuln函数执行了read(0,buf,0x400),
阅读更多...
ciscn_2019_ne_3
ciscn_2019_ne_3 (在rop长度过小情况下,通过read劫持read自身的返回来达到后续大量rop) 首先检查一下程序的保护机制 然后,我们用IDA分析一下,32位栈溢出,难点在于结束变更了两次esp,因此,我们单纯的溢出,直接会造成esp变更到一个无效的地址处。 因此,我们需要将将ecx覆盖为bss段,将栈切换到bss上进行rop。但是切换到bss之前,需要先
阅读更多...
ciscn_2019_sw_5(tcache下delete次数限制时的巧妙利用手法)
ciscn_2019_sw_5(tcache下delete次数限制时的巧妙利用手法) 首先,检查一下程序的保护机制 然后,我们用IDA分析一下,仅两个功能 其中,delete功能只能用3次,delete功能没有清空指针,存在double free漏洞。 Add功能,size不可控,结尾printf可以输出堆内容。 我们可以利用add结尾的printf输出,main_are
阅读更多...
ciscn_2019_es_5(realloc(ptr,0)会free掉ptr并返回0)
ciscn_2019_es_5 首先,检查一下的保护机制 然后,我们用IDA分析一下 Create的时候,没有检查size,因此size可以为0 Edit的时候,调用了realloc,并且没有检查size是否为0,如果为0,则这个chunk会被free掉,但是堆指针没有从flist堆数组里移除,这就造成了UAF。 #coding:utf8from pwn import *#
阅读更多...