| med1kal | 25 Ağustos 2009 19:05 | Socker! Socker! 1.0
Kullanım: /socker
Nedir bu socker?
Socker, FTP, HTTP gibi protokoller üzerinde yapılan analizlerle edinilen veriyi test etmenin kolay yollarından biri.
Şöyle ki, daha önce "protocol sniffing" metoduyla aldığım bilgileri sockete dönüştürüp, gelip giden bilgiyi incelemeye çalışırdım. Her seferinde yeni bir sockopen/sockread olayı yazmak gerekirdi. Bunu basitleştirmek için socker dediğim küçük bir kod yazdım. Bu kod, panoya(clipboard) kaydedilen protokol mesajlarını hedefe ileterek sonuçlarını gösteriyor. Üstelik hedefini de kendisi belirliyor. Çünkü panoya alınan verilerde "Host:" belirtecinde, hedef zaten mevcut oluyor. Ayrıca kod, gzip ile sıkıştırılmış içerikleri gözlemleye bilmemiz için Encoding belirtecini de esgeçiyor.
Unutmadan, panoya kaydedilen verilerin, aşağıdakine benzer şekillerde olması gerekiyor: Kod:
POST /ajax/reqs.php HTTP/1.1
Accept: */*
Accept-Language: tr-TR
Referer: http://www.facebook.com/home.php?#/reqs.php#friend
x-svn-rev: 175196
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322)
Host: www.facebook.com
Content-Length: 341
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: datr=1243252399-706ad3744faef2ea70ddad4c48ef0f536d647d403bd064b9c6502; s_vsn_facebookpoc_1=2673803476138; ABT=2dd086ca2a46e9e50fff44e0ec48cb811st0%3A1248249628%3AB; __utma=87286159.141936298.1246961479.1246961479.1246961479.1; __utmz=87286159.1246961479.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); login_x=a%3A2%3A%7Bs%3A5%3A%22email%22%3Bs%3A19%3A%22acelya345%40gmail.com%22%3Bs%3A19%3A%22remember_me_default%22%3Bb%3A0%3B%7D; test_cookie=1; login=+; lsd=141606237; s_cc=true; s_sq=%5B%5BB%5D%5D; locale=tr_TR; xs=6a8efed417c093cda2b9cace86b7b157; c_user=1828445692; cur_max_lag=2; h_user=f2fd17e98837; x-referer=http%3A%2F%2Fwww.facebook.com%2Freqs.php; presence=%7B%22v%22%3A2%2C%22time%22%3A1247834137%2C%22ch%22%3A%7B%22h%22%3A%22channel25%22%2C%22p%22%3A80%2C%22sub%22%3A%5B1%5D%2C%22p_1828445692%22%3A0%2C%22ri%22%3A0%7D%2C%22state%22%3A%7B%22p%22%3A0%2C%22w%22%3A1420%2C%22h%22%3A712%2C%22ut%22%3A1247834083484%2C%22pt%22
type=friend_connect&id=1204033085&action=accept¶ms[add_to_nf_saw]=true¶ms[add_to_nf]=false¶ms[lists]=&post_form_id=43157381083540433ecec727145268fd&fb_dtsg=BSVsYAC139G6_lDPm0Ky5_NDwhc&post_form_id_source=AsyncRequest&__a=1&nctr[id]=9d4cac55ca6fb4a435b484a1328a2e6d&nctr[nid]=d415246fb1b155f9d0ce0cff2d3f2a14&nctr[ct]=1247834312234
Kodumuz: Kod:
alias socker {
var %i = 1
while (%i <= $cb(0)) {
echo -a - $cb(%i)
if ($regex($gettok($cb(%i),1,32),Host:)) {
if ($sock(%s.name).name) sockclose %s.name
%s.name = $gettok($cb(%i),2,32)
sockopen %s.name %s.name 80
}
inc %i
}
}
on *:sockopen:$(%s.name):{
var %i = 1, %x = 0
while (%i <= $cb(0)) {
if (!$cb(%i)) sockwrite -n $sockname $crlf
if ($gettok($cb(%i),1,32) != Accept-Encoding:) { sockwrite -n $sockname $cb(%i) }
inc %i
}
sockwrite -n $sockname $crlf
}
on *:sockread:$(%s.name):{
var %tmp
sockread %tmp
if (%tmp) echo - %tmp
} |