403Webshell
Server IP : 81.2.241.106  /  Your IP : 216.73.216.165
Web Server : Apache/2.4.67 (Debian)
System : Linux tranq-f.bakta.org 5.10.0-45-amd64 #1 SMP Debian 5.10.259-1 (2026-07-02) x86_64
User : lisky ( 1002)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/src/openssh-chroot/5.5p1/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/src/openssh-chroot/5.5p1/diff_orig-chroot.patch
--- sftp-server.c	2010-01-13 12:44:06.000000000 +0100
+++ sftp-server-5.5-patched.c	2011-04-20 14:47:49.487461573 +0200
@@ -51,6 +51,8 @@
 #include "sftp.h"
 #include "sftp-common.h"
 
+#define CHROOT
+
 /* helper */
 #define get_int64()			buffer_get_int64(&iqueue);
 #define get_int()			buffer_get_int(&iqueue);
@@ -1369,6 +1371,35 @@
 	exit(1);
 }
 
+#ifdef CHROOT
+void
+chroot_init(void)
+{
+       char *user_dir, *new_root;
+
+       user_dir = getenv("HOME");
+       if (!user_dir)
+               fatal("HOME isn't in environment");
+
+       new_root = user_dir + 1;
+
+       while ((new_root = strchr(new_root, '.')) != NULL) {
+               new_root--;
+               if (strncmp(new_root, "/./", 3) == 0) {
+                       *new_root = '\0';
+                       new_root += 2;
+
+                       if (chroot(user_dir) != 0)
+                               fatal("Couldn't chroot to user directory %s: %s", user_dir, strerror(errno));
+
+                       setenv("HOME", new_root, 1);
+                       break;
+               }
+               new_root += 2;
+       }
+}
+#endif /* CHROOT */
+
 int
 sftp_server_main(int argc, char **argv, struct passwd *user_pw)
 {
@@ -1442,6 +1473,13 @@
 	logit("session opened for local user %s from [%s]",
 	    pw->pw_name, client_addr);
 
+#ifdef CHROOT
+	chroot_init();
+#endif
+	// Drop privileges - required as we are setuid root prog
+	if (setuid(getuid()) != 0)
+		fatal("Couldn't drop privileges: %s", strerror(errno));
+		
 	in = STDIN_FILENO;
 	out = STDOUT_FILENO;
 

Youez - 2016 - github.com/yon3zu
LinuXploit