04 Mart 2010 Perşembe

C# Reverse IP (Server Site Lister)

C#da girilen sitenin bulunduğu serverdaki diğer siteleri görüntülemek için neler yapılabilir onu anlatacağım.Her zaman oldugu gibi gavurların scriptlerini sömürücez :).

Öncelikle aşağıdaki namespaceleri ekleyelim..

using System.Text.RegularExpressions;
using System.Collections;
using System.Net;
using System.IO;

ve post göndermek için gereken fonksiyonumuzu yazalım..

public string postGonder(string url, string data)
{
string vystup = null;
try
{
byte[] buffer = Encoding.ASCII.GetBytes(data);
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;
Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Console.WriteLine(WebResp.StatusCode);
Console.WriteLine(WebResp.Server);
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
vystup = _Answer.ReadToEnd();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return vystup.Trim() + "\n";
}

forma 1 textbox 1 button ve 1 adet listbox ekleyin buttonun click olayına aşağıdakileri yazacağız..

ArrayList reverseArr = new ArrayList();
string src = postGonder("http://www.guerrilladns.com/index.php", "domain=" + textBox1.Text);
Regex rgx = new Regex("rel=\"nofollow\" >(?<site>(.*?))</a>");
Match metch; string site;
for (metch = rgx.Match(src); metch.Success; metch = metch.NextMatch())
{
site = metch.Groups["site"].ToString();
site = site.Replace("www.", "");
if (!reverseArr.Contains(site)){listBox1.Items.Add(site);}}

ben reverseArr adlı arrayi aynı siteler sürekli eklenmesin diye yaptım siz yapacağınız işe göre değiştirebilirsiniz ayrıca thread ile çalıştırırsanız post gönderdiğiniz için program kitlenmez :)

0 yorum:

Yorum Gönder