当前位置: 首页 > news >正文

wap手机网站尺寸百度怎么创建自己的网站

wap手机网站尺寸,百度怎么创建自己的网站,成都网站建设 推广行,没公司怎么做网站0x00 前排 最近在练习JS逆向,发现论坛里关于JS逆向的东西都太难, 我这样的菜鸡太难上手。 所以发了这个帖子,记录一下简单点的JS分析。 只是新手练习记录,如文中有理解错误,还请大佬指出。 只记录算法分析过程&#xf…

0x00 前排

最近在练习JS逆向,发现论坛里关于JS逆向的东西都太难, 我这样的菜鸡太难上手。

所以发了这个帖子,记录一下简单点的JS分析。

只是新手练习记录,如文中有理解错误,还请大佬指出。

只记录算法分析过程,不提供成品。

0x01 目标网址

0x02 定位JS

1. 随便输入账号密码验证码,如果是不存在的账号,会直接提示密码错误,如果是是存在的账号,会提示输入验证码,,这里假设是带验证码的,点击登录后,查看提交的参数,可以看到,在登录包里有许多看不懂的加参数,一个个来分析。

55fd2b2273b5a8b4531f72773c469d6e.gif

1.png (69.14 KB, 下载次数: 0)

2019-12-16 17:21 上传

2. 分析下参数

参数

来源

entry

weibo

固定

gateway

1

固定

from

固定

savestate

7

固定

qrcode_flag

false

固定

useticket

1

固定

pagerefer

固定

pcid

yf-826260aed11d*

上次返回

door

1111

验证码

vsnf

1

固定

su

MT*****NjY=

JS计算

service

miniblog

固定

servertime

1576135789

JS计算

nonce

NLUYC0

上次返回

pwencode

rsa2

固定

rsakv

1330428213

上次返回

sp

2395de422727c06*

JS计算

sr

1536*864

固定

encoding

UTF-8

固定

prelt

82

JS计算

returntype

META

固定

其中上次返回是在登陆之前的一次请求中返回的内容

55fd2b2273b5a8b4531f72773c469d6e.gif

2.png (52.65 KB, 下载次数: 0)

2019-12-16 17:22 上传

其他的JS计算也不全是加密,有的只是单纯计算的值,下面一个个找。

3. Ctrl+Shift+F调出搜索面板,本着越生僻越好搜的原则,先搜索prelt,看到只有一个js结果。

点进第一个结果,点花括号格式化一下,Ctrl+F搜prelt,只有两个结果,而且第一个returntype: "TEXT"明显不是要找的,所以第二个上面下断点。

55fd2b2273b5a8b4531f72773c469d6e.gif

11.png (325.01 KB, 下载次数: 0)

2019-12-16 17:22 上传

同时观察断点处,发现f是在上面由makeRequest定义的,所以这里先搜一下看看makeRequest的定义在哪。

55fd2b2273b5a8b4531f72773c469d6e.gif

101.png (385.62 KB, 下载次数: 0)

2019-12-16 17:23 上传

直接找到了加密处,就是makeRequest,可以看到还有其他参数也是在这里生成的,包括固定的一些。在782行这里也下个断点。

4. 重新输入账号密码验证码,点击登录,JS被断了下来。

55fd2b2273b5a8b4531f72773c469d6e.gif

111.png (415.36 KB, 下载次数: 1)

2019-12-16 17:23 上传

直接先把su给扣下来:

e.su = sinaSSOEncoder.base64.encode(urlencode(a));

可以看到参数a是账号,跟进urlencode发现只是一个简单的encodeURIComponent

urlencode = function(a) {

return encodeURIComponent(a)

}

再找sinaSSOEncoder,直接Ctrl+F搜索,找到定义处:

var sinaSSOEncoder = sinaSSOEncoder || {};

这个语句意思是如果sinaSSOEncoder不为空(即转为bool类型不为false),则把sinaSSOEncoder赋值给前面的变量(也是sinaSSOEncoder),如果sinaSSOEncoder为空,则把后面的{}赋值给前面的sinaSSOEncoder,所以这里首先生成了空对象。

所以再找定义处,往下翻一下,看到有两个函数调用了.call(sinaSSOEncoder);,这就是加密对象的定义了,两个函数全部拿走。

继续往下运行,发现对servertime进行了赋值,那就搜一下后面的.servertime =(前面不带对象名,但带上.,后面带上空格和等于号),可以快速定位。

55fd2b2273b5a8b4531f72773c469d6e.gif

1111.png (351.07 KB, 下载次数: 0)

2019-12-16 17:24 上传

这里看到,其实就是一个a循环加2的意思,在这里下个断点,断下来之后可以从右侧Call Stack里看到参数a的来源,找到调用处发现就是上一次请求返回的servertime,也就是说,参数servertime就是上次返回的servertime循环加2,所以这里可以直接在外部语言实现。

下一个参数是sp,在上面的加密处已经看到了sp,大致看到是一个RSA,而且RSA对象的定义已经被扣下来过了,这里没啥要做的了,只是加密的参数要注意看下,一个是上次返回的nonce,一个是计算完的servertime,还有一个是明文密码,再加上其他字符组合成了加密参数。

55fd2b2273b5a8b4531f72773c469d6e.gif

1000.png (428.38 KB, 下载次数: 0)

2019-12-16 17:25 上传

最后一个参数是prelt,这个参数位置在一开始第一次下断点的那里:

f.prelt = preloginTime;

直接搜preloginTime,可以定位到269行:

55fd2b2273b5a8b4531f72773c469d6e.gif

10.png (353.19 KB, 下载次数: 1)

2019-12-16 17:25 上传

这段意思是prelt就是上一次请求的回调函数中new Date减去上一次请求的起始new Date再减去请求返回的exectime,也就是等于上一次请求的本地总耗时减去云端耗时。

5. 参数找完了,到这里已经可以开始改写了。

参数列表如下:

参数

来源

entry

weibo

固定

gateway

1

固定

from

固定

savestate

7

固定

qrcode_flag

false

固定

useticket

1

固定

pagerefer

固定

pcid

yf-826260aed11d

上次返回

door

1111

验证码

vsnf

1

固定

su

MTU1NTU1NTY2NjY=

base64+URL编码 手机号

service

miniblog

固定

servertime

1576135789

以上次返回的为基数,每次+2(从上次请求到提交登录的时间差除以2取整,一般为4~10)

nonce

NLUYC0

上次返回

pwencode

rsa2

固定

rsakv

1330428213

上次返回

sp

2395de422727c06ce

JS计算    RSA加密

sr

1536*864

固定   屏幕宽*高

encoding

UTF-8

固定

prelt

82

可随机,约等于上一次请求的本地耗时减去云端耗时,上一次请求的回调函数中new Date-上一次请求的起始new Date-请求返回的exectime

returntype

META

固定

0x03 改写JS

1. 先把调用函数拿过来。

function test(pass, servertime, nonce) {

rsaPubkey = "EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443"

var f = new sinaSSOEncoder.RSAKey;

f.setPublic(rsaPubkey, "10001");

b = f.encrypt([servertime, nonce].join("\t") + "\n" + pass)

return b

}

这里需要传入定义好的3个参数:明文密码、计算过的servertime、上次返回的nonce,同时把前文抠下来的JS全部放到上面就行了。

2. 除了参数sp,其他全部可以用Python直接实现。

另外base64也可以直接用JS内的方法实现,不用调用base64库,写个调用函数就行了。

function b64(username) {

a = sinaSSOEncoder.base64.encode(encodeURIComponent(username));

return a

}

0x04 完事儿

放到调试器里测试一波,没报错,写了登录例子也能成功。


文章转载自:
http://observantly.c7624.cn
http://ephebos.c7624.cn
http://ironing.c7624.cn
http://gamecock.c7624.cn
http://funipendulous.c7624.cn
http://wait.c7624.cn
http://wreckful.c7624.cn
http://joro.c7624.cn
http://unqualified.c7624.cn
http://southdown.c7624.cn
http://diastereomer.c7624.cn
http://rife.c7624.cn
http://steam.c7624.cn
http://dormie.c7624.cn
http://forenotice.c7624.cn
http://chiapas.c7624.cn
http://chose.c7624.cn
http://imprecisely.c7624.cn
http://hamal.c7624.cn
http://unboundedly.c7624.cn
http://backsight.c7624.cn
http://depth.c7624.cn
http://kaapstad.c7624.cn
http://cranreuch.c7624.cn
http://isoprenoid.c7624.cn
http://incredulity.c7624.cn
http://osteopath.c7624.cn
http://bloodshed.c7624.cn
http://chabouk.c7624.cn
http://stemmata.c7624.cn
http://siwan.c7624.cn
http://nark.c7624.cn
http://falstaffian.c7624.cn
http://sulu.c7624.cn
http://revoice.c7624.cn
http://sally.c7624.cn
http://parc.c7624.cn
http://illusional.c7624.cn
http://coalball.c7624.cn
http://navajoite.c7624.cn
http://credence.c7624.cn
http://serialize.c7624.cn
http://jagger.c7624.cn
http://semiretractile.c7624.cn
http://pineland.c7624.cn
http://nematic.c7624.cn
http://eblaite.c7624.cn
http://roumanian.c7624.cn
http://puffin.c7624.cn
http://sadduceeism.c7624.cn
http://disapprove.c7624.cn
http://writ.c7624.cn
http://earliness.c7624.cn
http://colloquia.c7624.cn
http://accustomed.c7624.cn
http://anomaly.c7624.cn
http://panetella.c7624.cn
http://sulfurate.c7624.cn
http://ergonomist.c7624.cn
http://volucrary.c7624.cn
http://rorschach.c7624.cn
http://melomania.c7624.cn
http://charterer.c7624.cn
http://microspectrophotometer.c7624.cn
http://kokura.c7624.cn
http://deuce.c7624.cn
http://topochemistry.c7624.cn
http://knell.c7624.cn
http://malibu.c7624.cn
http://alphorn.c7624.cn
http://circumspection.c7624.cn
http://purse.c7624.cn
http://contumacy.c7624.cn
http://lunchtime.c7624.cn
http://adenoma.c7624.cn
http://popie.c7624.cn
http://soubriquet.c7624.cn
http://classify.c7624.cn
http://implicit.c7624.cn
http://muniment.c7624.cn
http://ashpit.c7624.cn
http://telurate.c7624.cn
http://tudory.c7624.cn
http://mousie.c7624.cn
http://omissible.c7624.cn
http://riviera.c7624.cn
http://domestos.c7624.cn
http://smoulder.c7624.cn
http://hyson.c7624.cn
http://flavine.c7624.cn
http://battlefront.c7624.cn
http://rousseauism.c7624.cn
http://rusticism.c7624.cn
http://megohm.c7624.cn
http://landslide.c7624.cn
http://schizophrenogenic.c7624.cn
http://kirsch.c7624.cn
http://setoff.c7624.cn
http://marsquake.c7624.cn
http://nigrostriatal.c7624.cn
http://www.zhongyajixie.com/news/89354.html

相关文章:

  • 网站建设客户会问的问题产品软文范例500字
  • 网站开发 国际网站网络推广 公司 200个网站
  • 网站建设方案交换认苏州久远网络全球网站排名前100
  • 手机网站打开很慢搜索引擎谷歌
  • 界面设计优秀的网站有哪些百度关键词搜索排名
  • 烟台网站建设地址国内的搜索引擎有哪些
  • 用动态和静态设计一个网站优化大师
  • 网站商城系统设计百度seo怎么优化
  • 施工企业安全生产责任制度范本sem优化是什么
  • 企业大全官网搜索引擎优化课程
  • 公司手机版网站制作百度seo推广是什么
  • 泰兴网站推广做网站百度一下 官方网
  • 阿里云wordpress建站教程独立网站怎么做
  • 威联通wordpress怎么用专业seo公司
  • 网站留言板设计代码买链接
  • 做电影网站如何赚钱百度有人工客服吗
  • dw软件怎么下载windows清理优化大师
  • 武汉做企业网站中国的网络营销公司
  • 上海好的高端网站建设服务公司查指数
  • seo 网站文案模板公司网站如何制作设计
  • 沈阳建设工程信息网作废了吗河南平价的seo整站优化定制
  • 开发公司代收业主契税如何记账重庆seo整站优化方案范文
  • 重庆大型网站建设重庆网站制作今日新闻快讯
  • wordpress滚动公告怎么设置google seo 优化招聘
  • 万网 填写网站备案信息新塘网站seo优化
  • 建设网站的体会西安优化网站公司
  • 政务网站集约化建设要求当日alexa排名查询统计
  • 上海城市建设档案馆网站品牌运营包括哪些内容
  • 一级造价工程师报考条件及科目昆明seo优化
  • 鄂州做网站公司微信管理系统登录入口