zoukankan      html  css  js  c++  java
  • pwnable.kr-input-witeup

    查看代码,有5个stage,一一解决掉就能愉快看到flag了。

    第一个stage:

    解决方案:

    第二个stage:

    解决方案:

    使用了os.pipe()函数功能,os.pipe()用于创建一个管道,返回一对文件描述符(r,w)分别为读和写。

    第三个stage:

    解决方案:

    第四个stage:

    解决方案:

    第五个stage:

    解决方案:

    解决方案全代码:

    #!/usr/bin/python
    import subprocess
    import os
    import socket
    
    str1=['a']*100
    str1[0]='./input'
    str1[ord('A')]=""
    str1[ord('B')]="x20x0ax0d"
    str1[ord('C')]="65530"
    
    stdinr,stdinw=os.pipe()
    os.write(stdinw,"x00x0ax00xff")
    stderrr,stderrw=os.pipe()
    os.write(stderrw,"x00x0ax02xff")
    
    os.environ["xdexadxbexef"]="xcaxfexbaxbe"
    
    with open('./x0a','wb') as fd:
    	fd.write("x00x00x00x00")
    
    subprocess.Popen(str1,stdin=stdinr,stderr=stderrr,env=os.environ)
    
    obj=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    obj.connect(('127.0.0.1',65530))
    obj.send("xdexadxbexef")
    obj.close()

     这并没有结束,登上远程主机发现没有用,查看目录权限,

     

    tmp目录可写,就进去通过ln -s建立flag和input的软连接,并创建python脚本愉快地执行,完成。

  • 相关阅读:
    cmder 基本配置和使用
    apache开启.htaccess及.htaccess的使用方法
    PHP 伪静态规则写法RewriteRule-htaccess详细语法使用
    Oracle创建分区表
    Oracle基础知识
    SQLPLUS
    linux上使用docker安装oracle
    使用IDEA创建可执行jar
    Hyper-V-问题整理
    spring的容器管理
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10747695.html
Copyright © 2011-2022 走看看