获取登陆的实际地址

本文介绍了一款App的登录过程抓包分析方法,通过Fiddler工具捕获HTTP/HTTPS请求,详细解析了登录请求参数及响应内容,并给出了具体的Python代码实现。
部署运行你感兴趣的模型镜像

这是一款app,同样使用fiddler进行抓包,抓包之前需要配置手机代理,可自行找教程。

抓包前可以禁用其他app的wifi流量,这样确保所有请求都是该app发出的,当然fiddler只能抓取HTTP/HTTPS,如果要抓取TCP/UDP的需要WireShark。

当然这款app可以使用fiddler抓取。在手机上登陆后,按用户名全局搜索,如下图


( ⊙ o ⊙ )!高亮咋没有了,算了,将就着看吧,选中的请求是第一个出现用户名的,可以看到响应内容明显是登陆成功后的,但是在app打开时出现的请求ip并不是这个,而且登陆时填写了三个参数,这个登陆请求只提交了两个,于是按照这个ip全局搜索。


这次又高亮了,查看第一个高亮,发现响应内容中出现了那个ip,也有登陆填写的第三个参数。

于是可以写代码了:

self.session = self.gen_session()
url = 'http://app.******.com/v1/Invite?Invite=%s' % self.invite
headers = {
    "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; CHE-TL00H Build/HonorCHE-TL00H)",
    "Connection": "Keep-Alive",
    "Accept-Encoding": "gzip",
}
r = self.session.get(url, headers=headers)
r_dict = demjson.decode(demjson.decode(r.text))
self.web = r_dict.get('web')
if not self.web:
    print ("error with get web url, %s" % r.text)
    exit()
login_url = '%svalidate' % self.web
params = {
    "psw": self.pass_word,
    "user": self.user_name,
}
r = self.session.get(login_url, params=params, headers=headers)
上面的代码是登陆部分的,只是类里面的一个login方法

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在 Java 中可以使用`HttpClient`来模拟网页地址获取 Cookie。以下是一个示例代码: ```java import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.CookieStore; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class LoginAndGetCookie { public static void main(String[] args) { // 创建一个 Cookie 存储对象 CookieStore cookieStore = new BasicCookieStore(); // 创建 HttpClient 并关联 Cookie 存储对象 CloseableHttpClient httpClient = HttpClients.custom() .setDefaultCookieStore(cookieStore) .build(); // 录页面的 URL String loginUrl = "https://example.com/login"; // 创建 HttpPost 请求 HttpPost httpPost = new HttpPost(loginUrl); // 设置请求参数(账号和密码) List<NameValuePair> params = new ArrayList<>(); params.add(new BasicNameValuePair("username", "your_username")); params.add(new BasicNameValuePair("password", "your_password")); try { // 设置表单实体 httpPost.setEntity(new UrlEncodedFormEntity(params)); // 执行请求 HttpResponse response = httpClient.execute(httpPost); // 处理响应 if (response.getStatusLine().getStatusCode() == 200) { // 获取响应内容 String responseBody = EntityUtils.toString(response.getEntity()); System.out.println("录成功,响应内容:" + responseBody); // 获取 Cookie List<Cookie> cookies = cookieStore.getCookies(); for (Cookie cookie : cookies) { System.out.println("Cookie 名称:" + cookie.getName() + ",值:" + cookie.getValue()); } } else { System.out.println("录失败,状态码:" + response.getStatusLine().getStatusCode()); } } catch (IOException e) { e.printStackTrace(); } finally { try { // 关闭 HttpClient httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } } ``` ### 代码说明 1. **创建`CookieStore`**:用于存储从服务器返回的 Cookie。 2. **创建`HttpClient`**:并关联`CookieStore`,这样可以自动处理 Cookie。 3. **创建`HttpPost`请求**:设置录页面的 URL 和请求参数(账号和密码)。 4. **执行请求**:发送录请求并处理响应。 5. **获取 Cookie**:从`CookieStore`中获取服务器返回的 Cookie。 ### 注意事项 - 请将`https://example.com/login`替换为实际录页面 URL。 - 请将`your_username`和`your_password`替换为实际的账号和密码。 - 确保你已经添加了`HttpClient`的依赖,如果你使用的是 Maven 项目,可以在`pom.xml`中添加以下依赖: ```xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值