HEADER INYECTOR
require 'socket'
host=ARGV[0]
puts "*Inyector en Headers*[v0.0]\n"
puts "Path para la request:"
path=gets.chomp
puts "Inyeccion en Referent:"
ref=gets.chomp
puts "Inyeccion en User-Agent (Navegador):"
usag=gets.chomp
puts "Inyeccion en la cookie:"
cook=gets.chomp
CRLF = "\r\n"
req = "GET #{path} HTTP/1.1#{CRLF}Host: #{host}#{CRLF}Referer: #{ref}#{CLRF}User-Agent: #{usag}#{CLRF}Cookie: #{cook}#{CLRF*2}"
sock=TCPSocket.new(host, 80)
sock.print req
sock.close()
Muy simple inyector en los headers http, sin interfaz gr?fica, pero perfectamente funcional, ?til para defacing, y wargames.
salu2!
HTTP method sender Console Mode
require 'socket'
host = ARGV[0]
met = ARGV[1]
if !host
puts " USO: HTTP2.rb <host> <m?todo>"
puts " EJEMPLO: HTTP2.rb www.google.com OPTIONS"
else
begin
sock = TCPSocket.new( host , 80 )
rescue Errno::ECONNREFUSED
end
if !sock
puts " No se pudo conectar"
else
puts " Socket conectado !"
end
sock.print met, " / HTTP/1.1\nHost:" , host, "\n\n"
while (res = sock.recv(100))
print res
end
sock.close
end
HTTP method sender, Modo Gr?fico
require 'net/http'
require 'tk'
root = TkRoot.new() {title "HTTP Tool By pRotos"}
TkLabel.new(root) {
text "Host:"
pack("side"=>"top")
}
host = TkVariable.new()
path = TkVariable.new()
met = TkVariable.new()
TkEntry.new(root) {
textvariable(host)
pack("side"=>"top")
}
TkLabel.new(root) {
text "Directorio:"
pack("side"=>"top")
}
TkEntry.new(root) {
textvariable(path)
pack("side"=>"top")
}
TkLabel.new(root) {
text "Metodo HTTP:"
pack("side"=>"top")
}
TkEntry.new(root) {
textvariable(met)
pack("side"=>"top")
}
lbl = TkText.new(root) { width 100; height 50 }.pack("side"=>"bottom")
TkButton.new(root) {
text "Ok!"
command proc {
Net::HTTP.start(host.value) {|http|
resp = http.send_request( met.value, path.value)
lbl.insert('end', resp.body )
lbl.insert('end', "\n\n\n\n")
}
}
pack("side"=>"top")
}
TkLabel.new(root) {
text "Pantalla HTTP"
pack ("side"=>"bottom")
}
TkButton.new(root) {
text " Clear "
command proc { lbl.clear }
pack("side"=>"bottom")
}
Tk.mainloop()
Simple HTTP Fingerprinting (v0.1)
(digo version v0.1, porque tenia una version bastante mejorada, pero no la encuentro :S)
require 'socket'
require 'tk'
root = TkRoot.new() {title " HTTP Fingerprinting"}
host = TkVariable.new()
met = TkVariable.new()
TkLabel.new(root) {
text "Host: "
pack()
}
TkEntry.new(root) {
textvariable(host)
pack()
}
lbl = TkText.new(root) { width 50; height 25 }.pack("side"=>"bottom")
TkButton.new(root) {
text "Ok!"
command proc {
sock = TCPSocket.new(host.value, 80)
sock.print "GET / HTTP/1.1 \n"
sock.print "Host: ", host.value, "\n\n"
res=sock.recv(400)
lbl.insert('end', res)
lbl.insert('end', "\n\n\n\n\n\n\n\n")
sack = TCPSocket.new(host.value, 80)
sack.print "OPTIONS / HTTP/1.1 \n"
sack.print "Host: ", host.value, "\n\n"
ras=sack.recv(400)
lbl.insert('end', ras)
sick = TCPSocket.new(host.value, 80)
sick.print "HEAD / HTTP/1.1 \n"
sick.print "Host: ", host.value, "\n\n"
ris = sick.recv(400)
sock.close
sack.close
sick.close
}
pack("side"=>"top")
}
TkButton.new(root) {
text " Clear "
command proc { lbl.clear }
pack("side"=>"bottom")
}
Tk.mainloop()