美文网首页
[Toddler's Bottle]-input

[Toddler's Bottle]-input

作者: 2mpossible | 来源:发表于2018-12-03 11:00 被阅读0次
    • 需要对linux操作有一定的认识,前面的绕过ida或者看源码都能推出来,最后由于我们在input2目录下没有写文件的权限,而tmp目录下只有写权限而没有读权限,所以我们在tmp目录下新建一个input2目录来存放我们的脚本,并用软连接命令来在当前目录创建一个flag副本才能读取到flag
    ln -s /home/input2/flag flag
    

    exp:

    #coding: utf-8
    
    import subprocess
    import os
    import socket
    import time
    
    payload = []
    payload.append('/home/input2/input')
    
    for i in range(64):
        payload.append('a')
    
    payload.append('')
    payload.append(' \n\r')
    payload.append('4567')
    
    for i in range(32):
        payload.append('a')
    
    
    stdinr, stdinw = os.pipe()
    stderrr, stderrw = os.pipe()
    
    os.write(stdinw,'\x00\x0a\x00\xff')
    os.write(stderrw,'\x00\x0a\x02\xff')
    environ = {'\xde\xad\xbe\xef' : '\xca\xfe\xba\xbe' }
    
    f = open('\n','wb')
    f.write('\x00'*4)
    f.close()
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    
    
    print subprocess.Popen(payload,stdin = stdinr , stderr = stderrr , env = environ)
    
    time.sleep(2)
    s.connect(('127.0.0.1',4567))
    
    s.send('\xde\xad\xbe\xef')
    

    参考文章:

    相关文章

      网友评论

          本文标题:[Toddler's Bottle]-input

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