goland突破某IE获取考试位置信息,辅助订位!

大家好!写完这篇文章,就暂时将浏览器指纹放一放,开始新的方向~

今天带来的是怎么突破:
开始之前需要明白一些前置知识点:前方高能,开始开车了,哈哈~

  1. 弄明白SAML认证流程
  2. 弄明白认证过程中cookie的工作流程
  3. 弄明白页面URL生成的流程
  4. 为什么不用Python
  5. 怎么判断是HTTP1.0还是HTTP2.0
  6. 怎么修改浏览器指纹
  7. 什么是HTTP 302跳转

先说一些小知识点:
1:时间戳

	//获取时间戳方式一
	tmb := fmt.Sprintf("%d", time.Now().Unix())
	fmt.Println(tmb)
	//获取时间戳方式二
	zh := strconv.FormatInt(time.Now().Unix(), 10)
	fmt.Println(zh)

2:在这里插入图片描述

完整代码如下:知识点都在代码里咯~

通过这篇文章,看我如何查看cookie,添加cookie,保持会话,添加header头部信息。这绝对是实战!
1,go原生request怎么请求get,post带JSON的数据,
2 , 怎么自定义请求头,带变量,不晓得的我的是不是比较low
3,怎么添加自定义COOKIE
4,怎么加载服务器返回的COOKIE去请求资源
5,后面会涉及到怎么包裹自定义浏览器指纹去最终突破定位置,怎么模拟跑JS代码,希望有大佬交流

代码需要自己添加自己的帐号密码ID才能跑哟~

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	_ "github.com/wangluozhe/requests/url"
	"golang.org/x/net/publicsuffix"
	"io"
	"io/ioutil"
	"log"
	"net/http"
	"net/http/cookiejar"
	"net/url"
	"regexp"
	"strings"
	"time"
)

func main() {
	username := "××××" //你的帐号
	password := "××××" //你的密码
	urlCcie := "https://ccie.cloudapps.cisco.com/CCIE/Schedule_Lab/CCIEOnline/LabSchedule"

	options := cookiejar.Options{
		PublicSuffixList: publicsuffix.List,
	}
	// 1、首先声明一个用来管理cookie的变量jar
	jar, _ := cookiejar.New(&options)

	// 2、创建一个客户端
	client := &http.Client{
		Jar: jar,
	}

	// 3、构造并发送请求1
	req, _ := http.NewRequest("GET", urlCcie, nil)
	//req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	req.Header.Set("authority", "ccie.cloudapps.cisco.com")
	req.Header.Set("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req.Header.Set("accept-language", "zh-CN,zh;q=0.9")
	req.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req.Header.Set("sec-ch-ua-mobile", "?0")
	req.Header.Set("sec-ch-ua-platform", `"Linux"`)
	req.Header.Set("sec-fetch-dest", "document")
	req.Header.Set("sec-fetch-mode", "navigate")
	req.Header.Set("sec-fetch-site", "none")
	req.Header.Set("sec-fetch-user", "?1")
	req.Header.Set("upgrade-insecure-requests", "1")
	r, _ := client.Do(req) //发送请求时自动带上cookie,并在返回响应时更新cookie
	defer r.Body.Close()
	reffer := r.Request.URL
	//fmt.Println(reffer)
	bodyText, _ := ioutil.ReadAll(r.Body) // 使用缓冲区读取网页内容
	re := regexp.MustCompile(`action="(.*)">`)
	found := re.FindAllStringSubmatch(string(bodyText), -1)
	var authorizationPing string
	if len(found) != 0 {
		for _, word := range found {
			authorizationPing = fmt.Sprintf("%v", word[1])
		}
	}
	fmt.Println("authorizationPing:", authorizationPing)

	// 4、构造并发送请求2
	data2 := url.Values{"pf.username": {username}, "pf.pass": {""}, "target": {""},
		"pf.userType": {"federated"}, "pf.idpId": {"identity.cisco.com"}, "pf.isUserStale": {""},
		"pf.idpUrl": {""}, "pf.TargetResource": {""}, "pf.cancel": {"clicked"}}
	body2 := strings.NewReader(data2.Encode())
	req2, _ := http.NewRequest("POST", authorizationPing, body2)
	//req2.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req2.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	req2.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req2.Header.Set("Accept-Language", "zh-CN,zh;q=0.9")
	req2.Header.Set("Cache-Control", "max-age=0")
	req2.Header.Set("Connection", "keep-alive")
	req2.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	//req2.Header.Set("Cookie", "cdc.cookie.newUser=0; bm_sz=AD8A8E72E9B61B3337C3F2897099DE5A~YAAQffw7F7psT4GGAQAAeLCEnBJnH/riNp17mVFTPzkjMOkJaraxxzRqgdtHe9QU8omJbcsUTNMfBpy0ef+8zUMpNhr87KuCk5WvcTmw5UH5Ql3etHKu3SUbxvS/10qyzXyM2NQxoIDilvvDf3qizeXyLKyPIcnN5JQuSJLRWtKILVP1bgFTPpIY+goQ2N5849jPTpdBkUFPB1AuAQOJImJmjwi4S8l7eTWwvQoojapCxkSj7jucVP6QbjtwxWgx7uJlXdsVx0VyjHwE2cE8pMd7P//ahR6CUEFMyiIrPF3M0w==~3684678~4536369; OptanonConsent=isGpcEnabled=0&datestamp=Wed+Mar+01+2023+17%3A33%3A10+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=6.39.0&isIABGlobal=false&hosts=&consentId=b3acb0b6-aecc-42e8-8bba-aad87e32d0f8&interactionCount=1&landingPath=NotLandingPage&groups=1%3A1%2C2%3A0%2C3%3A0%2C4%3A0&AwaitingReconsent=false; utag_main=v_id:0185ab6b491c001c14ef8009197c05065001b05d00868$_sn:11$_ss:0$_st:1677665000780$ses_id:1677663189616%3Bexp-session$_pn:1%3Bexp-session$ctm_ss:true%3Bexp-session; _abck=097D1E4D695769F8316CE520DB5CA7F6~0~YAAQffw7F6ttT4GGAQAApe6EnAnppATEuHMjoGO8HOU2C9Ou1J51uMlkKKsK5FjpUOo2R8iYgIoN9oDgTiNF/tEIdrmRJ29FpaZzrQlSKe2w9l7KItb8AWnyS4Dowp2PMZ58aT6u2KLaRz8oFHMsrlZMEl4Eg581ELncrJVNRptjpHm861cFxS6pD0WIqlvRazCNKvjvADsvqrdotzn+Tetw9kXyDIJoZ6f/pyEnAoE6E4rj1+oaI/rqjAavFn7eq6XjSWnCYL2MGCA0byNhsdkW1SLGoYxKSOqsODFQBmlkWgnmcr4Hd2eFj8tWPTG0novt9GnjDhJKq67HQML3JAMPwM62mNy3Z6BWTOJriZ4R4ef/mUvl9Jd0Izcd//PGwAJHQ3KnrFISPVArzV3fS4FyfFjKMQ==~-1~-1~-1; s_nr=1677666239034-Repeat; ADRUM_BTa=R:0|g:b006350b-42e2-44e5-9adc-eb70a5fc7932|n:cisco1_d5ce4a50-0e7c-4e42-a5a5-4c7d1bcfcd74; SameSite=None; ADRUM_BT1=R:0|i:645743|e:88; cstoken=loggedout; PF=rTP0jPrrWj8KwHYyjm8Nza5shpSLR2SzfhM4VGxNJ3ke; anchorvalue=; discovery=T1RLAQIB-D1ejsvYMQ5MNN8DaZcKe8AxnBCLPMzSStplStEC_UsmG9lSAACQvB-EcylBsY-_1T8p0Uwx4hPSpHWh9hJo57K98RvKVGvfV4UAMdJ9HjJ4uqeOzf9jtebQru0r1Krtg_IGEgC_lZ40yw8pG3IICUSF-2OS3lWrKS2dq4UxyzxaGGsBq207ugJhbNCxHIKnjGXfCVlAhXNNuk2wj6bv-YFE6K3OevGTYCwgCPSvP2kjrdPpOcMp; oneid_locale=zh-CN")
	req2.Header.Set("Origin", "https://cloudsso.cisco.com")
	csHeaders := make(map[string]string)
	csHeaders["Referer"] = reffer.String()
	//fmt.Println(reffer.String())
	for k, h := range csHeaders {
		req2.Header.Set(k, h)
	}
	req2.Header.Set("Sec-Fetch-Dest", "document")
	req2.Header.Set("Sec-Fetch-Mode", "navigate")
	req2.Header.Set("Sec-Fetch-Site", "same-origin")
	req2.Header.Set("Sec-Fetch-User", "?1")
	req2.Header.Set("Upgrade-Insecure-Requests", "1")
	req2.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req2.Header.Set("sec-ch-ua-mobile", "?0")
	req2.Header.Set("sec-ch-ua-platform", `"Linux"`)
	client.Do(req2) //发送请求时自动带上cookie,并在返回响应时更新cookie
	defer req2.Body.Close()

	// 5、构造并发送请求3
	target := authorizationPing + "?pf.continue=clicked&pf.idpId=identity.cisco.com&pf.userType=federated"
	//fmt.Println(target)
	data3 := url.Values{"login_hint": {username}, "username": {username}, "pf.idpId": {"identity.cisco.com"}, "pf.userType": {"federated"},
		"pf.submit": {"clicked"}, "SpSessionAuthnAdapterId": {"iftoken"}, "TargetResource": {target}}
	body3 := strings.NewReader(data3.Encode())
	//resp, err := http.Post(authorizationPing, "application/x-www-form-urlencoded", body)
	req3, _ := http.NewRequest("POST", "https://cloudsso.cisco.com//sp/startSSO.ping", body3)
	//req3.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req3.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req3.Header.Set("Accept-Language", "zh-CN,zh;q=0.9")
	req3.Header.Set("Cache-Control", "max-age=0")
	req3.Header.Set("Connection", "keep-alive")
	req3.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	//req3.Header.Set("Cookie", "cdc.cookie.newUser=0; bm_sz=AD8A8E72E9B61B3337C3F2897099DE5A~YAAQffw7F7psT4GGAQAAeLCEnBJnH/riNp17mVFTPzkjMOkJaraxxzRqgdtHe9QU8omJbcsUTNMfBpy0ef+8zUMpNhr87KuCk5WvcTmw5UH5Ql3etHKu3SUbxvS/10qyzXyM2NQxoIDilvvDf3qizeXyLKyPIcnN5JQuSJLRWtKILVP1bgFTPpIY+goQ2N5849jPTpdBkUFPB1AuAQOJImJmjwi4S8l7eTWwvQoojapCxkSj7jucVP6QbjtwxWgx7uJlXdsVx0VyjHwE2cE8pMd7P//ahR6CUEFMyiIrPF3M0w==~3684678~4536369; OptanonConsent=isGpcEnabled=0&datestamp=Wed+Mar+01+2023+17%3A33%3A10+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=6.39.0&isIABGlobal=false&hosts=&consentId=b3acb0b6-aecc-42e8-8bba-aad87e32d0f8&interactionCount=1&landingPath=NotLandingPage&groups=1%3A1%2C2%3A0%2C3%3A0%2C4%3A0&AwaitingReconsent=false; utag_main=v_id:0185ab6b491c001c14ef8009197c05065001b05d00868$_sn:11$_ss:0$_st:1677665000780$ses_id:1677663189616%3Bexp-session$_pn:1%3Bexp-session$ctm_ss:true%3Bexp-session; _abck=097D1E4D695769F8316CE520DB5CA7F6~0~YAAQffw7F6ttT4GGAQAApe6EnAnppATEuHMjoGO8HOU2C9Ou1J51uMlkKKsK5FjpUOo2R8iYgIoN9oDgTiNF/tEIdrmRJ29FpaZzrQlSKe2w9l7KItb8AWnyS4Dowp2PMZ58aT6u2KLaRz8oFHMsrlZMEl4Eg581ELncrJVNRptjpHm861cFxS6pD0WIqlvRazCNKvjvADsvqrdotzn+Tetw9kXyDIJoZ6f/pyEnAoE6E4rj1+oaI/rqjAavFn7eq6XjSWnCYL2MGCA0byNhsdkW1SLGoYxKSOqsODFQBmlkWgnmcr4Hd2eFj8tWPTG0novt9GnjDhJKq67HQML3JAMPwM62mNy3Z6BWTOJriZ4R4ef/mUvl9Jd0Izcd//PGwAJHQ3KnrFISPVArzV3fS4FyfFjKMQ==~-1~-1~-1; s_nr=1677666239034-Repeat; SameSite=None; cstoken=loggedout; PF=rTP0jPrrWj8KwHYyjm8Nza5shpSLR2SzfhM4VGxNJ3ke; anchorvalue=; discovery=T1RLAQIB-D1ejsvYMQ5MNN8DaZcKe8AxnBCLPMzSStplStEC_UsmG9lSAACQvB-EcylBsY-_1T8p0Uwx4hPSpHWh9hJo57K98RvKVGvfV4UAMdJ9HjJ4uqeOzf9jtebQru0r1Krtg_IGEgC_lZ40yw8pG3IICUSF-2OS3lWrKS2dq4UxyzxaGGsBq207ugJhbNCxHIKnjGXfCVlAhXNNuk2wj6bv-YFE6K3OevGTYCwgCPSvP2kjrdPpOcMp; oneid_locale=zh-CN; ADRUM_BTa=R:924|g:536cc978-831d-4bc7-b3d9-cee4fe34bfca|n:cisco1_d5ce4a50-0e7c-4e42-a5a5-4c7d1bcfcd74; ADRUM_BT1=R:924|i:641853|e:32")
	req3.Header.Set("Origin", "https://cloudsso.cisco.com")
	req3.Header.Set("Referer", "https://cloudsso.cisco.com/")
	req3.Header.Set("Sec-Fetch-Dest", "document")
	req3.Header.Set("Sec-Fetch-Mode", "navigate")
	req3.Header.Set("Sec-Fetch-Site", "same-origin")
	req3.Header.Set("Upgrade-Insecure-Requests", "1")
	req3.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	req3.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req3.Header.Set("sec-ch-ua-mobile", "?0")
	req3.Header.Set("sec-ch-ua-platform", `"Linux"`)
	resp3, _ := client.Do(req3) //发送请求时自动带上cookie,并在返回响应时更新cookie
	defer resp3.Body.Close()
	bodyText2, _ := ioutil.ReadAll(resp3.Body) // 使用缓冲区读取网页内容
	//fmt.Println(string(bodyText2))
	re3 := regexp.MustCompile(`"stateToken":"(.*?)","helpLinks"`)
	fount := re3.FindAllStringSubmatch(string(bodyText2), -1)
	//fmt.Println(fount[0], len(fount))
	var token string
	if len(fount) != 0 {
		for _, word := range fount {
			//fmt.Printf("%s\n", word[1])
			token = fmt.Sprintf("%v", word[1])
		}
	}
	fmt.Println(token)

	// 6、构造并发送请求4
	data4 := url.Values{"stateToken": {token}}
	body4 := strings.NewReader(data4.Encode())
	req4, _ := http.NewRequest("POST", "https://id.cisco.com/api/v1/authn/introspect", body4)
	//req4.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	//req4.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req4.Header.Set("authority", "id.cisco.com")
	req4.Header.Set("accept", "application/json")
	req4.Header.Set("accept-language", "zh-CN")
	req4.Header.Set("content-type", "application/json")
	req4.Header.Set("origin", "https://id.cisco.com")
	req4.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req4.Header.Set("sec-ch-ua-mobile", "?0")
	req4.Header.Set("sec-ch-ua-platform", `"Linux"`)
	req4.Header.Set("sec-fetch-dest", "empty")
	req4.Header.Set("sec-fetch-mode", "cors")
	req4.Header.Set("sec-fetch-site", "same-origin")
	req4.Header.Set("user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	req4.Header.Set("x-okta-user-agent-extended", "okta-auth-js/6.9.0 okta-signin-widget-6.8.3")
	client.Do(req4) //发送请求时自动带上cookie,并在返回响应时更新cookie

	// 7、构造并发送请求5
	req5, _ := http.NewRequest("GET", "https://id.cisco.com/auth/services/devicefingerprint", nil)
	//req5.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")

	req5.Header.Set("authority", "id.cisco.com")
	req5.Header.Set("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req5.Header.Set("accept-language", "zh-CN,zh;q=0.9")
	req5.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req5.Header.Set("sec-ch-ua-mobile", "?0")
	req5.Header.Set("sec-ch-ua-platform", `"Linux"`)
	req5.Header.Set("sec-fetch-dest", "iframe")
	req5.Header.Set("sec-fetch-mode", "navigate")
	req5.Header.Set("sec-fetch-site", "same-origin")
	req5.Header.Set("upgrade-insecure-requests", "1")
	req5.Header.Set("user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")

	client.Do(req5) //发送请求时自动带上cookie,并在返回响应时更新cookie

	// 8、构造并发送请求6
	type pData struct {
		Password   string                 `json:"password"`
		Username   string                 `json:"username"`
		Option     map[string]interface{} `json:"option"`
		StateToken string                 `json:"stateToken"`
	}
	var cc map[string]interface{}
	cc = make(map[string]interface{})
	cc["warnBeforePasswordExpired"] = true
	cc["multiOptionalFactorEnroll"] = true
	vP := pData{
		Password:   password,
		Username:   username,
		Option:     cc,
		StateToken: token,
	}
	vPData, err := json.Marshal(vP)
	if err != nil {
		fmt.Printf("序列化错误err=%v\n", err)
	}
	fmt.Printf("vP 序列化后=%v\n", string(vPData))
	req6, _ := http.NewRequest("POST", "https://id.cisco.com/api/v1/authn", bytes.NewBuffer(vPData))
	//req5, _ := http.NewRequest("POST", "https://id.cisco.com/api/v1/authn", bytes.NewBuffer(jsonStr))
	req6.Header.Set("Accept", "application/json")
	req6.Header.Set("Accept-Language", "en")
	req6.Header.Set("Content-Type", "application/json")
	req6.Header.Set("Cache-Control", "no-cache")
	req6.Header.Set("Connection", "keep-alive")
	//req6.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req6.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	resp6, err := client.Do(req6) //发送请求时自动带上cookie,并在返回响应时更新cookie
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(resp6.StatusCode)

	// 9、构造并发送请求7
	req7Data := url.Values{}
	req7Data.Set("stateToken", token)
	urlReq7 := "https://id.cisco.com/login/token/redirect"
	u, err := url.ParseRequestURI(urlReq7)
	if err != nil {
		fmt.Println(err)
	}
	u.RawQuery = req7Data.Encode()
	fmt.Println("redirect_token_url: ", u.String())
	req7, _ := http.NewRequest("GET", u.String(), nil)
	//req7.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req7.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req7.Header.Set("Accept-Language", "en-US,en;q=0.9")
	req7.Header.Set("Sec-ch-ua", "\"Not_A Brand\";v=\"99\", \"Google Chrome\";v=\"109\", \"Chromium\";v=\"109\"")
	req7.Header.Set("Sec-ch-ua-mobile", "?0")
	req7.Header.Set("Sec-ch-ua-platform", " \"Linux\"")
	req7.Header.Set("Sec-fetch-dest", "document")
	req7.Header.Set("Sec-fetch-mode", "navigate")
	req7.Header.Set("Sec-fetch-site", "same-origin")
	req7.Header.Set("Sec-fetch-user", "?1")
	req7.Header.Set("Accept-encoding", "gzip, deflate, br")
	//var redCookie []string := [...]["cdc.cookie.newUser","djjd"]
	type redCookie struct {
		Name  string
		Value string
	}
	redC := redCookie{
		Name:  "cdc.cookie.newUser",
		Value: fmt.Sprintf("%d", time.Now().Unix()),
	}
	cAdd := string(redC.Name) + "=" + string(redC.Value)
	req7.Header.Add("Cookie", cAdd)
	req7.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	resp7, _ := client.Do(req7) //发送请求时自动带上cookie,并在返回响应时更新cookie
	defer resp7.Body.Close()
	fmt.Println(resp7.StatusCode)
	defer resp7.Body.Close()
	bodyText7, _ := ioutil.ReadAll(resp6.Body) // 使用缓冲区读取网页内容
	fmt.Println(string(bodyText7))
	//fmt.Println("Location", resp6.Header.Get("Location"))
	fmt.Println("重定向的URL:", resp7.Request.URL)
	fmt.Println(req7.Cookies())
	fmt.Println(resp7.Cookies())
	//fmt.Printf("%T", resp7.Cookies())

	// 10、构造并发送请求8


	// 11、构造并发送请求9 查询位置
	var data9 = strings.NewReader(`labLoc=Dubai&labType=Enterprise+Infrastructure&candID=你的ID&getlabDate=yes`)
	req9, err := http.NewRequest("POST", "https://ccie.cloudapps.cisco.com/CCIE/Schedule_Lab/CCIEOnline/LabSchedule", data9)
	if err != nil {
		log.Fatal(err)
	}
	req9.Header.Set("authority", "ccie.cloudapps.cisco.com")
	req9.Header.Set("accept", "text/plain, */*; q=0.01")
	req9.Header.Set("accept-language", "zh-CN,zh;q=0.9")
	req9.Header.Set("content-type", "application/x-www-form-urlencoded")
	req9.Header.Set("origin", "https://ccie.cloudapps.cisco.com")
	req9.Header.Set("referer", "https://ccie.cloudapps.cisco.com/CCIE/Schedule_Lab/CCIEOnline/CCIEOnline")
	req9.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req9.Header.Set("sec-ch-ua-mobile", "?0")
	req9.Header.Set("sec-ch-ua-platform", `"Linux"`)
	req9.Header.Set("sec-fetch-dest", "empty")
	req9.Header.Set("sec-fetch-mode", "cors")
	req9.Header.Set("sec-fetch-site", "same-origin")
	//req8.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0")
	req9.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	req9.Header.Set("x-requested-with", "XMLHttpRequest")
	cookie9 := resp7.Cookies()
	for _, r := range cookie9 {
		req9.AddCookie(r)
	}
	resp9, err := client.Do(req9)
	//fmt.Println("kkcookies is:", jar)
	if err != nil {
		log.Fatal(err)
	}
	defer resp9.Body.Close()
	bodyText9, err := io.ReadAll(resp9.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("返回的位置信息:%s\n", bodyText9)

	// 11、构造并发送请求10 激动人心的时候(定位置)
	var data = strings.NewReader(`labType=ENT_INF&hiddenlabType=Enterprise+Infrastructure&attemptNum=3&labID=你的ID&sysdate=3%2F2%2F2023&labLocation=Dubai&labLoc=Dubai&date1=July+26%2C+2023&labDate=7%2F26%2F2023&onlineCCPaymentStatus=Y&onlinePaymentWindow=30&txtProxyVoucherNumber=NOT_REQUIRED&policyAgree=on&conductAgree=on`)
	req10, err := http.NewRequest("POST", "https://ccie.cloudapps.cisco.com/CCIE/Schedule_Lab/CCIEOnline/LabSchedule", data)
	if err != nil {
		log.Fatal(err)
	}
	req10.Header.Set("authority", "ccie.cloudapps.cisco.com")
	req10.Header.Set("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
	req10.Header.Set("accept-language", "zh-CN,zh;q=0.9")
	req10.Header.Set("cache-control", "max-age=0")
	req10.Header.Set("content-type", "application/x-www-form-urlencoded")
	req10.Header.Set("origin", "https://ccie.cloudapps.cisco.com")
	req10.Header.Set("referer", "https://ccie.cloudapps.cisco.com/CCIE/Schedule_Lab/CCIEOnline/CCIEOnline")
	req10.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"`)
	req10.Header.Set("sec-ch-ua-mobile", "?0")
	req10.Header.Set("sec-ch-ua-platform", `"Linux"`)
	req10.Header.Set("sec-fetch-dest", "document")
	req10.Header.Set("sec-fetch-mode", "navigate")
	req10.Header.Set("sec-fetch-site", "same-origin")
	req10.Header.Set("sec-fetch-user", "?1")
	req10.Header.Set("upgrade-insecure-requests", "1")
	req10.Header.Set("user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36")
	cookie10 := resp9.Cookies()
	for _, r := range cookie10 {
		req10.AddCookie(r)
	}
	resp10, err := client.Do(req10)
	if err != nil {
		log.Fatal(err)
	}
	defer resp10.Body.Close()
	bodyText10, err := io.ReadAll(resp10.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText10)
	fmt.Println("订位成功!")
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值