车智赢app请求参数解析
app:车智赢-v3.13.0
接口:https://dealercloudapi.che168.com/tradercloud/sealed/login/login.ashx
解析流程:该app有root检测,但是只检测无对应措施,也无双向验证,可以正常抓包请求,经过请求发现,_sign,udid,pwd三个参数有做加密,同样使用jadx进行反编译
直接搜索接口地址,直接进去查看,在本页搜索LOGIN_URL看一下有谁调用,loginByPassword方法创建了一个post请求,视乎直接对密码进行md5加密,我们直接查看一下encodeMD5方法
直接手动写个md5加密进行验证,发现和抓包到的加密密码一致
1234567import hashlibobj = hashlib.md5()obj.update("123456".encode('utf-8'))res = obj.hexdigest()print(res)# e10adc3949ba59abbe56e057f20f883e
也可以再hook一下loginByPass ...
安卓抓包整理与归纳
文章摘抄自看雪平台 misskings 大佬的文章 [原创]android抓包学习的整理和归纳-Android安全-看雪-安全社区|安全招聘|kanxue.com
抓包方式1、hook app业务层,根据业务代码逻辑找到触发请求的函数,比如按钮触发,或者触发数据上报时的提示框等方式。分析后找到发送数据的地方hook打印。
优点:不受app的防抓包手段的影响,只要能hook到就能抓到包。
缺点:必须分析app找关键点,并且每个不同的请求都要找对应的触发函数,效率太慢。
2、系统框架层的hook。直接hook系统源码发送和接受数据的地方。
优点:可以直接省略掉业务层的分析。因为业务层不论逻辑怎么样最终都是调用系统的或者是第三方的库来进行数据传输。并且通用性更好。基本不用修改就可以抓很多app的包。并且可以在这里直接打印堆栈回溯请求触发的函数,提高分析的效率。同样不受防抓包手段影响。
缺点:hook出来的抓包数据不便于我们分析和筛选。只能在日志中查找对应的数据,分析数据包会比较繁琐。简单的需求或者是溯源时使用比较好
3、中间人抓包,使用charles、burp等抓包工具进行拦截,中间人抓包在 ...
艺恩数据ob混淆DES响应体加密解析
网址:https://www.endata.com.cn/BoxOffice/BO/Year/index.html
解析流程响应体是一堆看不懂的英文加数字,打上xhr断点查看
再ajax请求这里,响应成功后对数据进行梳理,这里是一个三元运算,解开来回好看一点
11 == (e = "{" == e[0] ? JSON.parse(e) : JSON.parse(webInstace.shell(e))).Status || 200 == e.Code ? r(e.Data) : 200 == e.code ? r(e.data) : a(e.Msg)
这里可以这样拆解:
123451 == (e = "{" == e[0] ? JSON.parse(e) : JSON.parse(webInstace.shell(e))).Status || 200 == e.Code ? r(e.Data) : 200 == e.code ? r(e.data) : a(e.Msg)
再拆,先走e里面的条件,因为e是响应体,所有 ...
安居客滑块验证码AES加密解析
网页链接:https://www.anjuke.com/captcha-verify/?callback=shield&from=antispam
请求接口:1.https://anjuke.com/captcha/getInfoTp
2.https://anjuke.com/captcha/checkInfoTp
加密参数:请求参数dInfo,响应参数info,请求参数data
请求接口分析请求参数:
响应体:
sessionId通过搜索可以发现是隐藏在html里面
dinfo字段通过搜索,可以找到对应的加密方式
两个参数和对应的加密函数,一个是请求头信息,一个是sessionid,加密方式是AES的cbc模式,iv偏移值是获取sessionid的奇数位字符
使用python的Crypto模块进行加密获取
123456789101112131415161718from urllib.parse import quote_plusfrom Crypto.Cipher import AESfrom Crypto.Util.Padding im ...
贝壳登录webpack打包&RSA加密
网址:https://sz.ke.com/
接口:https://clogin.ke.com/authentication/authenticate
抓包分析:请求体中看上去有三个字段做了加密,dataId和loginTicketId貌似是固定,password肯定是我们首要解决的目标
解析流程我们从发起程序处开始跟栈,直接去看一下这个方法,来到这里后 上面有很明显的加密方法,我们打上断点进来
在这里发现 010001 publickey等关键字,猜测应该是rsa加密,我们进去看一下这个方法
进来 来到这里,我们看一下 getkey方法,发现断点不会进来,说明key已经生成了,我们看一下 nt方法,我们刷新页面,点击登录,能发现公钥已经获取到了
这里的rsa加密也没有做什么骚操作,直接拿着公钥加密就好了
剩下的两个参数 loginTicketId dataId 都由服务器返回
七麦数据analysis参数js混淆拦截器解析
网址:https://www.qimai.cn/rank
解析流程不难看出哪个参数需要解密,关键字搜索不到,直接打上xhr断点尝试
再reques堆栈中发现axios拦截器,同时这个堆栈也是参数加密前的最后一个堆栈
t当中有六个拦截器,两个为一组,猜测第一个拦截器是再请求之前做了处理,点进去查看一下
这个拦截器中会进来很多个请求,找到我们需要的那个接口
这一段代码重点是a和e,a是将请求体中的参数进行组合拼接,如:36cnfreeiphone,然后再进行base64加密,然后再加上请求体中的数据, e参数是先进行处理转字节组合,然后再进行base64加密,d参数固定
123e = (0,i[jt])((0,i[qt])(a, d))// 改写一下ee = cv(oZ(a, "xyz517cda96abcd"));
直接扣代码处理
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 ...
网易云m4a音频链接获取请求头RSA加密
网址:https://music.163.com/#/song?id=186453
解析流程通过歌曲的id获取歌曲的原链接
这是请求接口,很显然params和encSecKey是我们需要获取的,复制链接打上xhr断点,跟栈
断点打到这里,查看bMs8k是怎么一回事
控制台将几个参数都打印出来,一眼rsa加密
查看window.asrsea()方法,发现果然是rsa加密,直接扣代码,补全即可
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413 ...
油联合伙人appfrida获取X-Sign参数
app:油联合伙人v1.4
接口:https://chinayltx.com/app/api/v1/partnerLogin/login
解析流程该app未作双向认证,所以可以直接正常抓包,通过抓包分析,可以看得出来,密码是做了加密,请求头中的X-Sign参数也做了相应加密
在此使用jadx进行反编译,搜索关键字“password”,都可以点进去看一下,我们直接看第三个,第三个进去发现是路由,也正好是我们接口的路径,我们再查找用例,看一下是谁调用了
这里应该是发起请求,查找用例找不到,我们直接搜索loginWithToken,很明显最后一个更符合一点
进去后发现这里是一个构造方法,我们再看下谁调用了setPwd方法,直接查找用例,只有一个,我们直接进去看一下是什么
setPwd方法传入了一个经过md5加密后的参数,我们直接看md5方法,直接hook他,看下传入了什么参数
对照一下,应该就是对密码进行了md5加密,对应的X-Sign参数也获取到了,经过测试后,应该是拼接了时间戳和密码的第二位往后的字符串以及加密后的密码
将逻辑改写成py代码获取参数即可请求登 ...
金华市国土局二手房字体加密和字段加密
网页链接:https://www.jhtmsf.com
接口地址:https://www.jhtmsf.com/House/GetPageForRoom
加密字段:请求头X-Sign和字体
请求头X-Sign字段解析
搜索x-sign字段,查找加密函数
genSign方法传入url和请求体,一个很简单的随机凭借字符串加密,将其扣取或者改写成python代码即可
1234567891011121314151617181920212223242526def get_sign(url, data): pn = url key = ['_', '-', ',', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l' ...
福建省公共资源交易中心请求参数AES加密解析
123# 网页链接 https://ggzyfw.fj.gov.cn/business/list# 数据接口 https://ggzyfw.fj.gov.cn/FwPortalApi/Trade/TradeInfo# 加密字段 请求头中的portal-sign 和 响应数据中的 Data
portal-sign字段解析
搜索加密字段portal-sign,找到对应的加密函数,打断点查看加密流程
将请求体放入f.getSign()函数中进行加密,查看该函数
该函数是将固定字符串和请求体中的部分键值对拼接,然后使用md5加密成32位字符串,可以将该函数扣取出来,补全既可
123456789101112131415161718192021222324252627282930function u(t, e) { return t.toString().toUpperCase() > e.toString().toUpperCase() ? 1 : t.toString().toUpperCase() == e.toString().toUpperCase() ...