pwnable.kr-input-witeup
阿新 • • 發佈:2019-04-22
stage 一個 目錄權限 roc obj port ln -s pen png
查看代碼,有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‘)]="\x20\x0a\x0d" str1[ord(‘C‘)]="65530" stdinr,stdinw=os.pipe() os.write(stdinw,"\x00\x0a\x00\xff") stderrr,stderrw=os.pipe() os.write(stderrw,"\x00\x0a\x02\xff") os.environ["\xde\xad\xbe\xef"]="\xca\xfe\xba\xbe" with open(‘./\x0a‘,‘wb‘) as fd: fd.write("\x00\x00\x00\x00") 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("\xde\xad\xbe\xef") obj.close()
這並沒有結束,登上遠程主機發現沒有用,查看目錄權限,
tmp目錄可寫,就進去通過ln -s建立flag和input的軟連接,並創建python腳本愉快地執行,完成。
pwnable.kr-input-witeup