在开始今天的分享之前,我想先推荐一篇非常精彩的文章。
文章就是《渗透测试文件包含漏洞原理与验证(1)——文件包含概述》🚀🌟🚀🌟🚀🌟
链接是:点击这里。
这篇文章详细解释了文件包含漏洞的原理,以及如何在实际的 Web 应用程序中发现和验证这类漏洞。它提到,文件包含漏洞通常发生在 PHP 等脚本语言中,当开发者在引入文件时没有对文件名进行充分的校验,就可能导致意外的文件泄露或恶意代码注入。
文章还介绍了几种 PHP 中的文件包含函数,包括
include()
、include_once()
、require()
和require_once()
,以及它们在找不到文件时的不同行为。此外,文章还探讨了利用文件包含漏洞的条件,比如函数通过动态变量引入文件,以及用户能够控制这个动态变量。通过一些实际的示例,文章展示了如何通过修改文件扩展名来绕过某些安全限制,以及如何通过修改 URL 参数来实现文件包含攻击。
这篇文章不仅提供了丰富的技术细节,还强调了合法合规的重要性。它提醒我们,所有的渗透测试活动都应该在获得明确授权的情况下进行,并且要遵守相关法律法规。
如果你对 Web 安全感兴趣,或者想要提高你的 Web 应用程序的安全性,我强烈推荐你阅读这篇文章。它不仅能够提供实用的技术知识,还能帮助你更好地理解安全领域的法律和道德规范。让我们一起在合法合规的前提下,探索和提升 Web 安全吧!
本篇文章介绍如何在 Linux 本地部署开源项目 OpenHands 基于人工智能的软件开发代理平台,并结合 cpolar 实现公网访问。
OpenHands(此前称为 OpenDevin)是一个基于人工智能的软件开发代理平台,旨在通过 AI 技术增强软件开发流程。该平台支持开发者执行各种任务,包括代码编写、命令行操作以及网页浏览等,其功能几乎与人类开发者相当。
OpenHands 采用 MIT 许可证发布,并强调社区驱动的开发模式。项目主要使用 Python 编程语言构建,同时运行依赖于 Docker 环境。因此,熟悉容器化技术对于贡献或使用该项目尤为重要。
OpenHands 代理可以执行人类开发人员可以执行的任何操作:修改代码、运行命令、浏览网页、调用 API,甚至从 StackOverflow 复制代码片段。
接下来本地部署 OpenHands。
本篇文章演示环境:Ubuntu22.04
运行 OpenHands 最简单的方法是使用 Docker 进行部署,如果没有安装 Docker,可以查看这篇教程进行安装:Docker 安装——Linux、Windows、MacOS - cpolar 极点云官网
输入以下命令来运行以下命令拉取 OpenHands 镜像:
sudo docker pull docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik
使用以下命令启动 OpenHands 容器:
sudo docker run -it --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.14
打开浏览器输入 localhost:3000 启动并可以访问。
首次运行时,会弹出设置窗口。
用户需要选择 LLM 提供商、LLM 模型并输入 API 密钥。
可通过点击 UI 中的齿轮图标随时调整设置。如需使用自定义模型,可在高级选项中手动输入模型名称和 Base URL。
设置好后,点击 Save 保存
接下来验证下 OpenHands,输入下提示词请求,例如:请编写一个 bash 脚本 hello.sh,打印 "hello world!"
回到 OpenHands,可以看到左侧显示提示词,右侧给出了对应回答
接下来我想让他使用 HTML 创建一个简单的计算器,点击生成,可以看到右侧出现了相应文件的代码
在输入框中让它运行这个项目,可以看到在对话框中输出了链接
验证一下这个简单的计算器生成是否正确,这里我使用 VsCode 打开并运行代码。
一个简易的计算器就生成好了,如果不满意就可以回到 OpenHands,继续输入要求生成新的代码。
虽然在本地环境中部署 OpenHands 已经能够显著提升你的开发效率,但如果你希望从任何地方都能随时随地访问这个强大的工具,就需要解决内网穿透的问题。这时,Cpolar 就成为了你的得力助手。
Cpolar 是一款功能强大且易于使用的内网穿透工具,它能够在几秒钟内将你的本地服务暴露到公网上。无论你是在办公室、家里还是在旅途中,Cpolar 都能确保你能够轻松访问 OpenHands,而无需复杂的网络配置或昂贵的服务器托管费用。
接下来教大家如何安装 Cpolar 并且将 OpenHands 实现公网使用。
下面是安装 cpolar 步骤:
Cpolar 官网地址: https://www.cpolar.com
使用一键脚本安装命令
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:
登录 cpolar web UI 管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。
如下图所示,成功实现使用公网地址异地远程访问本地部署的 OpenHands,跟上面一样,配置好模型即可使用。
使用上面的 cpolar https 公网地址,在任意设备的浏览器进行访问,即可成功看到 OpenHands 界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,隧道使用了 cpolar 的公网域名,无需自己购买云服务器,可节省大量资金。使用 cpolar 创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!
由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。
登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,地区选择 china vip,然后设置一个二级子域名名称,填写备注信息,点击保留。
保留成功后复制保留的二级子域名地址:
登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑
。
修改隧道信息,将保留成功的二级子域名配置到隧道中
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址访问 OpenHands 界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。
通过本文的引导,你已经成功在本地环境中部署了 OpenHands,并学会了如何使用 Cpolar 内网穿透工具实现其公网访问。无论你在何处,都能够随时随地利用这个强大的开发助手提升你的工作效率。
OpenHands 不仅是一个工具,更是一种创新的开发方式。它能够帮助你自动化日常任务、提高代码质量,并让你有更多时间专注于核心业务逻辑。而 Cpolar 则确保了这些功能在任何网络环境下都能稳定运行。
希望本文的内容对你有所帮助,如果你有任何疑问或建议,欢迎在评论区留言交流。让我们共同探索更多的可能性,开创更加高效和智能的开发未来!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有