package main

import (
"io"
"log"
"net/http"
"strings"
) func main() {
localHost := "127.0.0.1.8001"
targetHost := "127.0.0.1:80"
httpsServer(localHost, targetHost) log.Fatalln("http server down!!!")
} func httpsServer(addr string, remote_addr string) { http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
cli := &http.Client{}
body := make([]byte, 0)
n, err := io.ReadFull(req.Body, body)
if err != nil {
io.WriteString(w, "Request Data Error")
return
}
reqUrl := "http://" + remote_addr + req.URL.Path req2, err := http.NewRequest(req.Method, reqUrl, strings.NewReader(string(body)))
if err != nil {
io.WriteString(w, "Request Error")
return
}
// set request content type
contentType := req.Header.Get("Content-Type")
req2.Header.Set("Content-Type", contentType)
// request
rep2, err := cli.Do(req2)
if err != nil {
io.WriteString(w, "Not Found!")
return
}
defer rep2.Body.Close()
n, err = io.ReadFull(rep2.Body, body)
if err != nil {
io.WriteString(w, "Request Error")
return
}
// set response header
for k, v := range rep2.Header {
w.Header().Set(k, v[0])
}
io.WriteString(w, string(body[:n]))
})
var err error = nil
err = http.ListenAndServe(":12307", nil)
if err != nil {
log.Fatal("server down!!!")
}
}

  

http内网转发的更多相关文章

  1. Tunna内网转发

    Tunna和reduh原理一样.. 使用方法: 上传源码包中文件夹webshell下的脚本至网站目录 然后本地进行连接上传的webshell即可 python proxy.py -u http://1 ...

  2. Linux渗透+SSH内网转发

    http://www.jb51.net/hack/58514.html http://blog.chinaunix.net/uid-756931-id-353243.html http://blog. ...

  3. lcx.exe内网转发命令教程 + LCX免杀下载

    作者: 小健 本机: lcx -listen 2222 3333 2222为转发端口,3333为本机任意未被占用的端口 肉鸡:lcx -slave 119.75.217.56 2222 127.0.0 ...

  4. iptables 实现内网转发上网

    介绍 通过iptables做nat转发实现所有内网服务器上网. 操作 首先开启可以上网的服务器上的内核路由转发功能.这里我们更改/etc/sysctl.conf 配置文件. [root@web1 /] ...

  5. lcx 内网转发

    把放置到已经控制的内网主机 执行 内网主机输入命令lcx.exe -slave 外网ip 外网端口 内网ip 内网端口lcx.exe -slave 30.1.85.55 2222 127.0.0.1 ...

  6. 使用Sunny-grok实现内网转发

    Sunny-grok 申请地址:http://www.ngrok.cc ngrok.cfg配置: server_addr: "server.ngrok.cc:4443" auth_ ...

  7. 内网转发ngrok的使用

    1.下载解压ngrok:https://ngrok.com/download 2.执行ngrok会打开控制台 3.输入命令,开始映射本地的8080端口 ngork http 8080 控制台会返回一个 ...

  8. i春秋DMZ大型靶场实验(三)内网转发DMZ2

    更具实验文件知道存在源码泄露  下载源码进行源码审计 发现admin账号 查看user.php 发现mysql 账号 端口 对登录后源码进行审计 发现上传文件的两处漏洞 对 fiel name 可以 ...

  9. 3.内网渗透之reGeorg+Proxifier

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxIAAAE2CAIAAAB6BDOVAAAgAElEQVR4Aey9Z5Aex3X327MRGVzkRH ...

随机推荐

  1. 【Web安全入门】三个技巧教你玩转XSS漏洞

    XSS漏洞是Web应用程序中最常见的漏洞之一,想要入门Web安全的小伙伴,这个知识点是必学的. i春秋官网中有很多关于XSS漏洞的课程,新手小白可以去官网看课学习. 学习地址:https://www. ...

  2. Android四大组件:BroadcastReceiver 介绍

    介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...

  3. js中console在一行内打印字符串和对象

    在前端开发中,大多数的调试一般都是F12中的console和network中查看请求数据和响应数据,也有一部分人喜欢用debugger. 在开发大一些的项目时,在开发环境下,打开着控制台,切换一下页面 ...

  4. Jmeter吞吐量控制器

    吞吐量控制器 场景: 假如有两个业务分别是A, B在同一线程组内有10并发, 7个做A业务, 3个做B业务,吞吐量控制器比较推荐使用. 添加吞吐量控制器 ​ 用法1: Percent Executio ...

  5. 模块 time,datetime,random,typing,hashlib,requests,re

    目录 包 什么是包 为什么要包 1. 包的介绍 2. 绝对导入和相对导入 - 绝对导入 - 相对导入 time模块 时间戳 格式化时间 结构化时间 sleep datetime模块 random模块 ...

  6. 解决eclipse中maven多模块项目显示不全的问题

    背景:在eclipse中导入maven项目,后来发现有的子模块不能正常的显示出现 原因:没有加载到子模块的pom文件 解决方法:重新导入:import-> 勾选项目->选择你缺少的项目的p ...

  7. time,datetime,random,os,sys,hashlib,logging,configparser,re模块

    #-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...

  8. Rust语言中的常量,变量,运算符,数据类型

    简单练练, 夏天太热. const MAX_POINTS: u32 = 100_100; fn main() { let mut x = 5; let y = 5; let y = y + 1; le ...

  9. 【POJ3784】Running Median

    Running Median Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3406   Accepted: 1576 De ...

  10. 【Spring AOP】AOP的实现(三)

    一.Spring 对AOP的支持 Spring中AOP代理由Spring的IOC容器负责生成.管理,其依赖关系也由IOC容器负责管理.因此,AOP代理可以直接使用容器中的其它bean实例作为目标,这种 ...