// I am a setuid binary in your $PATH extern crate rand; use rand::Rng; use std::io::{self, Read, Write}; use std::fs::File; use std::str; fn main() { let n: u64 = rand::thread_rng().next_u64(); println!("Could you please type this number back to me?"); println!("{}", n); let mut s = String::new(); io::stdin().read_line(&mut s).unwrap(); if s.trim().parse() != Ok(n) { println!("I guess not :("); return; } let mut f = match File::open("flag.txt") { Ok(f) => f, Err(_) => { println!("Cannot open file"); return; } }; let mut s = Vec::new(); f.read_to_end(&mut s).unwrap(); let mut stderr = io::stderr(); stderr.write(&s).unwrap(); stderr.flush().unwrap(); }