PHP代码学习

在php传参过程中,如果服务器运行的Linux环境,可以加入命令的执行,比如参数名是a,命令可以是:a=ls,通过用;,&&,|| 来分割,还可以同时执行多个命令。在Windows环境下dir等价于ls.

cat是读文件命令,如果被过滤可以用tac来读。
通配符:* 和?
如我们需要找寻flag,就可以用 cat f* 来读取所有f开头的文件。

如果读文件命令都被过滤了,那就要构造命令来读取文件:
在shell中,反引号表示执行的意思,那么 ls /bin 就等价于 ls ' echo /bin',这样就可以构造最终版本:'echo dGfjCg==|base64 -d ' 'ench ZmxhZy5waHAK|base64 -d' 也等价于 ls /bin,也就是把ls 和/bin 先用base64编码,然后运行解码命令就可以实现同样的效果,这样就饶过了过滤,其他命令也是如此操作。

变量拼接过滤:
a=c;b=at;c=fl;d=ag;echo $a$b$c$d 那就等价于cat flag

空格过滤:用<>,${IFS},$IFS$9,代替空格,也可以用控制字符代替空格:%09 ,%0b , %0c

本文作者:ugnfc

本文链接:https://www.cnblogs.com/ugnfc/p/18189756

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   ugnfc  阅读(15)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.