背景:
需要爬取公司内网的一些图片,然后直接登录地址模拟无效,Fiddler抓包后发现登录过程中有多次重定向和cookie变化,分析后发现是基于saml的单点登录。记录一下。
先说明一下什么是SAML (Security Assertion Markup Language)
安全断言标记语言,断言就是做出判断的语言,如‘A有权限访问网站B’
以往的访问是在client(一般是browser)和serviceProvider(SP,服务提供商,是指利用IdP的身份管理功能,为用户提供具体服务的应用)之间发生,基于SAML的单点登录,引入了一个identityProvider(IDP)用来做身份认证。整个访问过程大概是这样:
1. client访问SP
2. SP给client返回saml认证请求,并post到IdP
3. IdP给client返回登录页面,client填写登录信息提交给IdP
4. IdP认证后返回给client一个认证相应,并post到SP
5. SP返回client请求的资源
大概就是这样一个过程,接下来就是不断的去抓包,然后模拟整个过程。
有个小技巧就是,先找到需要获取的资源,然后看它的request中需要哪些cookie、formData,然后再一步一步到推回去。
代码见下:
import requests
from bs4 import BeautifulSoup
# function definition: 发起get请求
def getRequest(session, url, header):
response = session.get(url=url, headers=header, verify=False)
return response, session
# function definition: 发起post请求
def postRequest(session, url, data, header):
response = session.post(url=url, data=data, headers=header, verify=False)

本文介绍了如何使用Fiddler抓包工具分析并模拟基于SAML的单点登录过程。在尝试爬取公司内网图片时,发现登录涉及多次重定向和cookie变化。SAML是一种安全断言标记语言,通过身份认证提供单点登录服务。抓包过程中,从客户端到服务提供者,再到身份提供者,详细解析了每个步骤。最后分享了通过观察所需资源的请求信息来逐步推导登录流程的技巧,并提供了相关代码。
最低0.47元/天 解锁文章
2304

被折叠的 条评论
为什么被折叠?



