• 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脚本愉快地执行,完成。

  • 相关阅读:
    2.22
    LG P7077 函数调用
    2020/10/30 模拟赛 序列
    2020/10/27 模拟赛 数列
    2020/10/23 模拟赛 chip
    2020/10/23 模拟赛 escape
    2020/10/23 模拟赛 center
    LOJ#6581. 「ICPC World Finals 2019」断头路探测者
    LG P1587 [NOI2016]循环之美
    LG P4156 [WC2016]论战捆竹竿
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10747695.html
Copyright © 2020-2023  润新知