| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Firefox Cookies im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Ich habe vor längerer Zeit ein kleines Programm entwickelt, was sich unter Verwendung von Sitzungscookies auf einer bestimmten anmeldepflichtigen ...
![]() |
| | #1 (permalink) |
| Registriert seit: 18.09.07 ![]() Likes: 0 | Anzeige Ich habe vor längerer Zeit ein kleines Programm entwickelt, was sich unter Verwendung von Sitzungscookies auf einer bestimmten anmeldepflichtigen Seite automatisch einloggt und bestimmte Transaktionen durchführt. Nun sieht es so aus, dass durch die Session ID lediglich einer eingeloggt sein kann (d.h. ich werde aus der Seite herausgeworfen, wenn sich das Programm anmeldet). Ich wünsche mir nun ein Programm oder einfach einen Lösungsweg, wie ich die Session IDs für meinen Browser (Firefox) und den Bot austauschen kann, sodass beide gleichzeitig eingeloggt sein können. Manuell ist es mir zwar gelungen, die SID der Cookies des Bots in Firefox zu importieren und gleichzeitig online zu sein, doch ist das sehr langwierig (FF-Addon SQLite Manager öffnen -> Eintrag heraussuchen -> SID des Bots heraussuchen -> editieren). Die SID des Bots kann ich dann z.B. bei jedem Login auf einem Webspace hochladen (als Datei) und Firefox, oder irgendein externes Programm, sollte sich dann diese Datei herunterladen und importieren. Habt ihr Lösungsvorschläge dafür? Lg, acdc PS: Bot liegt auf einem externen Server Edit: Ich weiß, das ist ein ziemlich schwieriges Problem, doch ich hoffe, dass ich hier Hilfe bekomme |
| | |
| | #2 (permalink) |
| Registriert seit: 04.01.09 ![]() Likes: 0 | poste mal bitte den link zu der seite das man es mal testen kann |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 18.09.07 ![]() Likes: 0 | Also eigentlich ist das ja irrelevant. So ein Problem kann man bei jeder beliebigen Seite bemerken, sofern diese eine Cookie-gestützte Anmeldung besitzt. Auch hackerboard.de |
| | |
| | #4 (permalink) |
| Registriert seit: 04.01.09 ![]() Likes: 0 | also ich hab das problem hier nich auch wenn ich mitm anderen rechner on bin flieg ich mit dem hier nicht raus |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 18.09.07 ![]() Likes: 0 | hm, ja okay mein Fehler. Also gut ich gebe euch die URL |
| | |
| | #6 (permalink) |
| Also wie ich das verstehe ist dein einziges Problem, die SID vom Bot auf deinen Rechner zu bekommen und in Firefox zu implementieren. Das du rausgeschmißen wirst, liegt wahrscheinlich daran das deinem Account, bei einer einwahl, eine neue SID zugewiesen wird, und der Webserver, immer nur eine für einen Account zulässt. Du könntest denn Bot die SessionID als ne Textdatei auf dem jeweiligen Webspace hinterlegen,(muss dir wahrscheinlich nicht sagen das du dafür sorgen musst das kein anderer da ran kommt..^^). oder was auch möglich wär du schreibst dir nen Server für deinen Pc, sprich der bei dir aufm Computer Zuhause läuft und der sich die SID vom Bot schicken lässt. Ist eigtl relativ einfach, zur Sicherheit könntest du dann ne Art authentifizierung hinzufügen, und beispielweise nur Verbindungen vom Server deines Bots zulassen. (Kommt natürlich drauf an ob dein Bot nur auf nem normalen Webserver oder so läuft, und wenn ja was er da alles an Rechten hat), Wenn der Server die SID erhalten hat, öffnet er die .mozilla/.../cookie Datei, und fügt dort denn Cookie ein. Wie Firefox die cookie Datei parst kann ich dir leider nicht sagen, aber darüber findest du sicher was im Netz. Falls du C Socket-Programming , oder halt ne andere Sprache soweit beherrschst ist das sicher umsetzbar, ob sich das dann für dein Vorhaben lohnt ist die andere Sache. Oder du schreibst einen Client der sich die Datei vom Webserver/bot hollt, ist auch relativ einfach, weil der Name der Datei mit der SID sich ja nicht ändert und der Client ja nur nen einfachen HTTP GET machen muss. EDIT: Falls du nicht weist wie man automatisiert was von nem Webserver herunterlädt, mach zB Wireshark an dann Verbinde dich auf denn Webserver und lad die datei runter, dann suchst du bei Wireshark nach dem TCP/SYN zum Webserver und machst "follow in tcp-stream(oder so ähnlich)" und versuchst dann einfach genau das gleiche mit deinem Client. EDIT: Oder du implementierst dir was mit wget. | |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 18.09.07 ![]() Likes: 0 | Das sind schon gute Ansätze, aber ich weiß eben nicht, wie ich schnell (bestenfalls einfach) die Cookie Datenbank von Firefox parsen und editieren kann. Im Internet habe ich zu den neuen sqlite Datenbanken von Firefox 3.x nichts gefunden Edit: mein bot ist nur aus wget und sed aufggebaut |
| | |
| | #8 (permalink) |
| Registriert seit: 22.04.08 ![]() Likes: 15 | Und dein Bot ist illegal, da ich dieses Spiel auch spiele und die Regeln durchgelesen hab. |
| | |
| | #9 (permalink) |
| Hab jetzt mal zum Spass nen Client geschrieben der Die SID_datei runterlädt, und bei dir speichert. Musst die addresse und denn pfad in der shell angeben, oder du kompillst es mit gesetzten Makros. Code:
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <string.h>
#include <netinet/in.h>
#define SERVER_OF_BOT "not set"
#define PATH_TO_SIDFILE "not set"
int recvstring(int sockfd, char *buffer, int size){
int recvd = 1, max;
max = size;
while(recvd != 0 && max > 0){
if((recvd = recv(sockfd, buffer, 1024, 0))==-1)
return -1;
max -= recvd;
}
return size-max;
}
int sendstring(int sockfd, char *msg){
int send_n_bytes = strlen(msg), sent;
while(send_n_bytes != 0){
if((sent = send(sockfd, msg, strlen(msg), 0))==-1)
return -1;
send_n_bytes -= sent;
}
return strlen(msg);
}
void usage(char *name){
printf("usage:%s <HOST> <PATH>\n", name);
exit(0);
}
void err_quit(char *err){
printf("ERROR: %s\n", err);
exit(0);
}
int main(int argc, char **argv){
int sockfd, status;
struct addrinfo hints, *res;
char *server, recvbuffer[40000], *path;
short flag = 0;
char query[128];
FILE *fp;
if(argc != 3)
flag++;
bzero(&hints, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
err_quit("in socket()\n");
if(!strcmp(SERVER_OF_BOT, "not set")){
server = argv[1];
}else
server = SERVER_OF_BOT;
if((status = getaddrinfo(server, "80", &hints, &res)) != 0){
printf("%s\n", gai_strerror(status));
exit(0);
}
if((status = connect(sockfd, res->ai_addr, res->ai_addrlen)) == -1)
err_quit("while connecting");
if(!strcmp(PATH_TO_SIDFILE, "not set")){
if(flag)
usage(argv[0]);
path = argv[2];
}else
path = PATH_TO_SIDFILE;
strcat(query, "GET /");
strcat(query, path);
strcat(query, " HTTP/1.0\n");
strcat(query, "Host: ");
strcat(query, server);
strcat(query, "\r\n\r\n");
if((sendstring(sockfd, query)) == -1)
err_quit("sendstring");
if((status = recvstring(sockfd, recvbuffer, sizeof(recvbuffer)))==-1)
err_quit("recvstring");
printf("recved %d bytes\n", status);
fp = fopen("SID_FILE", "w+");
fwrite(recvbuffer, status, 1, fp);
fclose(fp);
close(sockfd);
return 0;
} Glaub nicht das es dir viel bringen wird aber da kann man leichter denn Parser drauf aufbauen. | |
| | |
| | #10 (permalink) | |
| Themenstarter Registriert seit: 18.09.07 ![]() Likes: 0 | Zitat:
@prEs: Vielen Dank fuer deine Muehe. Ich werds mir mal anschauen ![]() Jetzt habe ich nurnoch das Problem mit dem Parsen der Cookiedatei.. | |
| | |
| | #11 (permalink) |
| Hmm also hab mir jetzt über SQLite3 mal diese Datenbank (.mozilla/firefox/*/cookie.sqlite angschaut. Man braucht nicht nur die SID sondern auch die noch ein paar andere Werte, was aber relativ einfach ist, weils nur Namen und Verfallsdatum etc sind. Gibt den entsprechenden Header . sqlite3.h , dannach muss man wenn ich mich nicht irre eigtl nur paar INSERTS in denn table cookies machen. Vielleicht versuch ich morgen mal das in C umzusetzen. | |
| | |
| | #12 (permalink) |
| Themenstarter Registriert seit: 18.09.07 ![]() Likes: 0 | Das wäre großartig, wenn du die Zeit dazu hast. Ich glaube meine C++ Kenntnisse reichen da im Moment noch nicht dafür aus |
| | |
| | #13 (permalink) | ||
| Registriert seit: 15.01.08 ![]() Likes: 0 | Zitat:
Zitat:
du forderst hilfe an die die funktionalität des bots verbessert/die benutzung des bots einfacher macht. das is illegal falsches board | ||
| | |
| | #14 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Zitat:
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #15 (permalink) |
| Registriert seit: 22.10.05 ![]() Likes: 3 | Um mal eins klarzustellen: einen Bot für "die Stämme" oder irgendein anderes Spiel zu progammieren ist nicht illegal. Illegal bedeutet "gegen das Gesetz" und das wäre ja noch schöner, wenn einfach irgendwelche Webseiten durch ihre AGB die Gesetzgebung beeinflussen könnten. Schlimmstenfalls wird dein Account gesperrt, das wars aber auch schon. Edit: Verdammt, da war der CDW schneller ![]() Edit2: Mal ontopic, könntest du nicht eine Art Proxy in den Bot einbauen? Also so, dass der Bot quasi ständig verbunden ist, und immer wenn du spielen willst, verbindest du dich nicht mit die-staemme.de oder sonstwas, sondern mit dem Proxy, der dann eine Befehle an die-staemme.de weiterleitet. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Wo speichert der Firefox 1.5 Cookies | Xalon | Die Problemzone | 6 | 15.01.06 15:55 |
| Mozilla Firefox + Cookies | Lord_Nykon | Internet Allgemein | 2 | 08.07.04 23:11 |
| PHP und Cookies | niedriger noob | (Web-) Design und webbasierte Sprachen | 4 | 24.08.02 14:05 |