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

专业的微网站公司杭州市城乡建设网官网

专业的微网站公司,杭州市城乡建设网官网,天门seo,什么颜色做网站好看前言 js逆向一直没有相关了解#xff0c;虽然目前渗透遇见的不是很多#xff0c;大多数遇见的要么不加密#xff0c;要么无法实现其加密流程#xff0c;不过最近看到了一个较为简单的站点正好能够逆向出来#xff0c;就做了简单记录。本文旨在介绍js逆向的一些基础思路虽然目前渗透遇见的不是很多大多数遇见的要么不加密要么无法实现其加密流程不过最近看到了一个较为简单的站点正好能够逆向出来就做了简单记录。本文旨在介绍js逆向的一些基础思路希望能对初学js前端逆向的师傅有所帮助。 JS定位 在我们寻找JS源代码时如果直接翻看全部的js文件以来寻找自己想要的一部分无疑是复杂繁琐的且工作量巨大有点类似大海捞针因此这里我们需要借助一些巧妙的办法来快速定位某标签的js语句具体方法如下。 元素审查定位 当我们不确定某处的js文件位置时可以使用F12点击元素审查然后点击登录处观察事件监听器 此时可以观察到login.js文件出现接下来就可以去对应文件下继续深入。 发现check函数寻找check函数 此时发现加密是secret函数再继续跟secert函数就可以了解其整体流程。 全局搜索法 像我们常见的登录框他们要提交的加密参数一般名为password或者加密为Crypto加密因此我们可以全局搜索此类关键字进而寻找我们需要找的关键加密js语句进而实现js逆向。 具体操作也很简单这里简单举个例子。 首先打开F12随便点击一个元素而后ctrlshiftf接下来全局搜索关键词即可 此时含关键词的语句映入眼帘像一些css文件中的直接略过即可而后即可找到真正生成密码的地方 接下来便可以深入secret了解加密方法。 Onclick定位 像一些登录点是存在着onclick属性的如若该属性值是js函数那么就极有可能是我们要寻找的js加密函数而后进行寻找相关函数即可。 注:图参考自cony1大师傅。 以cony1大师傅的图为例进行简单讲解 这里发现ssologin函数接下来寻找该函数 此时即可发现相关js语句。 帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS 实战 某登录站点js逆向 找到一个登录站点随意输入 发现用户名和密码均被加密接下来ctrlshiftf全局搜索password字段寻找加密点 第一个这里明显是输入框的password且是注释肯定不是这里接着寻找后来到 整体代码如下 function check() {//这里将用户名密码加密var code letulevle;var yname $(#yname).val();if (yname ) {alert(用户名不能为空);return false;} else {var newName secret(yname, code, false);$(#xname).val(newName);}var ypassword $(#ypassword).val();if (ypassword ) {alert(密码不能为空);return false;} else {var newPassword secret(ypassword, code, false);$(#xpassword).val(newPassword);}}可以看出js代码逻辑并不难首先提取出ypassword标签下的内容而后验证其是否为空若不为空则对其进行secret函数处理很明显这个secret函数就是加密函数所以我们接下来跟进此加密函数 这里直接给出了iv和key所以接下来打断点调试就行了而后打上断点 接下来开始随便输入密码提交而后来到调试界面 选中code.substring(16)得到keyf3991777154f4bd0 选中code.substring(0,16)得到偏移量ace43e65106a77f6 下方也给出了Padding和mode分别是Pkcs7和CBC所以接下来直接解密即可在网络中我们可以看到提交后加密的账密 拿去随便找个AES解密网站 与所输入的进行比对 成功得到正确结果 接下来编写脚本即可直接将字典的内容全部进行加密而后放入burp进行爆破 import base64 from Crypto.Cipher import AES from Crypto.Hash import MD5 from Crypto.Util.Padding import pad#填入AES的key和iv key f3991777154f4bd0 iv ace43e65106a77f6def AES_Encrypt(data):global keyglobal ivcipher AES.new(key.encode(utf-8), AES.MODE_CBC, iv.encode(utf-8))paddingdata pad(data.encode(utf-8),AES.block_size)encrypted cipher.encrypt(paddingdata)#print(base64.b64encode(encrypted).decode())return base64.b64encode(encrypted).decode()password [] with open(password.txt,r,encodingutf-8) as f:for i in f:password.append(i.strip()) with open(password_aes.txt,w,encodingutf-8) as w:for i in password:data AES_Encrypt(i)\nw.write(data)数据长度明显与错误时不一致不过这里也未成功进入后台有二次验证Google验证码无从下手故点到为止。 某道js逆向 接下来进行抓包 这里我们首先注意一下每次不同点在哪以此为入口点来进行下去因此我们多次刷新界面抓包同样的参数观察包的参数哪个值是不同的 从上图可以看出sign和mysticTime是变化的因此接下来针对这两个变量进行深入如果我们能够控制这两个变量那么我们就可以实现直接脚本请求得到翻译对应的语句。 所以接下来首先从sign开始我们首先进行F12而后输入ctrlshiftf全局搜索关键词 这里可以发现出现了js中含有sign关键字的但像这个inpage.js他明显不是我们要找的js语句因此继续往下寻找(输入sign:更容易找到对应函数)。这里我们找到如下语句 相关代码如下 const u fanyideskweb, d webfanyi, m client,mysticTime,product, p 1.0.0, g web, b fanyi.web, A 1, h 1, f 1, v wifi, O 0;function y(e) {return c.a.createHash(md5).update(e).digest()}function j(e) {return c.a.createHash(md5).update(e.toString()).digest(hex)}function k(e, t) {return j(client${u}mysticTime${e}product${d}key${t})}function E(e, t) {const o (new Date).getTime();return {sign: k(o, e),client: u,product: d,appVersion: p,vendor: g,pointParam: m,mysticTime: o,keyfrom: b,mid: A,screen: h,model: f,network: v,abtest: O,yduuid: t || abcdefg}}这里可以看到sign是由函数k构成的同时注意到这里也给出了k的参数k是由clientfanyideskwebmysticTime${e}productwebfanyikey${t}所组成的此时再看函数Eo是时间戳e这里未知这时候该怎么办呢先看看他是不是固定值当自己不确定在哪下断点调试时就在附近的几个可疑点都打下断点观察e的值即可 经观察这里的e值是固定的即fsdsogkndfokasodnaso此时k(o,e)中的参数我们都了解了但我们注意到k函数中是有j在外包裹的因此我们需要对j函数进行相关了解 function j(e) {return c.a.createHash(md5).update(e.toString()).digest(hex)}明显的md5加密因此到这里也就都清楚了。 当我们进行请求时首先获取当前的时间戳此作为参数之一同时与client等参数值组合进行md5加密就组成了sign的值。对于mysticTime这个参数我们从k函数也了解到它其实就是时间戳因此两个变化的参数到目前就都了解其生成过程了。 接下来尝试写python脚本 import hashlib import time import requestsrequests.packages.urllib3.disable_warnings() headers {Content-Length: 312, Pragma: no-cache, Cache-Control: no-cache, Sec-Ch-Ua: \Google Chrome\;v\119\, \Chromium\;v\119\, \Not?A_Brand\;v\24\, Accept: application/json, text/plain, */*, Content-Type: application/x-www-form-urlencoded, Sec-Ch-Ua-Mobile:?0, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36, Sec-Ch-Ua-Platform: \Windows\, Origin: https://fanyi.youdao.com, Sec-Fetch-Site: same-site, Sec-Fetch-Mode: cors, Sec-Fetch-Dest: empty, Referer: https://fanyi.youdao.com/, Accept-Encoding: gzip, deflate, } Cookie { OUTFOX_SEARCH_USER_ID:23997829110.130.108.41, OUTFOX_SEARCH_USER_ID_NCOO:520521807.43848985 } url word input(请输入翻译内容:) localtime str(int(time.time() * 1000)) canshu clientfanyideskwebmysticTime{}productwebfanyikeyfsdsogkndfokasodnaso.format(localtime) sign hashlib.md5(canshu.encode(encodingutf8)).hexdigest() data {i: f{word},from: auto,to: ,dictResult: true,keyid: webfanyi,sign: sign,client: fanyideskweb,product: webfanyi,appVersion: 1.0.0,vendor: web,pointParam: client,mysticTime,product,mysticTime: localtime,keyfrom: fanyi.web } res requests.post(urlurl,headersheaders,cookiesCookie,datadata,verifyFalse) print(res.text)此时便得到了加密数据解密同理不再阐述。
http://www.sadfv.cn/news/217220/

相关文章:

  • 现在网站还用asp做人力招聘网站建设任务执行书
  • 做网站跟客人怎么沟通网站官网设计规范
  • 门户网站的营销特点wordpress不能发文章_只能在标题内写字
  • 智能手机网站模板手机网站 排版
  • 私人网站建设莱芜都市网房产
  • 网站开发流程分为哪3个阶段网站留言板作用
  • 物流网站开发系统论文单位怎样做网站
  • vscode的网站开发配置建设部证书查询官方网站
  • 海口网站建设策划方案南京公司网站
  • 广西网站建设推广大概需要多少钱做棋牌网站违法
  • 手机网站开发总结在哪里找专业推广团队
  • 龙口建网站价格重庆建设集团公司
  • 建设银行网站 查余额建设网站工作报告
  • 南京网站设计机构wordpress手机主题mip
  • 宜宾市网站建设微信分销网站建设
  • 国内专门做旅游攻略的网站网站地图怎么做XML
  • 绍兴网站制作青海省建设厅建管处网站
  • 做MAD生肉网站百度sem优化师
  • 搜狐快速建站什么专业是做网站
  • 青云谱网站建设昆明软件开发公司有哪些
  • 璧山网站建设网店推广有哪些方法
  • 建设创意网站做磨毛布内销哪个网站比较好
  • 网站搭建网天河建设网站专家
  • 网站设计用什么字体好南昌地宝网二手车
  • 西安网站优化培训海阳市城建设局网站
  • asp网站发布ftpwordpress手机菜单
  • 做网站的框架网站栏目怎么做301定向
  • 做的网站怎么发布到网上百度云建站网站建设
  • 河南网站建设企业wordpress商城主题破解
  • 杭州网站建设公司联系方式网站设计与网页制作在线