用shell抓取某考试试题

一、背景

最近公司组织考信息安全,但考试机构没有整理出试题,只给了以下几个在线练习的链接,想着用博客整理下题库题型,奈何这个只能用拍照图片,然后用图片转文字的方式太慢,累死个人了,寻思着从接口读出所有试题。。

纯属技术分享,对试题感兴趣可以练习,都是信息安全知识

二、流程观察

1.在线的试题包括:单选题、多选题、判断题

单选 https://app3Audc5201856.h5.xiaoeknow.com/v1/evaluation_wechat/practice/wb_5e69a60334e2f_lfE62mBD?type=2

多选 https://app3Audc5201856.h5.xiaoeknow.com/v1/evaluation_wechat/practice/wb_5e69a4ce1e626_8KxgBZn5?type=2

判断 https://app3Audc5201856.h5.xiaoeknow.com/v1/evaluation_wechat/practice/wb_5e69982857d44_HcXQxLDv?type=2

2.做题过程

流程是:访问链接 – 微信扫码 – 做题界面 – 观察规律

单选题有100道,看着有4个选项(ABCD),序号从0到99.

多选题有100道,看着有4~ 4+个选项(ABCD or ABCDE…),序号从0到99.

判断题有100道,看着有2个选项(正确/错误),序号从0到99.

微信扫码如图:

用shell抓取某考试试题

做题界面:
单选题

用shell抓取某考试试题

用shell抓取某考试试题

多选题

用shell抓取某考试试题

判断题

用shell抓取某考试试题

3.接口返回

叫了开发工程师帮忙观察的, thank boy

按f12进入页面调试模式

谷歌浏览器

【网络(network)】 – 【停用缓存】|【保留日志】 – 【Fetch/XHR】

xhr,全称为XMLHttpRequest,用于与服务器交互数据,是ajax功能实现所依赖的对象,jquery中的ajax就是对 xhr的封装

大白话就是: 这是数据返回的结果

点我查看【 什么是xhr?】

f12调试模式如下图:

用shell抓取某考试试题

页面返回接口观察

发现 get_paper_question 接口有大量返回

用shell抓取某考试试题

发现0数组是第1道题目,0数组里面有0-3个数组是题目选项
也就是是 n数组就是题目n+1, n下有4个选项。

题目1选项1 [0]0
题目1选项2 [0]1
题目1选项3 [0]2
题目1选项4 [0]3

题目2选项1 [1]0
题目2选项2 [1]1
题目2选项3 [1]2
题目2选项4 [1]3

用shell抓取某考试试题

api接口观察

用shell抓取某考试试题
curl 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question'   -H 'authority: app3audc5201856.h5.xiaoeknow.com'   -H 'accept: application/json, text/plain, */*'   -H 'accept-language: zh-CN,zh;q=0.9'   -H 'cache-control: no-cache'   -H 'content-type: application/x-www-form-urlencoded'   -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659601468103_tlacsv"}; logintime=1659601475'   -H 'origin: https://app3audc5201856.h5.xiaoeknow.com'   -H 'pragma: no-cache'   -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a60334e2f_lfE62mBD?show_title=0'   -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'   -H 'sec-ch-ua-mobile: ?0'   -H 'sec-ch-ua-platform: "Windows"'   -H 'sec-fetch-dest: empty'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-site: same-origin'   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'   -H 'x-requested-with: XMLHttpRequest'   --data 'bizData%5Bpractice_id%5D=wb_5e69a60334e2f_lfE62mBD&bizData%5Bjoin_id%5D=uwb_62eb7fb493cc7_vpsNd0yHPQ&bizData%5Bstart%5D=0&bizData%5Bend%5D=9'   --compressed

修改为访问第1道题 【使用jq做json解析】

curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question'   -H 'authority: app3audc5201856.h5.xiaoeknow.com'   -H 'accept: application/json, text/plain, */*'   -H 'accept-language: zh-CN,zh;q=0.9'   -H 'cache-control: no-cache'   -H 'content-type: application/x-www-form-urlencoded'   -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659601468103_tlacsv"}; logintime=1659601475'   -H 'origin: https://app3audc5201856.h5.xiaoeknow.com'   -H 'pragma: no-cache'   -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a60334e2f_lfE62mBD?show_title=0'   -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'   -H 'sec-ch-ua-mobile: ?0'   -H 'sec-ch-ua-platform: "Windows"'   -H 'sec-fetch-dest: empty'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-site: same-origin'   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'   -H 'x-requested-with: XMLHttpRequest'   --data 'bizData%5Bpractice_id%5D=wb_5e69a60334e2f_lfE62mBD&bizData%5Bjoin_id%5D=uwb_62eb7fb493cc7_vpsNd0yHPQ&bizData%5Bstart%5D=0&bizData%5Bend%5D=0'   --compressed| jq .
{
  "code": 0,
  "msg": "success",
  "data": {
    "practice_list": [
      {
        "id": "qs_5e6f34e73f782_gmLix4D899",
        "content": "以下哪一项不是补丁管理过程的一部分?( )",
        "describ": "以下哪一项不是补丁管理过程的一部分?( )",
        "audio_urls": "",
        "question_library_id": "ql_5e68a077687be_JwjVBmjX",
        "is_material_question": 0,
        "type": 0,
        "correct_answer": [
          "op_90035e6f34e73f8b2_3APT1003"
        ],
        "analysis": "",
        "disorder_match": 0,
        "option": [
          {
            "app_id": "app3Audc5201856",
            "question_id": "qs_5e6f34e73f782_gmLix4D899",
            "id": "op_90005e6f34e73f7cf_qhAL1000",
            "content": " 评估补丁",
            "describ": " 评估补丁",
            "state": 0
          },
          {
            "app_id": "app3Audc5201856",
            "question_id": "qs_5e6f34e73f782_gmLix4D899",
            "id": "op_90015e6f34e73f81a_zjH21001",
            "content": " 测试补丁",
            "describ": " 测试补丁",
            "state": 0
          },
          {
            "app_id": "app3Audc5201856",
            "question_id": "qs_5e6f34e73f782_gmLix4D899",
            "id": "op_90025e6f34e73f862_b4Ke1002",
            "content": " 部署所有补丁",
            "describ": " 部署所有补丁",
            "state": 0
          },
          {
            "app_id": "app3Audc5201856",
            "question_id": "qs_5e6f34e73f782_gmLix4D899",
            "id": "op_90035e6f34e73f8b2_3APT1003",
            "content": " 审计补丁",
            "describ": " 审计补丁",
            "state": 0
          }
        ],
        "answer": [],
        "answer_state": "",
        "child": []
      }
    ],
    "practice_num": 100,
    "name": "网络信息运行管理员-单选题",
    "is_random": 0,
    "qes_num": 1,
    "question_setting": {
      "is_hide_audio_name": 1
    }
  }
}

变量调试(就是对这个json的字段获取kv)

赋值返回结果给data变量,并转json
data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question'   -H 'authority: app3audc5201856.h5.xiaoeknow.com'   -H 'accept: application/json, text/plain, */*'   -H 'accept-language: zh-CN,zh;q=0.9'   -H 'cache-control: no-cache'   -H 'content-type: application/x-www-form-urlencoded'   -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659601468103_tlacsv"}; logintime=1659601475'   -H 'origin: https://app3audc5201856.h5.xiaoeknow.com'   -H 'pragma: no-cache'   -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a60334e2f_lfE62mBD?show_title=0'   -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'   -H 'sec-ch-ua-mobile: ?0'   -H 'sec-ch-ua-platform: "Windows"'   -H 'sec-fetch-dest: empty'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-site: same-origin'   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'   -H 'x-requested-with: XMLHttpRequest'   --data 'bizData%5Bpractice_id%5D=wb_5e69a60334e2f_lfE62mBD&bizData%5Bjoin_id%5D=uwb_62eb7fb493cc7_vpsNd0yHPQ&bizData%5Bstart%5D=0&bizData%5Bend%5D=1'   --compressed| jq .)

获取题目数组
echo "${data}"|jq .data.practice_list|jq "keys" -r
[
  0,
  1
]

echo "${data}"|jq .data.practice_list|jq "keys" -r|grep -Eio "[0-9]{0,11}"
0
1

获取指定题目内的题目/某个选项
(这是题目1以及选项)

echo "${data}"|jq .data.practice_list|jq .[0].describ -r | sed 's###g'|sed 's###g'
以下哪一项不是补丁管理过程的一部分?( )

echo "${data}"|jq .data.practice_list|jq .[0].option[0].describ -r
 评估补丁
echo "${data}"|jq .data.practice_list|jq .[0].option[1].describ -r
 测试补丁
echo "${data}"|jq .data.practice_list|jq .[0].option[2].describ -r
 部署所有补丁
echo "${data}"|jq .data.practice_list|jq .[0].option[3].describ -r
 审计补丁

(这是题目2以及选项)

echo "${data}"|jq .data.practice_list|jq .[1].describ -r | sed 's###g'|sed 's###g'
 以下哪一项是使用基线的一种有效的配置管理方法? ( )

echo "${data}"|jq .data.practice_list|jq .[1].option[0].describ -r
 实施变更管理
echo "${data}"|jq .data.practice_list|jq .[1].option[1].describ -r
 使用镜像
echo "${data}"|jq .data.practice_list|jq .[1].option[2].describ -r
 实施漏洞管理
echo "${data}"|jq .data.practice_list|jq .[1].option[3].describ -r
 实施补丁管理

三、脚本

单选题脚本

#!/bin/env bash
#*************************************
#Author:                1656126280@qq.com
#Email:                 1656126280@qq.com
#Version:               1.0
#Created Time:          2022-08-04 17:36:44
#description:           xxx script
#Copyright© 2016-2022   All Rights Reserved
#*************************************

source /etc/profile

data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question'   -H 'authority: app3audc5201856.h5.xiaoeknow.com'   -H 'pragma: no-cache'   -H 'cache-control: no-cache'   -H 'accept: application/json, text/plain, */*'   -H 'x-requested-with: XMLHttpRequest'   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'   -H 'content-type: application/x-www-form-urlencoded'   -H 'origin: https://app3audc5201856.h5.xiaoeknow.com'   -H 'sec-fetch-site: same-origin'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-dest: empty'   -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a60334e2f_lfE62mBD?show_title=0'   -H 'accept-language: zh-CN,zh;q=0.9'   -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%221805eb1a77c4c4-09b6d8087fee2a-3e604809-2073600-1805eb1a77d976%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%22182583ccd22867-0f956ea9a9ba2-3e604809-2073600-182583ccd23981%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; shop_version_type=4; xiaoe_loading_show=1; ko_token=685c3b778be5407b7cad4e3c16c5a351; dataUpJssdkCookie={"wxver":"","net":"","sid":""}; logintime=1659601444'   --data 'bizData%5Bpractice_id%5D=wb_5e69a60334e2f_lfE62mBD&bizData%5Bjoin_id%5D=uwb_62eb7fb493cc7_vpsNd0yHPQ&bizData%5Bstart%5D=0&bizData%5Bend%5D=9'   --compressed| jq .)

pravtice_num=$(echo "$data"| jq .data.practice_num)

data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question'   -H 'authority: app3audc5201856.h5.xiaoeknow.com'   -H 'pragma: no-cache'   -H 'cache-control: no-cache'   -H 'accept: application/json, text/plain, */*'   -H 'x-requested-with: XMLHttpRequest'   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'   -H 'content-type: application/x-www-form-urlencoded'   -H 'origin: https://app3audc5201856.h5.xiaoeknow.com'   -H 'sec-fetch-site: same-origin'   -H 'sec-fetch-mode: cors'   -H 'sec-fetch-dest: empty'   -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a60334e2f_lfE62mBD?show_title=0'   -H 'accept-language: zh-CN,zh;q=0.9'   -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%221805eb1a77c4c4-09b6d8087fee2a-3e604809-2073600-1805eb1a77d976%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%22182583ccd22867-0f956ea9a9ba2-3e604809-2073600-182583ccd23981%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; shop_version_type=4; xiaoe_loading_show=1; ko_token=685c3b778be5407b7cad4e3c16c5a351; dataUpJssdkCookie={"wxver":"","net":"","sid":""}; logintime=1659601444'   --data "bizData%5Bpractice_id%5D=wb_5e69a60334e2f_lfE62mBD&bizData%5Bjoin_id%5D=uwb_62eb7fb493cc7_vpsNd0yHPQ&bizData%5Bstart%5D=0&bizData%5Bend%5D=${pravtice_num}"   --compressed| jq .)

for i in echo "$data" | jq .data.practice_list| jq "keys" -r|grep -Eio "[0-9]{0,11}"
do

    let timu_num=${i}+1
    timu=$(echo "$data"| jq .data.practice_list| jq .[${i}].describ -r|sed 's###g'|sed 's###g')

    echo "##${timu_num}.${timu}"

    for ii in echo "$data"| jq .data.practice_list| jq .[${i}].option |jq "keys" -r|grep -Eio "[0-9]{0,11}"
    do
        let option_num=${ii}+1
        option=$(echo "$data"| jq .data.practice_list| jq .[${i}].option[${ii}].describ -r)
        if [ ${ii} -eq 0 ];then
            echo "A ${option}"
        elif [ ${ii} -eq 1 ];then
            echo "B ${option}"
        elif [ ${ii} -eq 2 ];then
            echo "C ${option}"
        elif [ ${ii} -eq 3 ];then
            echo "D ${option}"
        elif [ ${ii} -eq 4 ];then
            echo "E ${option}"
        elif [ ${ii} -eq 5 ];then
            echo "F ${option}"
        elif [ ${ii} -eq 6 ];then
            echo "G ${option}"
        elif [ ${ii} -eq 7 ];then
            echo "H ${option}"
        fi
    done
    echo " "
    echo ""
    echo " "
    timu_num=""
    option_num=" "
done

多选题脚本

#!/bin/env bash
#*************************************
#Author:                1656126280@qq.com
#Email:                 1656126280@qq.com
#Version:               1.0
#Created Time:          2022-08-04 17:36:44
#description:           xxx script
#Copyright© 2016-2022   All Rights Reserved
#*************************************

source /etc/profile

data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question' \
  -H 'authority: app3audc5201856.h5.xiaoeknow.com' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659600931592_jztpdl"}; logintime=1659606033' \
  -H 'origin: https://app3audc5201856.h5.xiaoeknow.com' \
  -H 'pragma: no-cache' \
  -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a4ce1e626_8KxgBZn5?show_title=0' \
  -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36' \
  -H 'x-requested-with: XMLHttpRequest' \
  --data 'bizData%5Bpractice_id%5D=wb_5e69a4ce1e626_8KxgBZn5&bizData%5Bjoin_id%5D=uwb_62eb802595b82_uXAHmnnnxs&bizData%5Bstart%5D=0&bizData%5Bend%5D=9' \
  --compressed| jq .)

pravtice_num=$(echo "$data"| jq .data.practice_num)

data=$(curl -s  'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question' \
  -H 'authority: app3audc5201856.h5.xiaoeknow.com' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659600931592_jztpdl"}; logintime=1659606033' \
  -H 'origin: https://app3audc5201856.h5.xiaoeknow.com' \
  -H 'pragma: no-cache' \
  -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69a4ce1e626_8KxgBZn5?show_title=0' \
  -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36' \
  -H 'x-requested-with: XMLHttpRequest' \
  --data "bizData%5Bpractice_id%5D=wb_5e69a4ce1e626_8KxgBZn5&bizData%5Bjoin_id%5D=uwb_62eb802595b82_uXAHmnnnxs&bizData%5Bstart%5D=0&bizData%5Bend%5D=${pravtice_num}" \
  --compressed| jq .)

for i in echo "$data" | jq .data.practice_list| jq "keys" -r|grep -Eio "[0-9]{0,11}"
do

    let timu_num=${i}+1
    timu=$(echo "$data"| jq .data.practice_list| jq .[${i}].describ -r|sed 's###g'|sed 's###g')

    echo "##${timu_num}.${timu}"

    for ii in echo "$data"| jq .data.practice_list| jq .[${i}].option |jq "keys" -r|grep -Eio "[0-9]{0,11}"
    do
        let option_num=${ii}+1
        option=$(echo "$data"| jq .data.practice_list| jq .[${i}].option[${ii}].describ -r)
        if [ ${ii} -eq 0 ];then
            echo "A ${option}"
        elif [ ${ii} -eq 1 ];then
            echo "B ${option}"
        elif [ ${ii} -eq 2 ];then
            echo "C ${option}"
        elif [ ${ii} -eq 3 ];then
            echo "D ${option}"
        elif [ ${ii} -eq 4 ];then
            echo "E ${option}"
        elif [ ${ii} -eq 5 ];then
            echo "F ${option}"
        elif [ ${ii} -eq 6 ];then
            echo "G ${option}"
        elif [ ${ii} -eq 7 ];then
            echo "H ${option}"
        fi
    done
    echo " "
    echo ""
    echo " "
    timu_num=""
    option_num=" "
done

判断题脚本

data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question' \
  -H 'authority: app3audc5201856.h5.xiaoeknow.com' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659600993498_rmilrr"}; logintime=1659606554' \
  -H 'origin: https://app3audc5201856.h5.xiaoeknow.com' \
  -H 'pragma: no-cache' \
  -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69982857d44_HcXQxLDv?show_title=1' \
  -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36' \
  -H 'x-requested-with: XMLHttpRequest' \
  --data 'bizData%5Bpractice_id%5D=wb_5e69982857d44_HcXQxLDv&bizData%5Bjoin_id%5D=uwb_62e88ef21dd79_uCBLskpNJe&bizData%5Bstart%5D=0&bizData%5Bend%5D=9' \
  --compressed|jq .)

pravtice_num=$(echo "$data"| jq .data.practice_num)

data=$(curl -s 'https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practices/get_paper_question' \
  -H 'authority: app3audc5201856.h5.xiaoeknow.com' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'cookie: sensorsdata2015jssdkcross=%7B%22%24device_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%7D; sa_jssdk_2015_app3audc5201856_h5_xiaoeknow_com=%7B%22distinct_id%22%3A%2218257681c4c39e-0390a33cc29205-c4e7526-2073600-18257681c4dcfe%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%7D; ko_token=99b1450fc1b8cba28db705f4462ad155; xiaoe_loading_show=1; shop_version_type=4; dataUpJssdkCookie={"wxver":"","net":"","sid":"1659600993498_rmilrr"}; logintime=1659606554' \
  -H 'origin: https://app3audc5201856.h5.xiaoeknow.com' \
  -H 'pragma: no-cache' \
  -H 'referer: https://app3audc5201856.h5.xiaoeknow.com/evaluation_wechat/practice/enter/wb_5e69982857d44_HcXQxLDv?show_title=1' \
  -H 'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36' \
  -H 'x-requested-with: XMLHttpRequest' \
  --data "bizData%5Bpractice_id%5D=wb_5e69982857d44_HcXQxLDv&bizData%5Bjoin_id%5D=uwb_62e88ef21dd79_uCBLskpNJe&bizData%5Bstart%5D=0&bizData%5Bend%5D=${pravtice_num}" \
  --compressed|jq .)

for i in echo "$data" | jq .data.practice_list| jq "keys" -r|grep -Eio "[0-9]{0,11}"
do
    let timu_num=${i}+1
    timu=$(echo "$data"| jq .data.practice_list| jq .[${i}].describ -r|sed 's#<p>##g'|sed 's#</p>##g')

        echo "##${timu_num}.${timu}"
        echo "A &#x6B63;&#x786E;"
        echo "B &#x9519;&#x8BEF;"

        echo " "
        echo "<br>"
        echo " "
        timu_num=""
        option_num=" "
done

四、题库整理

信息安全应用工程师(高级)考试-12期

Original: https://www.cnblogs.com/linuxshare/p/16551090.html
Author: 爱折腾的大臭臭
Title: 用shell抓取某考试试题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573858/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 内存错误和服务器内存RAS功能-DELL篇-1

    简介 内存子系统错误是现代计算系统中最常见的一些错误类型。了解内存错误是如何发生的以及如何预防或避免它们可能是一个复杂的话题–在过去30年里,这个话题挑战了无数的行业研…

    Linux 2023年6月7日
    0142
  • Python代码模板

    #!/usr/bin/env python -*- encoding: utf-8 -*- class ClassName: def __init__(self, arg1, ar…

    Linux 2023年6月14日
    095
  • 防火墙NAT+DHCP+ACL+ACAP

    任务要求: SwitchA作为有线终端网关与DHCP Server,为无线终端与有线终端分配IP地址,并配置ACL访问控制列表控制不同用户的访问权限,客户机只能跟DMZ区域服务器互…

    Linux 2023年6月7日
    084
  • shell加密

    如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1、加密 2、设定过期时间,下面以shc工具为例说明: 一、下载安装shc工具s…

    Linux 2023年5月28日
    088
  • 面试连环炮系列(二十️五):RocketMQ怎么保证消息不丢失

    A. 从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失。 B. 从Broker的视角来看:如果消息已经存在Broker…

    Linux 2023年6月6日
    0148
  • Docker快速部署clickhouse

    Docker快速部署clickhouse Clickhouse特点 完备的DBMS:不仅是个数据库,也是个数据库系统 列存储和数据压缩:典型的olap数据库特性 向量化并行:利用C…

    Linux 2023年6月8日
    0100
  • short, int, long, long long各个类型的范围

    类型名称 字节数 取值范围 signed char 1 -2^7 ~ 2^7-1 -128~+127 short int 2 -2^14 ~ 2^14-1 -32768~+3276…

    Linux 2023年6月8日
    0114
  • vert.x-快速入门

    vert.x是Eclipse软件基金会顶级java开源项目之一,它基于netty的、运行在jvm之上的、支持多种编程语言的高性能异步、非阻塞、响应式全栈java web框架。它在t…

    Linux 2023年6月8日
    0117
  • VirtualAlloc加载shellcode免杀一点记录

    一个很好的学习网站 推荐一下: https://docs.microsoft.com/zh-cn/windows/win32/api/ 0x01 VirtualAlloc Virt…

    Linux 2023年5月28日
    083
  • Tomcat

    Tomcat Tomcat tomcat简介 tomcat的用处 部署tomcat 测试访问 访问Host Manager界面 访问Server Status tomcat简介 T…

    Linux 2023年6月6日
    0137
  • SpringBoot-MVC自动配置原理

    MVC自动配置原理 5.1 官网阅读 在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。 只有把这…

    Linux 2023年6月14日
    0109
  • Elasticsearch7.X 安装(CentOS7)

    需要Java环境最低1.8起步 Elasticsearch时隔三年出来了8.0版本,最低需要JDK17 一、 获取Elasticsearch7.x安装包 获取链接 Elastics…

    Linux 2023年6月13日
    0116
  • Guava 内存缓存的使用

    一、概述 guava⽬前有三种刷新本地缓存的机制: expireAfterAccess:当缓存项在指定的时间段内没有被读或写就会被回收。 expireAfterWrite:当缓存项…

    Linux 2023年6月16日
    0120
  • sed高阶用法

    a 追加 [root@localhost ~]# cat test hello world jjjd aaaaaaa //向第二行后面追加’hi world’ [root@loca…

    Linux 2023年6月13日
    0107
  • 怎么用vscode创建工程

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/x2OXMTaLlxb_Os7NDHrKsg …

    Linux 2023年6月6日
    0116
  • 微信双开

    1、新建TXT文档 2、右击微信,点击属性,查看目标,复制目标路径 然后在txt文档写下如下内容 TASKKILL /F /IM wechat.exestart “&#…

    Linux 2023年6月13日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球