惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
P
Palo Alto Networks Blog
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
月光博客
月光博客
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
Simon Willison's Weblog
Simon Willison's Weblog
T
Troy Hunt's Blog
GbyAI
GbyAI
S
Security Affairs
博客园 - 司徒正美
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
Webroot Blog
Webroot Blog
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
量子位
Project Zero
Project Zero
美团技术团队
C
Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
AI
AI
P
Privacy International News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
L
LangChain Blog
罗磊的独立博客
A
About on SuperTechFans
S
Securelist
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
Forbes - Security
Forbes - Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Last Week in AI
Last Week in AI
S
Secure Thoughts
Scott Helme
Scott Helme
www.infosecurity-magazine.com
www.infosecurity-magazine.com
H
Help Net Security
I
Intezer
Hacker News: Ask HN
Hacker News: Ask HN
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Spread Privacy
Spread Privacy
Latest news
Latest news

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 你要加油呐 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽
欺诈式数据库连接
八咫乌 · 2026-06-22 · via BlogFinder

欺诈式数据库连接

in 技术记录 lang read (38)

这也是几个月之前的事儿了,但说无妨了。
当时的情况是一个客户找到我,大致意思是说想换服务器。
换服务器这事儿可大可小,但偏偏他们的软件开发不想他们换。

检查过后,发现了原因,这是一个C#语言开发的网站程序。
多数文件直接打包迁移就好,包括数据库也是。
难点在于网站的配置文件属于部分加密的。

是的,不是全篇加密,是只有数据库连接串加密。
更具体的说,还不是整个数据库连接串加密,是部分连接串加密。
我大概能猜到数据库连接串的写法,所以我试图明文写这部分。
但是程序是强制解密的,对于我的明文,依旧会正常解密。

那就只能尝试解密,看看数据库连接串里到底写了什么喽。
按照解密失败的报错,找到相应的.dll文件。
用一个叫dnSpy的程序可以逆向解密C#编译的.dll文件。
果不其然,我找到了加密的密钥。

但难题又来了,我不太懂C#,我最熟悉的一直都是php。
这意味着,即便拿到密钥,我也仍然是解不开的。

这个时候当然是请出千问老师和豆包老师了。
最后是千问先拔头筹,给了我解决办法,千问给我写了这样的代码:


千问的代码
from Crypto.Cipher import DES3
from Crypto.Util.Padding import unpad
import hashlib
import base64

# 1. 准备数据
ciphertext_base64 = "【加密的数据库连接串】"
password = "【.dll文件里找到的密钥】"

# 2. 核心逻辑:还原 C# 的 Key 生成方式
# 先对密码做 MD5 (得到 16 字节)
md5_hash = hashlib.md5(password.encode('utf-8')).digest()
# 为了凑齐 24 字节,将 MD5 结果重复拼接 (16字节 + 前8字节 = 24字节)
# 这是 C# 3DES 最常见的 Key 补齐方式
key = md5_hash + md5_hash[:8]

# 3. 解密
# 初始化 Cipher,模式 ECB,填充 PKCS7 (在 pycrypto 中对应 PKCS7)
cipher = DES3.new(key, DES3.MODE_ECB)
ciphertext = base64.b64decode(ciphertext_base64)

# 解密并去填充
try:
    decrypted_padded = cipher.decrypt(ciphertext)
    # 尝试使用 PKCS7 去填充
    decrypted = unpad(decrypted_padded, DES3.block_size, style='pkcs7')
    print("解密成功 (PKCS7):")
    print(decrypted.decode('utf-8'))
except ValueError:
    # 如果 PKCS7 失败,尝试 NoPadding (有些旧程序不填充)
    print("PKCS7 失败,尝试原始数据:")
    print(decrypted_padded)

这明显是一段Python代码,那么难题又来了,我对Python也不熟悉。
然后我就发现了有个东西叫Python在线工具,直接贴进去代码,点一下运行就得到了数据库连接串。
有意思的是,原始的数据库连接串朴实无华,没有任何特殊处理,和我写的一样。

我把数据库地址、用户名、密码和库名改过之后,新问题又来了。
我试图让千问和豆包按照密钥给我加密回去,加密了几次都是失败的。
通过报错,发现加密程序是在开发公司的电脑的F盘里,这个我说什么也拿不到。
这个时候就得用点儿AI永远无法替代人类的办法了。

我干脆删库、删用户名,重新建库。
新建库和用户名,和原本的一摸一样。
然后,我打开了服务器的hosts文件,把原来的数据库地址强制解析到127.0.0.1。
这样,即使访问原来的数据库地址,访问的也是本地数据库!
我选择对程序进行了一次服务器内部的欺诈。
安全层面上讲,这个算是DNS劫持了。

测试网站访问正常,客户原服务器关机,测试访问仍然正常,迁移完成。


其实数据迁移不是什么难题,甚至是我最擅长的领域。
而修改hosts也是常见操作,很多时候做测试都会用到。
只不过这次是遇到了我最不熟悉的C#,还是加密,开发公司又不配合。
两个办法加一起,就是1+1>2的经典案例了。


过去的数年里,我一直很回避在自己的网站里写技术内容,两个原因:
1.我不觉得自己的水平很强,偶尔的灵光一闪也都是将两种常见操作组合,显得出其不意而已。
2.我一直将自己的网站定位成自己生活的记录,而非工作记录。

然而现在的情况就是,早年我差不多一年时间处理的服务器问题起码500多个。
这种工作强度下,记不记录不重要,孰能生巧,没什么不会的。
而现在,基本上找到我的都是稍微复杂一点点的问题,且基本上都是孤例。
这意味着,不记录的话,也许回头我就给忘记了。

再者,现在工作和生活也没有明确的界限了。
以前给别人打工,现在公司是自己的,很多时候工作和生活的边界就是很模糊的。
甚至,我当年基本上不用家里的台式机工作,我给家里电脑的定位就是打游戏用的。
而现在很多时候就是在家里工作,界限早就模糊了。

所以移除了网站的读书笔记分类,新增了技术记录分类。
毕竟现在遇到难题的情况远超过我看书的速度,我现在就不看书。