图特供应链平台模拟登录

667 阅读2分钟

前天发布的生物谷模拟登录提到会话保持,今天搞一下这个图特的模拟登录,做电商的应该比较熟悉这个东西,网站地址

1,还是先来欣赏一下板砖专用图

image.png

2,话不多说直接进入主题先注册一个账号,看一下接口是什么情况登录入口

image.png

2.1,可见这里有验证码校验,首先就能想到这里需要会话保持用来保持验证码同步问题,这里结束之后详细解释一下(会话保持),还有就是微信登录,这条路咱们当然不走。接着输入错误账号向下看看接口是什么样子

image.png 2.2,经过一次请求发现响应了三个接口,第一个不知道是干什么用的,也看不出来有价值的东西来,再看第二个接口

image.png 2.3,第二个接口返回的是用户名密码错误,请求参数中有明文账号,加密密码,验证码,这个密码加密搭眼一瞧因该是个base64加密,拿走解析一下看看效果

image.png

果然密码就是通过base64进行的加密,那么我们之后使用python对明文密码加密就ok了

2.4,再看第三个接口

image.png 请求参数是一个时间戳,响应是一个图片验证码,ok现在验证码接口页有了,登录接口也有了就可以发送模拟请求了。

3,我们先请求异界登录页面获取cookies,这里需要使用到session。

def login():
    headers = {
        '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',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Cache-Control': 'no-cache',
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'Sec-Fetch-Dest': 'document',
        'Sec-Fetch-Mode': 'navigate',
        'Sec-Fetch-Site': 'none',
        'Sec-Fetch-User': '?1',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
    }

    response = sess.get('https://www.hspcn.com/Hsp/HspUserApply/login', headers=headers)
    
    
    
if __name__ == '__main__':
    sess = requests.session()

    login()

3.1,然后再请求验证码图签接口获取验证码,获取验证码图片再使用ocr进行验证码识别

params = {
    't': f'{int(time.time()*1000)}',
}
response = sess.get('https://www.hspcn.com/home/index/getCaptchaPic', params=params)
ocr = ddddocr.DdddOcr()
code = ocr.classification(img_bytes=response.content)
print(code, flush=True)

3.2,最后就是对登录接口发起请求,因为base64加密是不变的所以直接在线加密好密码使用就可以就不需要再多次一举去写一个python加密了

data = {
    'usercode': '账号',
    'PASS_HASH': 'base64之后的密码',
    'loginarea': '',
    'YZM': f'{code}',
    'newusertype': '1',
    'wxUnionid': '',
}

response = sess.post('https://www.hspcn.com/Hsp/HspUserApply/admin', data=data)

4,ok,跑一下

image.png 可见到这里就登录成功了,可以拿sess去发其他请求也可以取出来当前cookies。