逆向18-全国建筑
1. 网站详情

2. 分析
2.1 方法一 直接python
根据响应回来的加密数据可以看出 我们需要对响应进行解密
思路一:搜索关键字decrypt(

详细分析

由上图 我们得知了
n -> VYip4SbJGijML2gT43kzacJUaaNaeaVUGRfmSh9vavP1XnQMlSJfvvUx8faGYWK......
f -> jo8j9wGw%6HbxfFn
m -> 0123456789ABCDEF

这里出现一个问题 死活过不去啊,咋办?

结果:

我们搜索之后,可以看到在下面的代码中 f 被修改了

总代码
python
import requests
import binascii
import base64
from Crypto.Cipher import AES
cookies = {
'Hm_lvt_b1b4b9ea61b6f1627192160766a9c55c': '1728730765',
'Hm_lpvt_b1b4b9ea61b6f1627192160766a9c55c': '1728730765',
'HMACCOUNT': '5B3A86709F76EACE',
}
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
# 'Cookie': 'Hm_lvt_b1b4b9ea61b6f1627192160766a9c55c=1728730765; Hm_lpvt_b1b4b9ea61b6f1627192160766a9c55c=1728730765; HMACCOUNT=5B3A86709F76EACE',
'Pragma': 'no-cache',
'Referer': 'https://jzsc.mohurd.gov.cn/data/company',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
'accessToken': '',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'timeout': '30000',
'v': '231012',
}
params = {
'pg': '0',
'pgsz': '15',
'total': '450',
}
response = requests.get(
'https://jzsc.mohurd.gov.cn/APi/webApi/dataservice/query/comp/list',
params=params,
cookies=cookies,
headers=headers,
)
# print(response.text)
byte_array = binascii.unhexlify(response.text)
# 如果你需要得到字节列表
byte_list = list(byte_array)
# print(len(byte_list))
byte_array = bytes(byte_list) # 将列表转换为字节数组
base64_string = base64.b64encode(byte_array).decode('utf-8') # 编码为Base64字符串
# print(base64_string)
########################解密############################################
#(1)base64解码
encrypt_date = base64.b64decode(base64_string)
print(encrypt_date)
# (2)解密
# 2.1 确认好解密的参数
key = 'Dt8j9wGw%6HbxfFn'.encode()
iv = "0123456789ABCDEF".encode()
# # 2.2 创建AES对象
aes = AES.new(key, AES.MODE_CBC, iv)
# # 2.3 对数据进行解密
data = aes.decrypt(encrypt_date).decode('utf-8')
print(data)
2.2 方法二:使用扣js的方式

js代码
const CryptoJS = require("crypto-js")
function b(t) {
m = CryptoJS.enc.Utf8.parse("0123456789ABCDEF");
f = CryptoJS.enc.Utf8.parse("Dt8j9wGw%6HbxfFn");
var e = CryptoJS.enc.Hex.parse(t)
, n = CryptoJS.enc.Base64.stringify(e)
, a = CryptoJS.AES.decrypt(n, f, {
iv: m,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
, r = a.toString(CryptoJS.enc.Utf8);
return r.toString()
}
t = '5588a9e126c91a28cc2f6813e3793369c25469a35a79a5541917e64a1f6f6af3b007f2317f40bc5a73d2b225a7bcf520ba04c039d08ae0e89b926b92cf12d835aca3b29576f8c796f1cbf11aff2c75ec6240235cbbe13967d39bb4ce37b9f7d52abef0ad1d1991c542001f347687101405ce70604ed44e79102c29ab72106d30f1b13f2387c974210141c4e722a9692bfdca4e17b7c2ad02ad630a1dfb0fe552b218d4facfebd7df53eb81f22a2938d09d9157a1afcd85500f3603b966c81c6b146e6d04a6389fcfec856929cb8b8617028389968d4a74ea3bb45e416f1ce1313d94ebaa89d1c7851d3574fd899692db6a02c593bb06b729494c069bcc06c5fa2f889316d71d63d131cd513b6aa73dec72fdbb4cbdf488cdb6429c19411f4d624d0a24d288db3b5630941318216ad6c3ab09d0af882d301c3e8c431d7c7ce270354924ad34e4a775ce88715ac9895163f8aa1741170f9af90836aa1df4d3659a2705ceb4832cd571e899fc6293be72da400848493ef9ab9668ab65f848bcd0e16dbcac502675c5cf500f38745c1d44f1c9913645b27f6736c470403039ceeca215a1788494bb8db77c17d1b9af1782b09867d1684bd52adb5acd5574ef20844f3a5f8d60595b4b5252886f4284fc207f522ec9e78157fcec564f9742f4095063d2e91703e78195faf49a7bcf4e9b962d129f798df6cd3638104cd9569fecadd87f4ec9e976ab8f0f59fc84ca7ad9b485f91d39a1c1910e431ce38b0a91bd528aa42142edf76a1532c746fbbaa536a51dc45bef4b9254ddee778505b080f3853f6df27f8f9df326228c5d2360734d00f80ca2b02a5d1fbec1d941313526215e6f4a202ddd459a9da053cd805e5e9fde4ea6b4abd19d70b1969a8a9f0eafeffe84a7e39421ed758fd4abec12600e7d7381723b9b4340e4102cfea6fcb8002642c7511a53b3fcab4ae3cb1220e3146cbf140637c9dc5b20cd032d2ad101e6c2acc4fd12ec13c9cd051ef2b298424375c9ff5cadf3970ccb71940c0869e5476a712b5ebe00b1cafa7374009d4bc023bf03fe2276d3c98ace2df74930f404e8395d0f77e9982c19b5382b64e8b5c7b2768c47c641b4b650ae3795fae5129bab6b0fa40dbc4896bafa55ea4481a414a574fc5bf13263df08b86febc82e075bdb1580785913fa0aaf3f8eb424aaa6d937e0d5b85a045e90ffcf29129f9a9865546d0a8bb87552914ec2005ae52d951e9d64310637f558082ebfbe76caee6d0eaad733b321e10c46cb4c450af652d2f1b579292d894d193b8db2e2bcd244b598a0c6fecec74e854d30d81cf1f36b366adcc6a089ac00a5147b68990e8665408d898553aace68112e85afde1c49d93d2ab5ea5747d40636a6f9089117c949d8e10821d286fd5bc1875a82b10f91d1fdde4ba5d92762a03089999c6d323b09e193d1909250af985c9f4ba83de381bfcb72b6640e1205f0964764aecd7ad0623c3fc5e53eeaa4c860d26b2f8367457bfa9cb6b05756c01bbc70082b184715944a9de661b3c216c36b5792ad83d062ec01df7519408fa201772873ac95acd91732a1cded92a6890f0e950795eca120325c5422a186c869c620cec39a0bc8a42d6cf4e5b52e8df9e4e0150137c817fb2dedb54211075216c13e3aa5399d070db232f41625404f4eefd5d29b425c14a51097d13978efc680580214846d7f19f925d8c52d8f8c78939de69db85521f37ff6e83eb8a9720899ba51e054427d709b388bdf7ba7bc3e82d7f2d97ca07f0e0b16a9ac3154cf128995687ea11809c04ed5957e326f4ebbfb2fad487e42c710fdc7f227755c1807153bfc1d08aca165a845f09a0f8ba5a14cfd1fbb0dacf652617a35e36c51283660f402eee0ad855cbac95acf439a04c3d1947d4fc0d55785e7bfc28de9d44e50c79e55f797197f005523051e82905b9b0f674bbbef57a7ac56f6bf5a567a738b31be69d5e16984b4d6bf3c85fe213141976dfe4e776e60020d717a358ae975859931c63364cd80cf4a17efe4c2e561b69dc9553205f2d609cbbd6d9181b4405823b0782df6fb305fa96ebb3a41334a5e9cbc6423d56d02c244e75080a2f3d79d28d9cf078134658f676b8fa988f05f10a00acb5690a960fa129dc3ee18394436320c62ba4a64feec4c53dbdeb4dc60481063a29fa8d808482958cccfe62a747737ed930ad5502e9abae56b3c51a5277b3f613e7efb8b4b2b875b375ee20ce3038b9aac74aa6d2cfdcd197a796d83626ae5ae2244a479acb296b01f17e45ae31888664a3fe9a24472a6c6dc2a7f6d46dbef82bcdaece68851922770295bdc5feeb1bcf121ab9c133382d031fffe5d060945587be21119a959744d55c2e98dd7402e4ff9b4d627bc71b3e776bc1fd5f92d556b6ba47feda81797e7469ae91807bcff1f161e00832bb12a4729b5ba8090835a50df307b460a10b6881dd7713a14fa642321d07771ae227403a1473a682501f04f9bebd1e9692aeba64b2018212ceba05869556b213cff09d363974b0f5f746140319f825a9c7bc4ffbf8e02fdce6b230d4b08d2f76e8d60b9f15c52df636e6404558a6145faadf8861e22ad564fda3e3f7f4a9f7b45ab1cd15e62e24b1f951cebc3cd9e81e2dcc3a0c0bbb5179b132dd42dc539ba58d7e981cbeb9a2293ef0bf6d475fa184031170745ae329295dcb2a80a02ddd7c3aaa0797a01987200fd7cf04db88b6757f2fbd2041c065288784342a5cf2694bc77d71c7af963f661755beebe2639cd87be732497ad84f5df32a519f8aa95e5cf52b06252ddce4b6faa8f88f0ac5bfee7e955ae03ae7d91f1f97d83cce3ed6989950d4de5c5924aab640140c13f24539a963f9b3f0964f4add1036ecfaad7654bd158ce7a41fbe00966312df875581050b32d4b6ae90463bcb96509762f0b02633754dbdee701750946a445c09b0e78cd7e83773f546713c6bd248f31d8b84b32dd8ce35904b6a963c4e6c5bf920e06eb885bbdfaab938602646d6d4761fc9c6a43c76996eda2cc4d733c2371fbe0d672523afbc971ba853db307c4d2dee99be9a83cada19aed8299908398549c20a1951d6596dd8db3c0f545c6faf167eb7134526e3bf4df44db00494cce0f9363e8df2051c3c854355783e0545826bb23e351e045b1ad2eee3266e344476bb76703f6a0e452d27f07c2e1866f70f1cace15646f7a084dbfd6d68df2231f3bdb9a040744ae54f8d03b6bc2b5881c71f2b350dfc1df1be86d0f7c6f5142d45b2cfd32ac634ebbab3708b05c2d1c89c50d0bb2e15a17b85cf01c08217ff2267128a36008912dcab2b1410a325b73d6b7778c9a9e9f3d50bfda8aa527505f47bf1f7eef4446da7f421168525f0a92a97dfb0d1c4e613fa45ab6e93bf9b87055d0c84d4aa9d404e40762f8c7eb60736a7597d76a8ceea8d29c1a8667a4248ce38051c9cc98b392d43cf078ac5e885b1dbae7c4b663336151caa29f80c43ce997e52a0f6048e37728f054c32de77e5bb88879ee7a1c92de10d4675206608371d08f295bfe9c402687d5239ad5b529433579b28e36aeda1a83dd007ec78bbbe012d1f2ae13b14d4a88c4758e810438e4c3961a0e9d7b0e7dc7b080cef334037b3693c69ad625acd6fc26db6730376c3075f10b5a3a8a95914ff85649356dbf06d56f6da2c05b058cc8b5d44b0a6326d33deaf76658a1d3dce9de83b94b8a339ac3e0e3efe55b7a96e06b8a3b422e079b72a0a2062bf6ce498913cde4a87d9d98de17c69fc57a9a7de70884ccd45387f3fc7f75a084a0937e17264f40603f9e763d0c8a9df40b8bedeff308959227c7eed2b3c4a23d4f8acfb8665362a1f204b6d105ce4cecde1e11fe859eff76f381e7c407e9da1854ccf55fef361b1b06c3c454e35c1586aed739ed862aea918d251aaa52d153e7e6ae42a1854a54fda3e811f3d338e617cdcec1bf3da63527bcf00ce08f6ed5af61c46f83c56836b6d9138d7fc66221f3bb761f60fefc8e3aec3f84846bfbf41e4db330899aa7c12e08cb0b624ade2c3dcda2ae3c6d5ce5cc5cb236b9ed0d3b38087d25a5dd8fc4af57948b79c9b41843c168f03988dbbc80a1cbfb6df83f14402f628bcdfa3f0b217b6d253d308800a65bb693a6465d26ab4ea8701d318204b2b03330ae4ca325e17379c543de91cfdb75366b4dd11ac56ebe3cdf08df83acdcdc7cfbf701f8772185a129f289975cfc21811ff7732103759b09b715d9ad4707da4fce9690ff5bb0e5b8a3d0a3dc5d7e5e0d5a367c1bdd56a279e7869dcd7e1a405f97ac9450b60b3e78a7895f974818e222fd85eafb762909665b3cf7b80240f1582750f1cb0c5f980f5ae68218f5c92d32a1b94b085453b7043a99a2af3a63ac4fe47d8ca8349c56c94ba8b41d6cb54549be11ff0ad9732b6644d311c46d93d6f090643244c47d2120002049ca649f8a105797a8a5a9b5222dd2b03d255934e4cd4d7acc182b0069bc5edc5254c9e022f082a1d8cbd16739a4779f678eef74a3dc438d1f1d057ff989459fbb04a2fbb29914234be5676887d0797db0147778a44cf16e38fdf20f09a15b0469b03e7c20af3b0f91dac2c0928cee29a4798048b3b8582b2d6667af2170de488a8a33d84b55acfa1e58673e8f084d9eeb379ac29d09aa42035e16872f8e018f4bd51897750e0efad3d8f4b426ab240274d346c5896698f23ff21efe3e8ebbd9a2cc61c552775f80753a26b995e26a4cfa7822fe6fb8e9b47caac5ab3342e68f9bedbee4e334d48bc7a028d8094bc8ff18808745993d4bccd5778908f5b9a0b535181673a901c27c2109e073e9ae9491b461cfe88f6f3ef94f5703723e753ccb0b6e093e09b249228ec2d91530ae406072bdf9434325dffeea4d3d3051d41fc6c734b476e55082fd1f7fd587f2e0fb2198ebb16d41ea10ed9845b5a4837b8dd5c7f794a02cd6f3367d8812f62d2af2b4c546a0a67a2e6bc1f9c53b13d7e3995ddd83bf943b86e1345a6328e736ac73391d7ae1c98af0badc83e3f3f14e586fd6d8060fc9d9de1622373494743e6dec4b6259dcc7dfbd10e107d6d15fef0a63b82e60c2b6210d88fcb7fbeafe419ee3c095bb11ce478aaf69b739508dcb9a914a63eeddc58060f3563f92f02fb1603c065b8556c424fa0d5e1639a84c9d8bc1b08d5e32f644c49a3d63682ecec568c824c06606c03a5ea48c91ba1ba314ab81f77cec673bf2ed3c4f42e2833151de8a0da099fea0ad74e6fe0a79fca8b2dbf55c818df24681ebba768495174a88f045243547bc1e5d2e97e7c60675bc836c74618109a99d731bcfa928f6f863e295b67f2712eedcf3cf501dba8221ccf375c7690ce22ed4e1cb0662f016827ecfcf59226828958f6a6008289b352084012422f1cc00f883c72a794d0b6bd6f3915da62c06cb0947e38282640045a3bc4833a7e44e31c5ae5121292d00300c12d188a0ce538f10600ef7d3270e4c3cf05f73487dd6bd4c38f6c118375860de6cd286457eb0d0959d9bb7d956f4f783c1feae208186eac2ed70c714c058a7e575dd528f4bb8bf572d461ebe724b5d75eab6e58df85f502e0392c7b4f6a60172ebf485af5194f9a4c707039d1510a99753350b8657e65843ecde49b2912b9023b51c4f9bd3db95a4e933f2a091f72766846a8536e1b359029970659279970f21fce214cae80dda49c1ff11143add73b15c8f5fd2eba1b53ca3553f80ce0d110d19894717db884916941cfa334942025501f37126f86bdb47bf1a118407425286b3f242cca536c2351734c9597e5c111e38c89d3c49b79aba6d5ed34f4b812100062ff5b3d4133f1dafb736dad429d827e74531f3a5b11e502fa58237cd495f6dd15ca3227d0be41e8683a6d606552e5e4be591c071a5bd77c2cd104a74a4ef559f4bd5fba7c70193e1edc14a972328b2225ac194b1a8dd336e1193bd1f544aa53d85174702a59b9e9f92ff04727ee2075dbced0dac590343a58ebe88805fcf86b7164ac8000c4e489473676f86034cee99c04ceb09c596e8d46e0c8fb559580ad530f92a99567259d70abf4c234b3d30c03497821e9aea414b1a8629adedd6d3df8ef1146a379c62da7715ea989056681b8e991019332b60687393846b2b687b7c5e16b12d504c8129ec1a6ea8f555d4d2830cf5454c503356e15bacf4e24505a28f519eae2417f2b5b9d02dda07337f3d5b726e9d4e5115ea7ba1cafeeaa080a74bb822ee7e44dc104635cc65ef7f73c2c502f3d287fa1f60bfbc88cc723464f70095ec0ef46ce9f9ee4ddddf2e36dda1455fd5f9661a534137008e54b5198e8e0e18f95638edbccdb4e8bb3aec5b5977fe225d82b10a30dfe7ddb7975c9ec7e1b89826c480fcfa3ab566aa81cb6eb3670acde1ec031b8fe4f772cda9e3aa90734efcfcea2d228501d6efa9a05ff93293b0e203477dc13ec4d4dc74ac27d89556adb01419ba0e70a44424ff760aa10074c94187c3fb272caf0d59812b8917e5593aa7b4da089c814c7f4bc5da2af6e9b16909a349b6e1d0ab319dc5f983e9fd2e99970ca2d99c1bdac143e3016f0e079c377a'
console.log(b(t))
python 调用
import requests
import execjs
cookies = {
'Hm_lvt_b1b4b9ea61b6f1627192160766a9c55c': '1728730765',
'Hm_lpvt_b1b4b9ea61b6f1627192160766a9c55c': '1728730765',
'HMACCOUNT': '5B3A86709F76EACE',
}
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
# 'Cookie': 'Hm_lvt_b1b4b9ea61b6f1627192160766a9c55c=1728730765; Hm_lpvt_b1b4b9ea61b6f1627192160766a9c55c=1728730765; HMACCOUNT=5B3A86709F76EACE',
'Pragma': 'no-cache',
'Referer': 'https://jzsc.mohurd.gov.cn/data/company',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
'accessToken': '',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'timeout': '30000',
'v': '231012',
}
params = {
'pg': '0',
'pgsz': '15',
'total': '450',
}
response = requests.get(
'https://jzsc.mohurd.gov.cn/APi/webApi/dataservice/query/comp/list',
params=params,
cookies=cookies,
headers=headers,
)
# 解密
js_compile = execjs.compile(open('./03js.js').read())
data_obj = js_compile.call('b', response.text)
print(data_obj)

浙公网安备 33010602011771号