OldSchoolHack

Register / Login English

über WSA bei einer Seite anmelden

icon Thread: über WSA bei einer Seite anmelden

Join Date: Jan 2010

Posts: 1

guten tag.
Ich versuche gerade einen Bot für Castlefight zu programmieren, der sich über WSA einloggt.
Leider komme ich immer auf die Seite, die angezeigt wird, wenn man das Passwort falsch eingegeben hat...
Hier mein Code:
Spoiler

TEXT Code:
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <winsock2.h>
  5. #include <string>
  6. #include <fstream>
  7.  
  8. using namespace std;
  9.  
  10. int WSAStart()
  11. {
  12. WSADATA wsa;
  13. return WSAStartup(MAKEWORD(2,0), &wsa);
  14. }
  15.  
  16. string StringBetween(const string& input, const string& left, const string& right)
  17. {
  18. size_t posLeft, posRight;
  19.  
  20. posLeft = input.find(left);
  21. posRight = input.find(right);
  22.  
  23. if (posLeft == string::npos || posRight == string::npos)
  24. {
  25. return ""; // Nicht gefunden
  26. }
  27.  
  28. posLeft += left.length();
  29. posRight += right.length();
  30. string ergebnis1 = input.substr(posLeft, input.length() - right.length() - left.length());
  31. int formel = (input.find(right) - posLeft);
  32. string ergebnis2 = ergebnis1.substr(0, formel);
  33. return ergebnis2;
  34. }
  35.  
  36. void gebaus(char array[])
  37. {
  38. for (int i=0;array[i]!=0;i++)
  39. {
  40. cout << array[i];
  41. }
  42. cout << endl;
  43. }
  44.  
  45. string WSAgetDataGet(string ip, string host, string seite = "", string cookie_str = "")
  46. {
  47. string data = "";
  48. if (cookie_str!="")
  49. {
  50. data = "GET /" + seite + " HTTP/1.0\
  51. "
  52. "Host: " + host + "\
  53. "
  54. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\
  55. "
  56. "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\
  57. "
  58. "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\
  59. "
  60. "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\
  61. "
  62. "Keep-Alive: 300\
  63. "
  64. "Connection: keep-alive\
  65. " + cookie_str +"\
  66. \
  67. ";
  68. }
  69. else
  70. {
  71. data = "GET /" + seite + " HTTP/1.0\
  72. "
  73. "Host: " + host + "\
  74. "
  75. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\
  76. "
  77. "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\
  78. "
  79. "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\
  80. "
  81. "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\
  82. "
  83. "Keep-Alive: 300\
  84. "
  85. "Connection: keep-alive\
  86. \
  87. ";
  88. }
  89.  
  90. return data;
  91. }
  92.  
  93. string itostring(int a)
  94. {
  95. char length[10];
  96. itoa(a, length, 10);
  97. string help;
  98. help.assign(length);
  99. return help;
  100. }
  101.  
  102. string WSAgetDataPost(string ip, string host, string post, string seite = "", string cookie_str = "")
  103. {
  104. string data = "";
  105. //=======================>länge des Stringes ermitteln
  106. string help = itostring(post.length());
  107. //========================>länge des Stringes ermitteln ENDE
  108. if (cookie_str!="")
  109. {
  110. data = "POST /" + seite + " HTTP/1.0\
  111. "
  112. "Host: " + host + "\
  113. "
  114. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\
  115. "
  116. "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\
  117. "
  118. "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\
  119. "
  120. "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\
  121. "
  122. "Keep-Alive: 300\
  123. "
  124. "Connection: keep-alive\
  125. " + cookie_str + "\
  126. "
  127. "Content-Length: "+help+"\
  128. \
  129. " + post;
  130. }
  131. else
  132. {
  133. data = "POST /" + seite + " HTTP/1.0\
  134. "
  135. "Host: " + host + "\
  136. "
  137. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\
  138. "
  139. "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\
  140. "
  141. "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\
  142. "
  143. "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\
  144. "
  145. "Keep-Alive: 300\
  146. "
  147. "Connection: keep-alive\
  148. "
  149. "Content-Length: "+help+"\
  150. \
  151. " + post;
  152. }
  153.  
  154. return data;
  155. }
  156.  
  157. string WSARequest(string ip, string host, string seite = "", string post = "", string cookie_str = "")
  158. {
  159. SOCKET sock;
  160. if (WSAStart()!=0)
  161. {
  162. cout << "WSA konnte nicht gestartet werden!" << endl;
  163. system("pause");
  164. return "-1";
  165. }
  166. sock = socket(AF_INET, SOCK_STREAM, 0);
  167. if (sock==INVALID_SOCKET)
  168. {
  169. cout << "Socket konnte nicht erstellt werden!" << endl;
  170. system("pause");
  171. return "-1";
  172. }
  173. //================>Ip Adresse konvertieren
  174. char inet_address[30];
  175. strcpy(inet_address, ip.c_str());
  176. //==================>Ip Adresse konvertieren ENDE
  177. sockaddr_in addr;
  178. addr.sin_family = AF_INET;
  179. addr.sin_port = htons(80);
  180. addr.sin_addr.s_addr = inet_addr(inet_address);
  181. long rc = connect(sock, (SOCKADDR*)&addr, sizeof(sockaddr));
  182. if (rc==SOCKET_ERROR)
  183. {
  184. cout << "SOCKET_ERROR: Error beim Verbinden mit " << ip << endl;
  185. system("pause");
  186. return "-1";
  187. }
  188. else
  189. {
  190. cout << "Verbindung wurde erfolgreich hergestellt!" << endl;
  191. }
  192. //=======================================================================>
  193. //=================>Verbunden mit Server<================================>
  194. //=======================================================================>
  195. string data;
  196. if (post=="") //wenn kein Post benutzt werden soll
  197. {
  198. data = WSAgetDataGet(ip, host, seite, cookie_str);
  199. }
  200. else
  201. {
  202. data = WSAgetDataPost(ip, host, post, seite, cookie_str);
  203. }
  204. //===>Senden anfang
  205. char buffer[data.length()+1];
  206. strcpy(buffer, data.c_str());
  207. cout << data << endl;
  208. rc = send(sock, buffer, sizeof(buffer), 0);
  209. if (rc==SOCKET_ERROR)
  210. {
  211. cout << "Daten konnten nicht versendet werden!" << endl;
  212. system("pause");
  213. return "-1";
  214. }
  215. //=============>SENDEN ENDE
  216. //=======>EMPFANGEN ANFANG
  217. string source = "";
  218. strcpy(buffer, "");
  219. for(;;)
  220. {
  221. rc = recv(sock, buffer, sizeof(buffer), 0);
  222. if(rc == -1)
  223. {
  224. cout << "Fehler: " << WSAGetLastError() << '\n';
  225. break;
  226. }
  227.  
  228. if(rc == 0)
  229. {
  230. break;
  231. }
  232. source.append(buffer, rc);
  233. }
  234. return source;
  235.  
  236. }
  237.  
  238.  
  239. int main(int argc, char *argv[])
  240. {
  241. system("pause");
  242. string source = WSARequest("195.244.251.165", "www.castlefight.de");
  243. string ssid = StringBetween(source, "Set-Cookie: ssid=", "; path");
  244. string cookie_str = "Cookie: ssid=" + ssid + "; __utma=165185581.1485780560.1262776768.1262776768.1262779583.2; __utmc=165185581; __utmz=165185581.1262776768.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=165185581.1.10.1262779583";
  245. cout << cookie_str << endl;
  246. source = WSARequest("195.244.251.165", "s3.castlefight.de", "login.php", "sid=" + ssid + "&server=s3.castlefight.de&username=testman123&password=test123&passwordlayer=Passwort&send=Einloggen", cookie_str);
  247. //=====>in datei schreiben
  248. fstream f;
  249. f.open("hello.html");
  250. f << source << endl;
  251. f.close();
  252. system("PAUSE");
  253. return EXIT_SUCCESS;
  254. }
  255.  
mfg
           @night@

__________________

"Glaube keinem Lebewesen, was ständig grinst."