博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【pwnable.kr】 asm seccomp sadbox & 64位shellcode 读 flag
阅读量:4208 次
发布时间:2019-05-26

本文共 624 字,大约阅读时间需要 2 分钟。

题目信息

nc之后查看信息如下。根据readme提示,本关是要求登陆服务器后,nc 9026端口连接asm程序来读flag。flag文件名很长。

看了源码发现程序做了如下操作。mmap了一块内存读取shellcode并执行,开启了seccomp沙箱[1],限制只能使用open read write exit exit_group系统调用。因此本关就是利用这些系统调用来写64位下读flag的shellcode。

可以通过cat /proc/self/status |grep -i seccomp查看当前系统是否打开了seccomp沙箱。

exp

读取flag的shellcode思路如下:

x64的部分系统调用参考[2]。本来自己手写汇编,push 字符串到栈上,再调用pwntools的asm生成机器码。遇到了两个问题:

  • 第一个问题:即使设置了arch为amd64,pwntools asm(push number),number如果超过4字节会报错。用mov再push解决 。
  • 第二个问题:64位下调用系统调用需要用syscall而不是int 0x80。

部分exploit:

PS:这题之前没有调试,间隔了很久才写了wp,感兴趣的可以去做做pwnable.tw上的orw,一个是32位,一个64位,利用思路一样。

此外,以后代码或者输出准备尽量用图片了,虽然占用一点空间,但是读起来舒服一点。

参考

  1. seccomp 
  2. syscall x64 

转载地址:http://mrmli.baihongyu.com/

你可能感兴趣的文章
质量度量分析与测试技术 培训大纲
查看>>
欢迎加入【亿能测试快讯】邮件列表!
查看>>
为什么我们的自动化测试“要”这么难
查看>>
LoadRunner性能脚本开发实战训练
查看>>
测试之途,前途?钱途?图何?
查看>>
测试设计与测试项目实战训练
查看>>
HP Sprinter:敏捷加速器
查看>>
单元测试培训PPT
查看>>
adb常用命令
查看>>
通过LR监控Linux服务器性能
查看>>
通过FTP服务的winsockes录制脚本
查看>>
LRwinsocket协议测试AAA服务器
查看>>
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
性能测试一般过程与LR性能测试过程
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>
SQL注入法攻击一日通
查看>>