由于疑似存在安全漏洞,CURL 调用被阻止

由于疑似存在安全漏洞,CURL 调用被阻止

我正在尝试提取城市列表,https://www.lalpathlabs.com/find-a-lab.aspx通过选择不同的州可以逐个提取这些城市。

为了通过 shell 程序实现这一点,我检查了网页以找到用于获取数据的 URL。现在我尝试通过 curl 来模拟它。

curl -X POST https://www.lalpathlabs.com/CascadingDropdown.asmx/BindCityDetails -d '{knownCategoryValues: "State:delhi-ncr;", category: "City"}'

但是它返回以下错误:

本网站已做好防范在线攻击的准备。您的请求因可疑行为而被阻止

该数据是公共数据 - 我应该如何在 curl 中模拟此调用?

答案1

我得到了它!

实际上,我缺少设置其他标题元素,这些元素具有特定于会话的安全令牌。

检查以下命令中的第二行,这是我错过的。

curl 'https://www.lalpathlabs.com/CascadingDropdown.asmx/BindCityDetails' 

-H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'X-Requested-With: XMLHttpRequest' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36' -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: */*' -H 'Origin: https://www.lalpathlabs.com' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-Mode: cors' -H 'Referer: https://www.lalpathlabs.com/find-a-lab.aspx' -H 'Accept-Language: en-US,en;q=0.9' -H 'Cookie: ASP.NET_SessionId=q5xjgrexqpj2ouq2tyvjbgxn; selectedCity=delhi; _gcl_au=1.1.468492529.1589600556; _ga=GA1.2.1259164458.1589600556; _gid=GA1.2.562777668.1589600556; _hjid=b605df81-acc8-43d6-bf57-558566a7c608; _nv_vi_vt=1; nv_push_error=201; WZRK_G=c7e8252ae2b64c02a5bd8f02a1aa8eb6; _fbp=fb.1.1589641923307.1530780058; _hjIncludedInSample=1; _hjAbsoluteSessionInProgress=1; _nv_ttsOnpage_5193={"d":0,"h":0,"m":11,"s":7,"ms":317}; _nv_pv=4; _nv_utm=209183885.1589641924.4.1.utmsrc=google|utmccn=(not set)|utmcmd=organic|utmctr=(not provided)|utmcct=(not set)|gclid=(not set); _nv_uid=209183885.1589641924.1bfc3e00-b238-44d8-bddc-2cf3698f3f74.1589642341.1589642349.4; WZRK_S_675-RZ7-6Z5Z=%7B%22p%22%3A4%2C%22s%22%3A1589641929%2C%22t%22%3A1589642356%7D; _gat=1; _nv_ts=14373'

--data-binary '{"knownCategoryValues":"State:andhra-pradesh;","category":"City"}' --compressed

最好的方法是,在浏览器开发者工具(例如 chrome 开发者工具)中检查 URL,然后将 URL 复制为“cURL”命令。

相关内容