首页 > TAG信息列表 > CISCN

[CISCN 2019华东南]Web11

看到下面connection 里面的内容有一点像抓包出来的 就抓包试试 似乎感觉也没有什么用 看到这个东西,那么就想到改IP 添加X-Forwarded-For:127.0.0.1 发现这个IP随着我们的改变而改变 就搜了大佬的博客 才知道是一个SSTI和Smarty的利用 就在X-Forwarded-For:{}里面构造system('c

ciscn 初赛 MISC wp

ez_usb 打开流量包观察后发现在2.4.1,2.8.1,2.10.1三个流里有HID Data,于是分别导出,并用 tshark -T json -r xxx.pcapng > xxx.json和strings xxx.json | grep usb.capdata 来导出hiddata(不知道为啥这里不可以直接用tshark导出usbdata) 简单处理后使用脚本处理生成键盘敲击内容 #!/

ciscn_2019_final_4(反调试+在栈上伪造堆chunk)

程序的例行检查我就不放了,这道题我学到了从libc地址获取到栈地址的新思路 来源:(22条消息) ciscn_final_4(反调试+在栈上伪造堆chunk)_seaaseesa的博客-CSDN博客    程序漏洞很明显,uaf漏洞,这道题目开启了沙箱不允许,所以我们通过orw的方式获取到flag 这道题利用了俩个知识点,1在栈

ciscn_2019_n_7(exit_hook)

又学到了一个新知识 题目的例行检查我就不放了 关键漏洞    可以看到我们申请的chunk在v1[2】处,这里存放着chunk的地址指针,但是read确实从v1+1开始输入值,说明我们可以去覆盖这个地址 这道题我们利用exit_hook 首先先说一下exit_hook的地址(并不是调用exit_hook,而是在exit中使用

ciscn_2019_s_1(unlink)

到了考试周,有半个多月没有碰pwn了,趁放假多做一点题弥补一下和pwn师傅的差距 题目的例行检查我就不放了 malloc 函数    可以看到malloc限制了chunk的大小。然后再heap处存chunk的指针便于管理 edit函数    这里存在着漏洞,read时程序没有对v2进行严格的限制存在着堆溢出,然后e

pwn | ciscn_2019_n_8

ciscn_2019_n_8 没有溢出,纯粹考察数据类型转化 直接丢exp: from pwn import * context.log_level = 'debug' # sh = process('./ciscn_2019_n_8') sh = remote('node4.buuoj.cn', 27552) sh.recv() payload = b'a' * 4 * 13 + p32(17)+p32(0) sh

ciscn_2019_s_6(uaf)

ciscn_2019_s_6: 保护全开 漏洞分析: 指针未清零,存在uaf 大致步骤: 利用unsortbin泄露libc,doublefree劫持free_hook为system exp: from pwn import * local_file = './ciscn_s_6' local_libc = './libc-2.27.so' remote_libc = './libc-2.27.so' select = 1 if sele

ciscn_2019_sw_1(fmt劫持fini_array为main,获得一次循环)

ciscn_2019_sw_1: 主要参考这位师傅:https://www.cnblogs.com/LynneHuan/p/14660529.html#%E7%9F%A5%E8%AF%86%E7%82%B9 先引用下: 当RELRO保护为NO RELRO的时候,init.array、fini.array、got.plt均可读可写;为PARTIAL RELRO的时候,ini.array、fini.array可读不可写,got.plt可读可

[BUUCTF] ciscn_2019_es_3

目录ciscn_2019_es_3总结checksec漏洞点EXP引用与参考 ciscn_2019_es_3 总结 题目没有提供free,基本能算是house of force+house of orange,但又不完全是。应该说主要还是围绕着top chunk进行利用,详细利用过程如下: 利用strlen的漏洞,溢出修改top chunk的size,需要滿足要求通过检查,之

[BUUCTF] ciscn_final_10

目录ciscn_final_10总结checksec漏洞点EXP引用与参考 ciscn_final_10 总结 一道简单的tcache dup的题,前面需要绕过校验,注意一下函数的参数为int16。最后把shellcode处理一下即可。 checksec 版本为libc-2.27,无tcache dup检测。 漏洞点 判断是否为0的函数的参数为int16。 uaf: EX

[BUUCTF] ciscn_2019_ne_3

ciscn_2019_ne_3 总结 一道很无语的rop的题目,由于在puts调用中会卡在[ebp - 0x46c]这样的语句,所以只能把栈往抬高,避免访问到不可写的内存区域。 如果题目给的rop很短,那么需要想办法调用read写入更长的rop链 必要的时候需要把栈抬高,避免在函数调用过程中,让不可写的内存写入了东西,

2021_09_15_ciscn_2019_n_1

ciscn_2019_n_1 前言 每日一题pwn方向的第二题。也是初入漏洞利用的一道特别基础的题。 大家都应该尝试着做过了上一道,也就是test your nc。从解法来说其实那道题的难度真的只是半脚踩在入门的门坎上。就像wp中所说的那样,目前pwn题的核心是通过漏洞挖掘与利用来提权,而nc这道

BUU-日刷-CISCN 2019 初赛]Love Math_php特性

<?php error_reporting(0); //听说你很喜欢数学,不知道你是否爱它胜过爱flag if(!isset($_GET['c'])){ show_source(__FILE__); }else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) >= 80) { die("太长了不会算"); }

ciscn_2019_es_7

这是我第一次见到srop的用法的题目,于是在此记录方便以后的复习 拿到程序例行检查        将程序放入ida中    可以看到栈的大小是0x10,却可以显示出0x30的内容,所以我们可以通过这个溢出泄露出/bin/sh在栈的偏移值 关于srop的解析,我在这里贴一个ctfwiki的解析 SROP - CTF Wi

BUUCTF-ciscn_2019_n_1

第一次写题解记录,主要记录下会用到的手段,会显得有点繁琐。这道题只要直接确定溢出位置在exp里写payload发送就好了 检查下保护情况 放进ida分析,搜索字符串,定位到主要函数的位置 可以看到当v2等于11.28125时就会输出flag,而且v2为float类型。 只有一个输入点gets(v1),没对输入进行

ciscn_2019_ne_5

首先checksec和查看多少位的程序    可以看到是32位的程序,放入ida中      进入getflag    可以看到strcpy存在栈溢出,所以大体思路就是输入密码进入选择1造成溢出然后进入选择4获取shell 经过网上查询,不知/bin/sh可以获得shell,只有sh也可以获得shell 所以使用ROPgadget和

我要学pwn.day7

ciscn_2019_c_1 潜心修炼,从基础开始 这是一道没有system的ROP 解题流程 1.检查文件 $ file ciscn_2019_c_1 ciscn_2019_c_1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, B

第14届(2021)CISCN初赛WP(2)——Glass

Glass Writeup 首先使用apktool将“glass.apk”文件反编译 结果如下,提取其中Classes.dex文件 利用dex2jar工具进行反编译得到jar文件 生成jar包 使用jd-gui打开jar包,看到源码 核心判断函数如图所示 可以发现判断是利用checkFlag()函数 checkFlag为native外部函数 使用i

ciscn_2019_es_4

目录ciscn_2019_es_4总结EXP引用与参考 ciscn_2019_es_4 总结 很基础的unlink,只记录下exp,不对题目做过多的分析。注意一点,对于含有tcache bin的glibc版本,需要先把tcache bin填满,再unlink。 EXP from pwn import * int16 = lambda x : int(x, base=16) LOG_ADDR = lamda: x, y: log

2021-CISCN-初赛 总结

第一次打ctf比赛,之前也没怎么做过题,果然被虐惨了,全队一个题也没做出来. 选择 几乎都看不懂,目前大一,专业知识几乎还未涉猎,还好是开卷,拿了625分. 杂项 Running_pixel 题目给了一个gif图 比赛时候想了很久,唯一能着手的点就是发现,gif每10帧图片会变色,但是就此思路就断了

ciscn_lonelywolf

lonelywolf from pwn import * context.arch = 'amd64' context.log_level='debug' p=process('./pwn') libc=ELF('./libc-2.27.so') #p=remote('124.71.235.219',25196) def add(idx,size): p.recvuntil('Your

2021全国大学生信息安全竞赛WP(CISCN)

CISCN_2021_WP 概述ciscn_2021_lonelywolf总结 概述   作为学习不到一年的练习生,今年第一次参加国赛,本以为题目会比较温柔,但是最后只做出了一道pwn题,本来还有两道pwn题是有机会的,但还是缺少一些知识或者技巧吧,没做出来,然后就结束了。本次国赛pwn题出了一道arm 64位结构

BUU-ciscn_2019_n_5

查看保护 什么都没保护.jpg IDA 逻辑很简单,两次输入。这两次输入看起来都可以利用: read限制了读取长度,而且name是全局变量,地址可访问。 gets里的text可以进行栈溢出,0x20 解题思路 EXP from pwn import * p=remote('node3.buuoj.cn',29048) context.arch = 'amd64' # 架构

buuctf——ciscn_2019_n_8

查看权限 开了好多权限 查看源代码 分析 观察,var数组是int类型,在内存中占了4个字节。输入一个字符串,令var[13]处的值是17,且这个值占4个字节,就能拿到shell。 var中每一个元素占4个字节,payload必须构造成"A"*13才能将前13个位置占满。第14个位置要求是4字节,就要用p64打包。

ciscn_2019_n_3

这题和之前做的一个题很像,但是记不清了,也是分开两块chunk分别存data和操作,印象中是这样,那题也是先申请三个然后释放俩,再申请回来,回来的这个的两部分控制好大小,使得分回来的两块chunk来自刚才free的两块chunk的同一部分,放操作的部分,然后就能改变操作函数了,具体记不清了,反正也