第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

这篇具有很好参考价值的文章主要介绍了第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目自取:

链接:https://pan.baidu.com/s/1HrMqh-lX-mkfueVeLzoEJg 
提取码:oyel

介绍下这可恶的沙箱机制

这是一道非常让人蛋疼的题目,之前我只听说过沙箱,但是并没有自己实际接触过沙箱这个保护机制,大概作用就是开了沙箱之后,会禁用掉某些函数,一旦我们使用了这个函数,比如我们在栈溢出构造ROP,或者写入shellcode执行时,只要含有这些函数,这个程序就会崩掉,这题目就开了沙箱。
第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

之前我有个疑问,这里明明没有exevce函数的引用,为什么我用pwntools工具写的 shellcode = asm(shellcraft.sh())或者网上抄来的execve(binsh)都不能打通呢??

这非常让人恼火,难道seccomp-tools错了???

后来问了学长才知道,原来是因为seccomp-tools这玩意它会显出所有可以用的,但是貌似不能用的不会完全显现,所以我们这里可以看到,这里只允许了orw的使用,其实很明显了,就是要写orw的shellcode去把flag拿出来。

反编译看看

ok,我们开始,首先放到IDA看看咋回事

第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

 沙箱之前我们已经分析过了,这里就不细说了,就是主函数的思路也非常简单,就是拿一块内存buf,然后让你输入shellcode,然后判断长度,如果小于等于5字节,就执行shellcode,否则报错gameover。

显然5字节的shellcode玩个毛,几个基本的汇编指令就已经不止5字节了,很明显我们要绕过这个strlen检测,然后我在网上冲浪的时候发现了一个好文,这里贴一下

第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

我想过绕过strlen函数,但是我都是在shellcode前面直接加\x00\x00的,发现这是行不通的,就很淦也让我产生疑问,这究竟是为什么呢??

我们来调试下
这是填入\x00\x00的情况
第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag 第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

很明显它call了个寂寞,里面没指令,所以报错了
但是如果我们换成了 asm('xor eax,0x4141' 的话,我们可以看看啥情况。
第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag 可以看到,这个414135即为指令xor eax,0x4141,这就做到了两点,一是绕过了strlen检测,二是call rdx的时候是有指令的,不会导致程序崩溃.

那由于沙箱把我们的execve函数禁用了,所以我们用pwntools生成的 asm(shellcraft.sh())或者网上抄来的execve(binsh)都不能打通,因为它们本质上都是调用exevce函数。

所以我们只能用orw shellcode去拿flag了,这种shellcode虽然不能拿到shell,但是可以打开flag文件,然后输出里面的内容,具体咋写这种shellcode呢?我们还是可以利用pwntools自带的功能,这里推荐一篇博客(3条消息) orw_shellcode_模板_orw的shellcode_huzai9527的博客-CSDN博客

#pwntools
shellcode = ''
shellcode += shellcraft.open('./flag')
shellcode += shellcraft.read(3,'rsp',0x100)
shellcode += shellcraft.write(1,'rsp',0x100)
payload1 = asm(shellcode)

 但是注意注意!!!这里不是'esp',而是‘rsp’,而且read的系统调用号是3,
修改一下就可以拿到shell啦
第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag文章来源地址https://www.toymoban.com/news/detail-445191.html

到了这里,关于第七届福州大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023陕西省大学生信息安全竞赛web writeup

    早写好了,忘发了,题目质量还行,够我坐大牢 简单的反序列化,exp如下 传参这有个坑,用了Unicode编码,得copy下来进行url编码才能传参,不知道这么干有什么意义,还得绕过Exception,把变量数改一下就能绕过了,跟绕wakeup一样 preg_replace采用了/e的模式,很明显有rce漏洞,简

    2024年02月07日
    浏览(31)
  • 2022浙江省大学生信息安全竞赛技能赛初赛Writeup

    前言:misc浅浅ak了一下,misc2一血misc3二血,最高冲上了第5,不过后来还是嘎嘎掉到第9,crypto和pwn一道没出真的太菜了( 希望周末决赛能好好加油! 拖到010观察得到是逆置的zip压缩包,简单写个脚本倒一下 解开后得到一个缺少文件头的png,补上png文件头 提示CRC校验错误,修

    2024年02月07日
    浏览(39)
  • 第十五届全国大学生信息安全竞赛创新实践能力赛

    ​ 这两个应该是属于非预期,查找文件内容,两个flag都出了: find / |xargs grep -ri flag{ 2/dev/null flag{34f5fdaf-c373-47fd-afab-01ed2914c11a} 解题步骤同上 使用hydra爆破获得root密码toor。 登陆查找(find / |xargs grep -ri flag{ 2/dev/null)获得flag flag{7b352ef0-1bb1-41af-a7d7-b74f62ff23f0} 爆破sha256老脚本套

    2024年02月07日
    浏览(34)
  • [ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛

    第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 nc连接后我们先来看看 ​ 分析一下: ​ 主要目的是创建一个安全的环境,让用户在其中执行他们的代码,同时防止他们执行可能会破坏系统或获取敏感信息的代码。 首先导入了一些Python模块,如 code , os , subprocess 和 pty ,

    2024年02月04日
    浏览(30)
  • 第十五届全国大学生信息安全竞赛知识问答(CISCN)

    一、单项选择题 1、国家秘密的保密期限,除另有规定外,绝密级不超过()年 A、10年 B、50年 C、30年 D、20年 2、安卓逆向中,反编译JAVA通常使用以下哪个软件?( ) A、JPEXS B、dnSpy C、JEB D、IDA 3、我国在信息系统安全保护方面制定的最早一部,也是最基本的一部法规是()

    2024年02月04日
    浏览(46)
  • 2023浙江省大学生信息安全竞赛技能赛初赛 部分wp

    1、题目信息 查看代码 2、解题方法 这种一看就是计算结果然后结果ASCII组成flag,可以试一下第一个,结果68,对应ASCII正好是D,因此想法正确 exp: 1、附件信息 2、解题方法 根据代码部分可知也就是求:p 2 + q 2 =n 利用sage里方法two_squares来求解。 参考:https://wstein.org/edu/2007/s

    2024年02月05日
    浏览(36)
  • 全国大学生信息安全竞赛初赛writeup(历年CISCN真题与解析)

    收录了大佬们参加全国大学生信息安全竞赛初赛的writeup和真题环境,方便学习,排名不分先后,谨参考完整度和CSDN站内优先原则。 在此,对大佬们的分享表示由衷的敬意和诚挚的感谢! 第十二、十三届全国大学生信息安全竞赛——创新实践能力赛原题 如果遇到打不开的链

    2024年02月06日
    浏览(45)
  • 2022第十五届全国大学生信息安全竞赛(ciscn)西南赛区部分WP

    EzSignin 访问题目flag是假的,F12源代码,看到base64解码 解码得到flag CODE 访问题目,有个aid.php直接访问不行,使用PHP为协议进行读取,input2需要等于Welcone!,这里要使用data协议编码一下,input3可以随便输入 得到aid.php的代码 很明显的反序列化,直接构造payload: exp: base64解码得

    2024年02月06日
    浏览(39)
  • 交换瓶子【第七届】【省赛】【A组】

    有N个瓶子,编号 1 ~ N,放在架子上。 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的情况,显然,至少需要交换2次就可以复位。 如果瓶子更多呢?你可以通过编程来解决。 输入格式为两行:

    2024年02月22日
    浏览(30)
  • 2023第七届蓝帽杯 初赛 web LovePHP

    直接给了源码。 network查看到,PHP版本是 7.4.33 题目要求我们GET一个 my_secret.flag 参数,根据PHP字符串解析特性,PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事: 删除空白符 将某些字符( [ 空格 + . )转换为下划线 实际应用: get传参NSS_JAY

    2024年02月10日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包