美文网首页
orw ---- pwnable.tw

orw ---- pwnable.tw

作者: 少年_DayJun | 来源:发表于2018-12-31 19:37 被阅读0次

    链接见标题。

    作为一个新新手,看到第一行的时候就开始感到诧异,为什么题目会给出flag的路径呢。

    接下来看第二句,说只有openreadwrite这三个系统调用可以用。

    现在还是一头雾水,那么下载下来看看吧。

    RELROStack的保护。这两行是什么意思呢?

    RELRO:

    RELRO会有Partial RELRO和FULL RELRO,如果开启FULL RELRO,意味着我们无法修改got表

    Stack:

    如果栈中开启Canary found,那么就不能用直接用溢出的方法覆盖栈中返回地址,而且要通过改写指针与局部变量、leak canary、overwrite canary的方法来绕过

    from link  作者:HacTF

    用IDA打开,并F5:

    逻辑大概就是,主动读取shellcode,然后主动执行这个shellcode。

    这么直接??我试了试直接注入,结果失败。这时视线转到orw__seccomp()这个函数上。我们搜索一下seccomp是什么。

    seccomp 是 secure computing 的缩写,其是 Linux kernel 从2.6.23版本引入的一种简洁的 sandboxing 机制。在 Linux 系统里,大量的系统调用(system call)直接暴露给用户态程序。但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。seccomp安全机制能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用4种系统调用(system call),即 read(), write(), exit() 和 sigreturn(),否则进程便会被终止。

    from link  作者:你身边的那个TA

    ok,现在我们就理解了题干的“只有open,read和write这三个系统调用可以用。”是为什么了。

    题目已经给出了一个flag的路径,所以我们只需要将shellcode写成对open,read和write的调用就行了。

    那么现在难题又来了,这shellcode该如何调用呢?我们之前只会复制粘贴啊?

    不会就学啊!link

    或者看别人的wp:)  link

    还有个选择,学一下pwntools的shellcraft  link

    然后把shellcode注入就可以了。

    flag = FLAG{sh3llc0ding_w1th_op3n_r34d_writ3}

    相关文章

      网友评论

          本文标题:orw ---- pwnable.tw

          本文链接:https://www.haomeiwen.com/subject/azdwlqtx.html