网络攻防试题_南京网络攻防pwn题

hacker|
134

网络攻防专业能力测试考什么

选择题,简答题,名词解释,判断题,案例分析题等等。

网络攻防是指计算机的防病毒技术和制造具破坏性的病毒的技术。

《网络攻防技术》由浅入深地介绍了网络攻击与防御技术。首先,从网络安全所面临的不同威胁入手,详细介绍了信息收集、口令攻击、缓冲区溢出、恶意代码、Web应用程序攻击、嗅探、假消息、拒绝服务攻击等多种攻击技术,并给出一定的实例分析,然后,从网络安全、访问控制机制、防火墙技术、入侵检测、蜜罐技术等方面系统介绍网络安全防御技术,进而分析了内网安全管理的技术和手段。

攻防世界 - pwn - greeting-150

格式化字符串漏洞,main函数中逻辑写的很清晰:

可做任意地址写,再看getnline函数逻辑:

strlen函数使用的很奇怪,可以考虑把got表中strlen位置改为system函数的地址,这时控制流需要回到main函数中去,所以格式化字符串任意写需要完成两件事:写strlen的got表为system,让控制流回到main。

这题还考察了fini_array的使用,elf格式的可执行文件执行在main函数前执行.init段的指令,终止前执行.fini段的指令,可参考 init and fini section 。fini_array使用的优先级高于fini段,其中包含了程序结束前需要执行函数的地址,并且倒序执行,参考 When will the .fini_array section being used? ,改变控制流只需要在fini_array中写入main函数地址。

找完offset后可以写exp,在offset前需要填入2bytes以对齐:

网络安全大赛是什么?

网络安全大赛又叫信息安全与对抗技术竞赛(简称ISCC),始于2004年,由罗森林教授提出并成功开展,重点考察计算机安全与网络攻防的知识与技能,宗旨是提升信息安全意识,普及信息安全知识,实践信息安全技术,共创信息安全环境,发现信息安全人才。

网络安全大赛又叫信息安全与对抗技术竞赛(Information Security and Countermeasures Contest,简称ISCC),每年举办一届,直到2007年8月,竞赛活动进一步得到了教育部高教司、工业和信息化部人事司的肯定。经批准,在全国大学生电子设计竞赛中增设一项信息安全技术专题邀请赛,即增设《全国大学生电子设计竞赛信息安全技术专题邀请赛》,且于2008年起每两年举办一次,为全国大学生提供了更多的机会,对向全国范围普及和推动信息安全技术具有十分重要的作用。

发展

ISCC至今已经成功举办了9届,2004年第一届竞赛经过了长达5个月的筹备顺利举办,首届竞赛以新颖的竞赛形式和公开、透明的竞赛规则受到了全校师生的欢迎,取得了良好的效果。

在接下来的几年中,在学校教务处、校团委、校网络中心等部门的支持下,ISCC得到了长足的发展。ISCC 2005在总结上一届经验的基础上采用多支路的关卡设计。ISCC 2008将关卡结构由原先的串行拓扑改为并行结构,并且首页访问量突破30000人次。ISCC 2010在清华科学技术协会的协助下使竞赛首次推广至外校。而到了2010年第八届,竞赛组开始与知名企业“绿盟科技”合作。在借鉴之前7年竞赛经验累积的基础上,绿盟科技充分发挥企业在资源和实践技能方面的优势与北京理工大学一起,将竞赛水平及范围推广至又一个新高度,吸引了广大在校学生、毕业生、从事安全工作的专业人士的广泛参与和关注。并且成为了北京理工大学最受同学们期待和关注的传统学科竞赛之一。

这标志着北京理工大学信息安全与对抗技术竞赛在经历了多年的发展与蜕变后已经逐步走出了校门,实现了校企在技术层面和资源方面的深入合作。在提高竞赛技术水平和影响力的同时,把高校拓展大学生社会实践、履行企业在高校人才培养方面的社会责任作为重要目标,通过高校与企业的共同努力发现和培养更多网络安全方面的优秀人才。

竞赛模式

竞赛分为线上个人挑战赛和线下分组对抗赛两个环节。

个人挑战赛

个人挑战赛以典型的信息系统——计算机信息网络为竞赛内容和考察重点,分为BASIC、WEB、REVERSE、PWN、MISC和REALITY六个关卡。关卡考察内容涉及WEB知识、ASP/PHP脚本、缓冲区溢出、软件脱壳破解、系统漏洞利用、社会工程学等信息安全知识。(1) BASIC: 主要考察基础的计算机与网络安全知识,涉及信息发掘、搜索、嗅探、无线安全、正则表达式、SQL、脚本语言、汇编、C语言以及简单的破解、溢出等知识。旨在普及信息安全知识,引领信息安全爱好者入门。

(2) WEB: 考察脚本注入、欺骗和跨站等脚本攻击技术;

(3) REVERSE: 考察逆向破解的相关技术,要求有较高的汇编语言读写能力,以及对操作系统原理的认识。

(4) PWN: 考察软件漏洞挖掘、分析及利用技术,探索二进制代码背后的秘密,要求对漏洞有一定理解,掌握操作系统原理的相关知识。

(5) MISC: 考察各种计算机系统与网络安全知识,涉及隐写术、流量分析、内核安全等信息安全的各个领域。

(6) REALITY: 则采用真实的网站环境,考察入侵渗透能力。 分组对抗赛从个人挑战赛中选择并邀请全国各地优秀学生及个人到北京理工大学参加线下分组对抗赛。线下比赛分为多个小组进行对抗,在封闭的真实对抗环境(包括DMZ区、数据区、开发测试区、内网服务区、终端区)中展开攻防角逐,充分展示了各位选手的个人水平和小组的协同合作能力。主要采取阵地夺旗、占领高地等模式进行攻防比拼。比赛时,各队伍通过对指定的服务器进行入侵攻击达到获取旗子的目标而得分,并在攻上高地后防御其他队伍的攻击。

攻防世界 - pwn - welpwn

echo函数中有明显的栈溢出:

本地的buf复制时未做边界检查,但这里和通常的栈溢出算偏移量再做ROP有差异,也是这道题最巧妙的地方,进入echo函数时的所有输入已经留在上一个函数栈帧中了,然而buf的复制给了覆盖返回地址的手段,先放出做ROP时栈的分布,然后解释原因:

在echo函数中的原本的输入是从返回地址之后的位置开始的,填充一些后可以覆盖返回地址,buf复制中止的条件是读到'\0'字节,用ropper或ROPgadget找到的gadget地址高位字节均为'\0':

剩下的就是ret2libc环节了,看了别人的WP最后也用了Libcsearcher这一工具,可以在libc信息未知的情况下根据got表中库函数的地址推测libc的版本并给出函数或字符串在libc中的偏移量,写exp:

比较奇怪的是IO,main中的"Welcome to RCTF\n"会先于ROP链中的puts(elf.got['puts'])打印出来,这大概率和write和printf的缓冲区输出相关,但我在本地调试时打印顺序是符合ROP链的,而且本地的libc没有与Libcsearcher云上存的Libc库匹配,这可能是因为本地的libc版本过新的原因,以后还是尽量调试pwninit后的elf文件。

0条大神的评论

发表评论