2017CUIT校赛-线上赛
2017Pwnhub杯-CUIT校赛
这是CUIT第十三届校赛啦,也是我参加的第一次校赛。
在被虐到崩溃的过程中也学到了一些东西。
这次比赛是从5.27早上十点打到5.28晚上十点,共36小时,中间睡了五六个小时吧。(我还算是我们队休息时间比较长的了)|(•_•) |•_•) |_•) |•) | )
这次我队总分1500,校内排名第六。
在下贡献了四道题目,总计450。
MISC: 1
RE: 2
PWN: 1
杂项就不多说了,说一下RE和PWN吧。
先放官方给出的wp,我对题目不一样的看法会放在后面作为参考。
RE100:
引用Nu1l的wp
1 t = [157,151,141,181,132,,187,251,186,145,140,144,189,253,145,128,254,188,145,141,254,170,171,179] 2 s='' 3 for v int t: 4 for i in xrange(0x100): 5 if(~(~(i | 0xCE) | ~(~i | 0x31))&0xff == v: 6 s+=chr(i) 7 print sRE150:
首先修复一下该程序:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <fcntl.h> 4 #include <unistd.h> 5 #include <assert.h> 6 #include <elf.h> 7 8 #define ENTRY 0x08048320 9 #define FILE_OFF 0x320 10 #define COUNT 0x432 11 12 int main(int argc,char *argv[]){ 13 Elf32_Ehdr ehdr; 14 unsigned char buf[COUNT] = {0}; 15 assert(argc == 2); 16 17 int fd = open(argv[1],O_RDWR);//打开文件 18 assert(fd>0); 19 20 assert(lseek(fd,0,SEEK_SET)!=-1);//读取elf头 21 assert(read(fd,&ehdr,sizeof(ehdr)) == sizeof(ehdr)); 22 ehdr.e_entry = ENTRY;//修改入口地址 23 24 assert(lseek(fd,0,SEEK_SET)!=-1);//回写elf头 25 assert(write(fd,&ehdr,sizeof(ehdr)) == sizeof(ehdr)); 26 27 //解密 28 assert(lseek(fd,FILE_OFF,SEEK_SET)!=-1);//读取被加密的代码 29 assert(read(fd,buf,COUNT) == COUNT); 30 int i = 0; 31 while(i<COUNT){ 32 buf[i] = (buf[i]^66)<<5 | (buf[i]^66)>>3; 33 i++; 34 } 35 36 assert(lseek(fd,FILE_OFF,SEEK_SET)!=-1);//写入 37 assert(write(fd,buf,COUNT) == COUNT); 38 39 close(fd); 40 41 return 0; 42 }然后IDA中去花,分析得到算法。
1 #include <stdio.h> 2 3 unsigned char code[]={0x73,0x8D,0xF2,0x4C,0xC7,0xD4,0x7B,0xF7,0x18,0x32,0x71,0xD,0xCF,0xDC,0x67,0x4F,0x7F,0xB,0x6D,0}; 4 5 int main(void){ 6 int i = 0; 7 8 while(code[i]){ 9 code[i] = code[i]^32; 10 i++; 11 } 12 13 i = 0; 14 while(code[i]){ 15 code[i] = ((code[i]^i)<<(i%8)) | ((code[i]^i)>>(8 - (i%8))); 16 i++; 17 } 18 19 printf("%s\n",code); 20 return 0; 21 }最后得到flag:
SYC{>>Wh06m1>>R0Ot}
pwn50:
Escape from Jail
python的Jail(python沙箱逃逸),过滤是这样的。
通过查看python的builtins,得知可以使用getattr去调用函数。
getattr(os,"system")("/bin/sh")起shell之后直接读flag就行了。
接下来说一下我在解题过程中的一些不一样的东西:
RE100:
上面最后出flag的时候用的是穷举,但是我发现程序中关键算法的部分本身就是可逆的。
flag[i] = ~(~(flag[i] | 0xCE) | ~(~flag[i] | 0x31));这是他原来的算法。
在我测试过程中,发现它等同于另一条语句。
flag[i] ^= 0xCE所以完全可以不用穷举,可以直接利用以下代码。
1 #include <stdio.h> 2 int main(void){ 3 4 int flag[]={ 5 0x9d,0x97,0x8d,0xb5,0x84,0xbb,0xfb,0xba,0x91,0x8c,0x90,0xbd,0xfd,0x91,0x80,0xfe,0xbc,0x91,0x8d,0xfe,0xaa,0xab,0xb3 6 }; 7 int i=0; 8 for ( i = 0; i < 23; ++i ){ 9 flag[i] = ~(~(flag[i] | 0xCE) | ~(~flag[i] | 0x31)); 10 } 11 for(i=0;i<23;++i) 12 printf("%x ",flag[i]); 13 14 15 return 0; 16 }RE150:
我在解题时并没有去试着完全修复ELF文件。
我利用gdb在解密代码后下断,然后dump出解密后的关键代码。
再将这段代码替换到原文件对应的部分,再到IDA中进行分析。
由于中间带花的部分我不会去......所以最后手动翻译了整段代码。(很傻,不建议像我这样做。)
后面的做法就一样啦。
PWN50:
前面差不多,我也用了getattr这个函数去调用system,
但是最后我并没有去拿shell,而是用"cat *"
列出了所有文件的内容。(因为这里还过滤掉了 . 所以不能"cat flag.txt")
转载于:https://www.cnblogs.com/7o8v/p/6920348.html
2017CUIT校赛-线上赛相关推荐
- 2019年第十二届全国大学生信息安全实践创新赛线上赛Writeup
本文章来自https://www.cnblogs.com/iAmSoScArEd/p/10780242.html 未经允许不得转载! 1.MISC-签到 下载附件后,看到readme.txt打开后提 ...
- 首届“陇剑杯”网络安全大赛线上赛圆满结束
9月14日,集结了各行业领域3020支战队.11135名网络安全精英的首届"陇剑杯"网络安全大赛线上赛圆满结束,成功拉开将于9月25日在甘肃兰州新区举行的总决赛战幕.届时,涵盖网络 ...
- 水下机器人线上赛战火升级,目标检测、通信赛项等你来战
权威目标检测.水声通信赛事火热报名中,更有35万奖金和自然科学基金委认证证书等你来拿! 2021年全国水下机器人大赛-线上赛战火升级啦!新上线水下光学目标检测产业应用.水下声学通信应用产业两大算法赛项 ...
- 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
简 介: 本文对于参加2021年第十六届智能车竞赛全国总决赛线上比赛室内AI视觉组比赛细则. 关键词: 智能车竞赛,线上比赛,室内视觉AI 一.比赛方式 由于AI视觉组的特殊识别任务,比如分赛区的 ...
- 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则草案 - 初步版本
简 介: 关于室内AI视觉组在线上比赛的特殊性,本文由逐飞起草的比赛细则给出了比赛过程的详细描述. 关键词: 智能车竞赛,室内视觉,线上比赛 §01 比赛方式 由于AI视觉组的特殊识别任务,比如分 ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- 2022全国水下机器人大赛国际线上赛来啦!“水下感知赛、通信赛”等你来战!
为打造国内外水下机器人领域顶端赛事,激励高校.科研机构和行业顶尖行业通过大赛的实践应用,加快科学技术转化和创新应用验证,为我国海洋经济和海洋安全做出更大的贡献. 为此,由中国国家自然科学基金委员会指导 ...
- 第十七届智能视觉组线上赛比赛流程及相关补充说明
线上赛规则及流程发布后陆续收到参赛同学和老师们的建议,一部分建议可以使得竞赛过程更完善,故增加此文档对智能视觉组的流程及相关细节进行补充说明. 一.场地准备 在"第十七届全国大学生智 ...
- 关于2020西门子杯工业自动化线上赛总结(初赛过控篇)
关于2020西门子杯工业自动化线上赛总结(初赛过程控制篇) 初赛赛程回顾 PID控制器 三个基本实验 液位+温度?PID调参从入门到放弃 总结与感想 初赛赛程回顾 本来的确不想回顾这个比赛的,自己第一 ...
最新文章
- mysql表文件被删_mysql表物理文件被误删的解决方法
- iOS混淆 -- 生成define 替换名
- 巧用linux版powershell,管理linux下的docker
- [转贴]Silverlight Socket 实现收发信息
- 中断服务程序设计实验
- Lync 2010迁移Lync 2013 PART5:支持旧版Lync
- 获取分辨率函数是什么_浅析EDSR——深度学习超分辨率算法
- [渝粤教育] 西安建筑科技大学 技术经济学 参考 资料
- DGV:人类基因组结构变异数据库
- [算法总结] LCA倍增法 dfs
- 计算机网络与新媒体就业前景,2018网络与新媒体专业就业前景和就业方向分析...
- 解决container_linux.go:262: starting container process caused:
- 图片大小自适应垂直居中的方法
- 【图表示学习】Graph Representation Learning 读书笔记(一)
- python爬取个人信息_Python爬取个人微信朋友信息操作示例
- 关于:-1: error: collect2.exe: error: ld returned 1 exit status和The process was ended forcefully.解决方法
- B2型水面线计算(含python代码)
- Windows系统封装初始化工具sysprep
- 低延迟音视频传输技术在直播领域的应用
- 作业:山姆公司相开展“会员制营销”和“EMAIL营销”
热门文章
- Android 热修复实现原理
- 超强干货!7个腾讯最常用的用户研究方法
- 通达信公式改成python_python转换通达信股票数据
- 2018上海国际专业灯光音响展录音与制作专区来袭
- 计算机传感器毕业设计,基于压电传感器的心率计的计算机设计与仿真毕业设计论文.doc...
- 获取商品历史价格信息api
- 自然用户界面设计:NUI的经验教训与设计原则
- 有哪些简单、免费、适合中小型企业的 CRM 软件?
- 苹果获iPhone 4设计和MagSafe电源相关专利-铁石社区-TA云测试平台
- UG NX 12 视图布局