Skrypt do skryptów - wypełnianie i potwierdzenie

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
Witam!
Chciałbym się zapytać czy jest możliwość, by napisać skrypt, który miałby za zadanie:
  • załadować stronę www
  • Zaznaczyć na niej checkbox
  • Wypełnić pole tekstowe
  • Kliknąć w button (ew wywołać jego zdarzenie, w moim przypadku funkcję javascript:send(); )

Chodzi mi żeby całość była wykonana w języku webowym, i np wywoływana poprzez podanie do GET adresu strony, np
z poziomu przeglądarki internetowej.


Ogólnie chciałbym zapytać czy jest coś takiego możliwe i ewentualnie prosił bym o jakieś wskazówki, nakierowania.


z góry dziękuje!
Pozdrawiam!
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
załadować stronę www
Zaznaczyć na niej checkbox
Wypełnić pole tekstowe
Kliknąć w button
To można ładnie napisać w C++. Jeżeli chcesz żeby ten kod (w języku webowym) wykonywał się po stronie klienta to raczej nie jest to możliwe, przecież byłaby to zdalna kontrola. Musiałbyś zmodyfikować/napisać własną przeglądarkę która by reagowała na ten adres wykonując odpowiedni program robiący to na czym Ci zależy.
A jeżeli chcesz zrobić to u siebie na komputerze to możesz napisać/zbierać logi sniffera i reagować na podanie odpowiedniego adresu protokołem HTTP. Jeżeli masz zamiar zrobić ten drugi pomysł to napisz o tym wyraźnie, może coś pomogę :)
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
Tak właśnie myślałem :D Słyszałem o różnych możliwościach curla. także na językach webowych się jakoś w większym stopniu nie znam dlatego się pytam. w C++ to nie miałbym żadnego problemu, jednak nie chodzi tutaj tylko o mój komputer, a nie raz się słyszy o atakach typu: skrypt wykorzystywał to że użytkownik jest zalogowany, żeby coś tam coś tam, jak chodzby słynna akcja, która bez wiedzy użytkownika rozsyłała się po jego znajomych ;)
 
Ostatnia edycja:

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
nie raz się słyszy o atakach typu: skrypt wykorzystywał to że użytkownik jest zalogowany, żeby coś tam coś tam, jak chodzby słynna akcja, która bez wiedzy użytkownika rozsyłała się po jego znajomych
Chodzi tu o to, że na przykład do wysłania wiadomości potrzebne jest zalogowanie się, następnie przez błąd na stronie można wysłać wiadomość z konta użytkownika czy wykonać jakąś inną akcję, ten atak nazywa się CSRF:
Ofiarami CSRF stają się użytkownicy nieświadomie przesyłający do serwera żądania spreparowane przez osoby o wrogich zamiarach. Celem hakera jest wykorzystanie uprawnień ofiary do wykonania operacji w przeciwnym razie wymagających jej zgody.
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
No coś takiego ;) Dzięki za wskazówki. Właśnie chodzi mi o wykorzystanie faktu zalogowanego użytkownika, tylko czy to trzeba robić jakiś skrypt, czy faktycznie można liczyć tylko i wyłącznie na luki? jak wiadomo teraz większość stron to javascript itp więć wyslanie POST-em lub GET-em do formularza już nie wystarczy.
 

nowy_me

Użytkownik
Dołączył
Luty 7, 2007
Posty
451
może i strony "to javascript" ale przecież tak czy siak ostatecznie dane zostaną wysłane przez HTTP więc wysłanie POSTem i GETem dalej jest dobrą metodą
wykorzystanie faktu zalogowania jest dość proste, o ile strona nie broni się przed tym poprzez tokeny

Przykład GET:
załóżmy że:
-istnieje forum, na którym jesteś zwykłym użytkownikiem
-istnieje administrator forum
-aby usunąć jakiegoś użytkownika z forum trzeba przejść na stronę: /user_delete.php?id=2
oczywiście jak sam wejdziesz na tą stronę to zobaczysz komunikat "brak uprawnień", ale jeśli wszedł by na nią zalogowany administrator to usunął by użytkownika nr 2
teraz tylko musisz sprytnie przekonać administratora żeby odwiedził ten adres: np. skorzystać z tinyurl, lub wstawiś w podpisie forum obrazek


Przykład POST:
tu już sprawa się trochę komplikuje, bo musisz sprawić żeby ofiara(administrator) udał się na spreparowaną stronę, gdzie np. w ramce o rozmiarach 0x0 będzie ukryty formularz z odpowiednimi danymi, który wyśle się od razu po wczytaniu strony

Zastosowanie luk:
zasadniczo jak admin łyknie linka i nie ma zabezpieczeń typu token to sprawa jest załatwiona, ale jak nie klika w takie linki to trzeba szukać luki która np. pozwoli na osadzenie takiej ramki na oryginalniej stronie

tak jak napisano wyżej taki atak nazywa się CSRF, natomiast luka która pozwala na osadzanie własnego kodu to XSS,
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
hmm ciekawa teorie. Serwer posiadam więc problemów nie będzie, można ustawić przekierowanie na jakiś odpowienio napisany skrypt, który wywoła polecenie POST-em.

Zainteresowała mnie Twoja odpowiedź, tj:
może i strony "to javascript" ale przecież tak czy siak ostatecznie dane zostaną wysłane przez HTTP więc wysłanie POSTem i GETem dalej jest dobrą metodą
Czyli wnioskuję z Twojej wypowiedzi, że javascript także wysyła dane do formularza poprzez GET lub POST? tylko jak sprawdzić co trzeba wysłać, skoro wszystko wykonuje się poprzez funkcję javascript:send(); da się sprawdzić?
 

nowy_me

Użytkownik
Dołączył
Luty 7, 2007
Posty
451
oczywiście że da się sprawdzić :D
np. wtyczka do FF: LiveHTTPHeaders, przechwytuje wszystkie żądania wysyłane i odbierane przez przeglądarkę(bez znaczenia czy to jest żądanie "utworzone" przez formularz czy JS czy np. Flasha)
najpierw zobacz sobie np. jak wygląda wysłanie formularza z POSTem, a potem spróbuj zobaczyć subżądanie AJAXa

wiem też że Opera ma taki mechanizm wbudowany więc nie trzeba wtyczek
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
super, dziś na nudnych jak zawsze lekcjach przyjrzałem się dokładniej całej sprawie. Skoro jest odwołanie do funkcji to musi być gdzies jej kod, i znalazłem dołączone moduły w postaci *.js. Otwarłem i znalazłem wszystkie kody funkcji. Faktycznie wszystko i tak wysyłane jest do skryptu formularza - o czym nie wiedziałem. Posprawdzałem Wireshark co dokładnie. Opera także ma taki mechanizm, korzystam z niego często, ale jeżeli chodzi o przechwytywanie co wysyła przeglądarka to wole Wireshark, ponieważ jest bardziej szczegółowy ;)

No i wszystko ladnie tylko mam takie pytanie, w jaki sposób można w PHP wysłać polecenie POST ? np w tidhttp jest to idhttp1.post() a w PHP? czy można dodać do nagłóków dane poprzez Header(); ? ma to coś wspólnego? czy jest normalnie POST w php.


// Dziękuje wszystkim za bardzo przydatne i pomocne odpowiedzi!
 
Ostatnia edycja:

nowy_me

Użytkownik
Dołączył
Luty 7, 2007
Posty
451
co do pytania o POST i PHP:
1) CSRF: czyli zmuszasz przeglądarkę użytkownika do wysłania POST, tu właściwie błędem jest pisanie o PHP bo to się robi w HTMLu, a np. JS wysyła formularz automatycznie http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml
2) PHP działa jak przeglądarka: tu korzystasz z biblioteki cURL i PHP(ale też można użyć np. C lub C++) takie coś przydaje sie np. do Phishingu czy pisania botów

Tobie pewnie chodzi o opcje 1
 
Do góry Bottom