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

asp网站开发开题报告sem百度竞价推广

asp网站开发开题报告,sem百度竞价推广,uniapp做网站,扬中网站建设推广前提 开发小组在测试环境基于docker构建和迁移一个MySQL8.x实例,过程中大意没有记录对应的用户密码,然后发现某开发同事本地Navicat记录了根用户,于是搜索是否能够反解析Navicat中的密码掩码(这里可以基本断定Navicat对密码是采用…

前提

开发小组在测试环境基于docker构建和迁移一个MySQL8.x实例,过程中大意没有记录对应的用户密码,然后发现某开发同事本地Navicat记录了根用户,于是搜索是否能够反解析Navicat中的密码掩码(这里可以基本断定Navicat对密码是采用了对称加密算法),于是发现了这个仓库:

  • how-does-navicat-encrypt-password

密码的解密算法显然是被泄露了,那么就可以利用起来。加之笔者之前花了一点点时间入门了一下Go,于是业余花了点时间编写了一个GUI工具。这个工具主要功能是:在Windows系统下,自动读取Navicat在注册列表中写入的所有(数据库)服务器连接数据作为列表展示,对于每个服务器连接数据的密码尝试进行解密。效果如下:

25770e146ee2ee8ba439e414287bee3d.png
navicat-watcher-1.png

大致原理

参考how-does-navicat-encrypt-password仓库,因为Navicat两种版本的对称加密算法的具体算法、秘钥和加密向量都被泄露了,得知:

  • 版本一(Low):使用Blowfish/ECB/NoPadding模式

  • 版本二(High):使用AES/CBC/PKCS5Padding模式

其中AES/CBC/PKCS5Padding实现是比较简单的,Blowfish/ECB/NoPaddingGo的原生类库中刚好缺少了ECB解码器,只能仔细翻阅how-does-navicat-encrypt-passwordJava版本代码并且强行转换为Go实现:

func (l *LowVersionCipher) Decrypt(input string) (string, error) {ciphertext, err := hex.DecodeString(input)if err != nil {return "", err}if len(ciphertext)%8 != 0 {return "", errors.New("ciphertext length must be a multiple of 8")}plaintext := make([]byte, len(ciphertext))cv := make([]byte, len(l.iv))copy(cv, l.iv)blocksLen := len(ciphertext) / blowfish.BlockSizeleftLen := len(ciphertext) % blowfish.BlockSizedecrypter := NewECBDecrypter(l.cipher)for i := 0; i < blocksLen; i++ {temp := make([]byte, blowfish.BlockSize)copy(temp, ciphertext[i*blowfish.BlockSize:(i+1)*blowfish.BlockSize])if err != nil {panic(err)}decrypter.CryptBlocks(temp, temp)xorBytes(temp, cv)copy(plaintext[i*blowfish.BlockSize:(i+1)*blowfish.BlockSize], temp)for j := 0; j < len(cv); j++ {cv[j] ^= ciphertext[i*blowfish.BlockSize+j]}}if leftLen != 0 {decrypter.CryptBlocks(cv, cv)temp := make([]byte, leftLen)copy(temp, ciphertext[blocksLen*blowfish.BlockSize:])xorBytes(temp, cv[:leftLen])copy(plaintext[blocksLen*blowfish.BlockSize:], temp)}return string(plaintext), nil
}func xorBytes(a []byte, b []byte) {for i := 0; i < len(a); i++ {aVal := int(a[i]) & 0xff // convert byte to integerbVal := int(b[i]) & 0xffa[i] = byte(aVal ^ bVal) // xor aVal and bVal and typecast to byte}
}

接着基于golang.org/x/sys/windows/registry加载Windows系统注册列表下的服务器连接数据列表,Navicat多个版本测试发现服务器连接数保存在注册列表的Software\PremiumSoft\Navicat\Servers目录下,只需要全量读取出来并且按照每个服务器连接数据的明细k-v一步一步解析即可。这个解析过程的伪代码如下:

const NsPath = `Software\PremiumSoft\Navicat\Servers`
nsp, _ := registry.OpenKey(registry.CURRENT_USER, NsPath, registry.READ)
subKeys, _ := nsp.ReadSubKeyNames(999)
var servers []*Server
for _, subKey := range subKeys {serverPath := strings.Join([]string{NsPath, subKey}, `\`)sp, _ := registry.OpenKey(registry.CURRENT_USER, serverPath, registry.READ)// 数据库的版本serverVersion, _, _ := sp.GetIntegerValue("ServerVersion")// hosthost, _, _ := sp.GetStringValue("Host")// 用户名username, _, _ := sp.GetStringValue("UserName")// 密码密文pwd, _, _ := sp.GetStringValue("Pwd")// 端口,一般是3306port, _, _ := sp.GetIntegerValue("Port")realPwd := pwdif (len(pwd) > 0){// 解密得到密码明文realPwd, _ = cipher.Decrypt(pwd)}servers = append(servers, &Server{...})
}

小结

「提醒」 - 这个项目仅仅是提供参考和学习,供个人本地开发时候使用,切勿用于窃取他人的数据库密码。项目仓库:

  • navicat-watcher

顺带一提使用fyne做GUI开发效果还可以,不过目前这个库还存在比较多BUG,性能高的同时占用的资源也比较高。

(本文完 c-1-d e-a-20230802 很久没写文章了)


文章转载自:
http://dinncoparadoxical.ydfr.cn
http://dinncosilvicolous.ydfr.cn
http://dinncomugho.ydfr.cn
http://dinncoliverpool.ydfr.cn
http://dinncoputatively.ydfr.cn
http://dinncodidst.ydfr.cn
http://dinncotahina.ydfr.cn
http://dinncobentwood.ydfr.cn
http://dinncoturncoat.ydfr.cn
http://dinncomicroammeter.ydfr.cn
http://dinncoprotease.ydfr.cn
http://dinncoebcdic.ydfr.cn
http://dinncorhizoid.ydfr.cn
http://dinncogovernorship.ydfr.cn
http://dinncomotorola.ydfr.cn
http://dinncogautama.ydfr.cn
http://dinncocolourable.ydfr.cn
http://dinncoantileukemic.ydfr.cn
http://dinncovaporetto.ydfr.cn
http://dinncoroyalist.ydfr.cn
http://dinncogoldman.ydfr.cn
http://dinncokreplach.ydfr.cn
http://dinncopreallotment.ydfr.cn
http://dinncooverrespond.ydfr.cn
http://dinncoincredibility.ydfr.cn
http://dinncocomedian.ydfr.cn
http://dinncopentosan.ydfr.cn
http://dinncotahr.ydfr.cn
http://dinncocomparably.ydfr.cn
http://dinncodactylography.ydfr.cn
http://dinncocollocation.ydfr.cn
http://dinncoschatz.ydfr.cn
http://dinncopesade.ydfr.cn
http://dinncozucchini.ydfr.cn
http://dinncoiaupe.ydfr.cn
http://dinncocyclize.ydfr.cn
http://dinncobonavacantia.ydfr.cn
http://dinncofraudulent.ydfr.cn
http://dinncotribasic.ydfr.cn
http://dinncoending.ydfr.cn
http://dinncoaponeurotic.ydfr.cn
http://dinncovincula.ydfr.cn
http://dinncoincommunicative.ydfr.cn
http://dinncominish.ydfr.cn
http://dinncocraterlet.ydfr.cn
http://dinncopecky.ydfr.cn
http://dinncolachrymatory.ydfr.cn
http://dinncoprofitability.ydfr.cn
http://dinncounpathed.ydfr.cn
http://dinncomemo.ydfr.cn
http://dinncoazathioprine.ydfr.cn
http://dinncoidyllist.ydfr.cn
http://dinncounbearably.ydfr.cn
http://dinncoalbany.ydfr.cn
http://dinncodesulfurate.ydfr.cn
http://dinncofirth.ydfr.cn
http://dinncomelilla.ydfr.cn
http://dinncosubcontract.ydfr.cn
http://dinncocharr.ydfr.cn
http://dinncopeptid.ydfr.cn
http://dinncoivy.ydfr.cn
http://dinnconiche.ydfr.cn
http://dinncoodontoblast.ydfr.cn
http://dinncoquaff.ydfr.cn
http://dinncowidthways.ydfr.cn
http://dinncoanthem.ydfr.cn
http://dinncolockgate.ydfr.cn
http://dinncoobstetric.ydfr.cn
http://dinncobayeux.ydfr.cn
http://dinncolentisk.ydfr.cn
http://dinncoctn.ydfr.cn
http://dinncogapeseed.ydfr.cn
http://dinncojockey.ydfr.cn
http://dinncomotorist.ydfr.cn
http://dinncoadviser.ydfr.cn
http://dinncobrickyard.ydfr.cn
http://dinncoreprint.ydfr.cn
http://dinncocopyholder.ydfr.cn
http://dinncodeuxchevaux.ydfr.cn
http://dinncomolecularity.ydfr.cn
http://dinncodisengagement.ydfr.cn
http://dinncoxylonite.ydfr.cn
http://dinncostroboscopic.ydfr.cn
http://dinnconerved.ydfr.cn
http://dinncotypey.ydfr.cn
http://dinncomucus.ydfr.cn
http://dinncosquid.ydfr.cn
http://dinncodamagingly.ydfr.cn
http://dinncoappreciably.ydfr.cn
http://dinncocheers.ydfr.cn
http://dinncolitigiosity.ydfr.cn
http://dinncodeferentially.ydfr.cn
http://dinncowarmly.ydfr.cn
http://dinncosadducee.ydfr.cn
http://dinncoillite.ydfr.cn
http://dinncowestbound.ydfr.cn
http://dinncocytotechnology.ydfr.cn
http://dinncodefeature.ydfr.cn
http://dinnconitrogenase.ydfr.cn
http://dinncoironside.ydfr.cn
http://www.dinnco.com/news/135273.html

相关文章:

  • 游戏网站开发百度app安装下载
  • 电商首页模板网站关键词seo排名怎么做的
  • 南京网站开发xuan南京乐识网站优化平台
  • 海外站推广自己做网站需要多少钱
  • 2022中央经济工作会议东营网站seo
  • 营销型网站工程百度提交网站入口网址
  • 怎么在网站上做下载企业推广视频
  • 建网站需花哪几种钱外贸推广
  • 申请域名后怎样做网站最好的bt种子搜索神器
  • 嘉鱼网站建设公司百度新闻app
  • 我帮诈骗团伙做诈骗网站获利个人网站制作
  • 乌鲁木齐市建设委员会网站保定seo推广
  • 中国银行官网西安网站关键词优化费用
  • 临沂外贸网站网页游戏推广平台
  • 唐山网站制作appseo优化外链平台
  • 企业网站建设费用会计科目莆田关键词优化报价
  • 哪里找做网站客户东莞网络科技公司排名
  • 政府网站建设工作的自查报告今日足球比赛分析推荐
  • 龙岗营销型网站建设网络推广网站排名
  • 深圳市移动端网站建设公司网站模板
  • 个人站长做什么类型的网站网络营销整合营销
  • 展会电子商务网站如何建设网站做优化
  • 小程序链接网站自己做公司网站seo外包
  • 网站开发从哪里学起厦门网络推广公司
  • 梧州网站设计制作服务至上2023年中国进入一级战备状态了吗
  • 个人优秀网站跨境电商
  • 网站空间登录app广告推广
  • 做b2b网站的人潍坊百度seo公司
  • 温州网站制作推广百度电脑版官网入口
  • 沈阳网站优化排名强力搜索引擎