首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GIT-SHELL 沙盒绕过(CVE-2017-8386)

所以,基于ssh协议git clone等操作,本质上就是通过ssh协议连接上git服务器,并将指定目录拉取下来过程。...如果系统是没有git-shell-commands目录,那么git-shell默认只允许执行如下三个命令: git-receive-pack git-upload-pack <argument...所以,利用这个特性,我们就可以绕过git-shell沙盒读取任意文件执行任意命令了! 我们可以先试试,在Linux下直接执行git-receive-pack --help,再输入!...一些限制 我前文说了,一般配置git用户,不让ssh拥有shell,有两种方法:一是创建用户时候设置其shell为/usr/bin/git-shell,二是在authorized_keys中覆盖command...id还是在git-shell下执行,git-shell中没有id命令,所以依旧执行不成功。 但读取文件是一定可以,因为读取文件不是通过命令读取,所以不受git-shell沙盒影响。

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

nodejs写bash脚本终极方案!

◆ 前言 最近在学习bash脚本语法,但是如果对bash语法不是熟手的话,感觉非常容易出错,比如说:显示未定义变量shell中变量没有定义,仍然是可以使用,但是它结果可能不是你所预期。...exec:启动一个子进程来执行命令,与spawn不同是,它有一个回调函数能知道子进程情况 execFile:启动一子进程来执行可执行文件 fork:与spawn类似,不同点是它需要指定子进程需要需执行.../usr/bin/env zx await $`cat package.json | grep name` let branch = await $`git branch --show-current...将以下 shebang添加到 zx 脚本开头: #!/usr/bin/env zx 现在您将能够像这样运行脚本: chmod +x ./script.mjs ....由于此类全局变量在脚本中非常方便,因此 zx 提供了这些以在 .mjs 文件中使用(当使用 zx 可执行文件) require也是commonjs中导入模块方法, 在 ESM 模块中,没有定义 require

3.9K20

PHP运行模式

这种安装方式通常会把 PHP 可执行文件安装到 web 服务器 cgi-bin 目录。CERT 建议书 CA-96.11 建议不要把任何解释器放到 cgi-bin 目录。...问题: 1) 如果cgi程序放在/usr/local/httpd/cgi-bin/里无法执行,遇到403500错误的话 打开apache错误日志 有如下提示: Permission denied:...exec of 可以检查cgi程序属性,按Linux contexts文件 里定义,/usr/local/httpd/cgi-bin/里必须是httpd_sys_script_exec_t 属性...install 这样编译后,在PHPbin目录php-cgi就是fastcgi模式php解释器了 安装成功后,执行 php -v 输出 PHP 5.3.2 (cgi-fcgi)....注: 请仔细阅读以上范例,在运行代码没有开始和结束标记符!加上 -r 参数后,这些标记符是不需要,加上它们会导致语法错误。 3.通过标准输入(stdin)提供需要运行 PHP 代码。

1.8K30

如何在最小化安装CentOS 7.5上编译安装Git2.19

/scm/git/git-2.19.0.tar.gz 2、由于采用win10操作系统下载文件,需要上传到CentOS7上,操作方式我一般通过SecureCRT采用SSH2协议登录, 上传文件也通过SecureCRT...工具中SFTP协议,具体方法如图: 注意:上传文件会在登录用户home目录下,可以通过lpwd查看本地目录,pwd查看远端目录 3、对文件解压:tar xzvf git-2.19.0.tar.gz...4、进入解压后git目录后,安装方式参考:https://github.com/git/git/blob/master/INSTALL目录INSTALL,这里采用建议步骤: # make configure...:1:0: cache.h:20:18: 致命错误:zlib.h:没有那个文件目录 #include ^ 编译中断。...10、再一次执行make all doc,仍出现错误: /bin/sh:行1: xmlto: 未找到命令 make[1]: *** [git-init-db.1] 错误 127 make[1]: 离开目录

49700

我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

Local(本地协议) 基于本地文件系统共享(NFS)文件系统进行访问, 优点 : 简单,直接使用了现有的文件权限和网络访问权限,小团队小项目建立一个这样版本管理系统是非常轻松一件事。...如果仅是指定路径,Git 会尝试使用硬链接(hard link)直接复制所需要文件。如果指定 file://,Git 会触发平时用于网路传输资料进程,传输过来是打包好文件,更节约硬盘空间。...: command not found 原因是 ssh 协议下只能访问/usr/bin目录,解决办法如下: ln -s /usr/local/git/bin/git-upload-pack /usr.../bin/git-upload-pack ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pac\k HTTP协议 Git...这里选是sqllite 注:mysql 索引长度问题没有安装成功,需要用mysql5.7 以上版本 gogs 基础配置 邮件配置说明: 邮件配置是用于注册邮件确认,和找回密码时候验证邮件发送。

97010

nodejs 写 bash 脚本终极方案!

前言 最近在学习bash脚本语法,但是如果对bash语法不是熟手的话,感觉非常容易出错,比如说:显示未定义变量shell中变量没有定义,仍然是可以使用,但是它结果可能不是你所预期。...exec:启动一个子进程来执行命令,与spawn不同是,它有一个回调函数能知道子进程情况 execFile:启动一子进程来执行可执行文件 fork:与spawn类似,不同点是它需要指定子进程需要需执行.../usr/bin/env zx await $`cat package.json | grep name` let branch = await $`git branch --show-current...将以下 shebang添加到 zx 脚本开头: #!/usr/bin/env zx 现在您将能够像这样运行脚本: chmod +x ./script.mjs ....由于此类全局变量在脚本中非常方便,因此 zx 提供了这些以在 .mjs 文件中使用(当使用 zx 可执行文件) require也是commonjs中导入模块方法, 在 ESM 模块中,没有定义 require

2.5K20

UNIX高级环境编程 第三次实验 实现带参数简单Shell

fork()函数返回值为-1表示出错。 如果子进程只是运行与父进程完全一样程序,那用处是很有限。要让子进程运行不同于父进程程序,就必须调用execve函数,它是 所有其他exec函数基础。...execve(“/usr/bin/gcc”, argv, environ); // 出错,因为目录/usr/下没有ls程序。...一般命令都可以由fork+execvp执行,由fork创建一个子进程,调用一种exec函数,该进程执行程序完全替换为新程序 而新程序则从其main函数开始执行; 但要注意exec并不创建新进程,所以前后进程...execvp error打印错误语句,waitpid等 待特定fork后子进程号结束,若出错则同样做出错打印信息处理 2.6 cd命令 对于一个自制shell如果没有cd命令就不算一个合格shell,...因为cd是shell内部命令,如果用execve系统调用,fork出子进程改变是子 进程目录,父进程目录仍然没有发生改变。

90320

Nodejs进阶:如何玩转子进程(child_process)

.exec()、.execFile()、.fork()底层都是通过.spawn()实现。 .exec()、execFile()额外提供了回调,当子进程停止时候执行。...如果运行没有出错,那么error为null。如果运行出错,那么,error.code就是退出代码(exist code),error.signal会被设置成终止进程信号。...备注:execFile()内部最终还是通过spawn()实现, 如果没有设置 {shell: '/bin/bash'},那么 spawm() 内部对命令解析会有所不同,execFile('ls -al...参数说明:(重复参数说明就不在这里列举) execPath: 用来创建子进程可执行文件,默认是/usr/local/bin/node。...(很有用,比如 可以通过 /bin/sh -c xxx 来实现 .exec() 这样效果) 例子1:基础例子 var spawn = require('child_process').spawn; var

3.2K50

Phabricator安装和配置过程记录

---- 配置SSH Git托管 准备工作 将当前SSH服务转移到2222端口,将来运行Git SSH服务使用22端口。这是多次配置后,觉得后续比较方便做法。...为phd,修改/etc/sudoers,加入: git ALL=(phd) SETENV: NOPASSWD: /usr/bin/git-upload-pack, /usr/bin/git-receive-pack...= "$VCSUSER" ]; then exit 1 fi exec "$ROOT/bin/ssh-auth" $@ ---- 创建git ssh配置文件 phabricator也提供了模版文件...可能出现错误没有将客户端public key上传到phabricator,或者不匹配 各种服务器端配置问题,包括用户权限问题 针对服务器端配置问题,可这样启动git ssh服务,参照debug信息一般能找到问题...---- 增加邮件地址报错处理 在添加邮件地址出现了这样报错: Unhandled Exception ("AphrontQueryException") #1055: Expression

4.2K31

Nodejs进阶:如何玩转子进程(child_process)

.exec()、.execFile()、.fork()底层都是通过.spawn()实现。 .exec()、execFile()额外提供了回调,当子进程停止时候执行。...如果运行没有出错,那么error为null。如果运行出错,那么,error.code就是退出代码(exist code),error.signal会被设置成终止进程信号。...备注:execFile()内部最终还是通过spawn()实现, 如果没有设置 {shell: '/bin/bash'},那么 spawm() 内部对命令解析会有所不同,execFile('ls -al...参数说明:(重复参数说明就不在这里列举) execPath: 用来创建子进程可执行文件,默认是/usr/local/bin/node。...(很有用,比如 可以通过 /bin/sh -c xxx 来实现 .exec() 这样效果) 例子1:基础例子 var spawn = require('child_process').spawn; var

4K80

Linux:system 调用引发 getcwd 异常

就输出下面的错误了: image.png 虽然上面的错误不会影响程序运行,但是处女座没法忍,一定要干干净净,明明白白!...错误定位 凭借过硬英语水平,我们明白这个报错是因为访问不到父目录导致 getcwd 出错了。...在我们毫无头绪,可以去喝喝快乐肥宅水,说不定就能脉动回来。 因为我就是这样看到找到线索了:shell-init。...那现在其实一目了然了,system调用了 /bin/sh, 触发shell 初始化了, 在初始化变量时候调用了 get_working_directory,因为获取父目录失败了,所以输出了那段错误。...答案在上面的 system 源码已经给出 80% 了,他们区别就是: system = fork + execl + waitpid 而 execl 只是系统 exec 族函数其中一个,说到 exec

1.3K20

从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发

-ti nebula_dev bash # 下载 nebula-console 二进制文件,并赋予可执行权限,命名为 nebula-console 并安装到 /usr/bin/ 下 wget https...这个点表示当前目录)修改过文件为待 commit $ git add . # 然后我们可以看一下状态,这些修改文件状态已经不同了 $ git status # 最后,提交在本地仓库,并用 -m 参数指定单行...如果还没有自己分叉,可以直接在 https://github.com/vesoft-inc/nebula 上点击右上角 Fork,创建自己分叉仓库。...PR 作者在首次提交代码到项目,所需签署协议。...再编译代码,在本地运行一下这个失败用例: # 我们需要进入到我们编译容器内部 build 目录下 $ docker exec -ti nebula_dev bash $ cd build # 在

52820

Jenkins Jenkins结合GIT Maven持续集成环境配置

/configure --prefix=/usr/local/git # make && make install # cd /usr/local/git/bin/ # ls git...目录:Jenkin构建,会根据Git等源码库配置,把代码拷贝到该目录下,这里$DDT_SALE_BUILD_WS为变量,其值取自“全局属性”中对应“键”对应“值”,如下 显示名称:工作空间名称,...Branch Specifier (blank for 'any'):指定源码库中分支,具体配置参考官方说明 说明:不知道是否这样就可以了,还是说还需要进行其它配置(环境不是我搭,我操作就配置了这个就可以了...,通常为文件所在目录路径,个人理解,用于告诉Jenkins需要传输具体文件 Remote directory: 需要把文件传送到SSH远程服务器上目标目录。...这样,待jenkins构建完成,会在工程/target目录下生成对应jar包(例中,会在ddt-industry-ws/ddt-industry-client/target目录下生成industry-client

84220

把路由器改装成git服务器(OpenWRT环境GIT服务器搭建)

但如果没有打算开源,我今天的话题可能对你有用。 我就属于喜欢在家中干活那一类,以前常年开着一台电脑做下载,最近改了这个坏习惯。但是没有了长期开机设备,也就没有git server。...接着在OpenWRT命令使用opkg update命令,只要网络没有问题,可以完成源目录更新,当然在https那个源会报错,先不用管。.../usr路径下,我们还需要手工完成安装,才能够运行: ln -s /mnt/sda1/ipks/usr/bin/git /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-receive-pack.../usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-upload-archive /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-shell.../usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-upload-pack /usr/bin/ ln -s /mnt/sda1/ipks/usr/lib/git-core

6.3K20

10.6 Git 内部原理 - 传输协议

它们全部都在这个你刚下载文件里面,所以你不用继续向服务端请求更多下载了。 Git 会将开始时下载 HEAD 引用所指向 master 分支检出到工作目录。...智能协议是更常用传送数据方法,但它需要在服务端运行一个进程,而这也是 Git 智能之处——它可以读取本地数据,理解客户端有什么和需要什么,并为它生成合适文件。...SSH 举例来说,在项目中使用命令 git push origin master , origin 是由基于 SSH 协议 URL 所定义。...服务端在收到请求后相应地作出成功失败 HTTP 响应。 下载数据 当你在下载数据, fetch-pack 和 upload-pack 进程就起作用了。...这个请求响应包含了所需要文件,并指明成功失败。 协议总结 这一章节是传输协议一个概貌。

81010

Python守护进程daemon实现

1 守护进程 1.1 守护进程 守护进程是系统中生存期较长一种进程,常常在系统引导装入时启动,在系统关闭终止,没有控制终端,在后台运行。...至此,这个子进程作为新进程组组长,完全脱离了其他进程控制,并且没有控制终端。 4、将当前工作目录更改为根目录某一特定目录位置)。...8、用日志系统记录出错信息    因为守护进程没有控制终端,当进程出现错误时无法写入到标准输出上,可以通过调用syslog将出错信息写入到指定文件中。...os.setsid() '''防止在类似于临时挂载文件系统下运行,例如/mnt文件夹下,这样守护进程一旦运行,临时挂载文件系统就无法卸载了,这里我们推荐把当前工作目录切换到根目录下''' os.chdir.../usr/bin/env python #coding: utf-8 import sys, os '''将当前进程fork为一个守护进程 注意:如果你守护进程是由inetd启动,不要这样

7.3K30
领券