IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

安全

共 391 篇文章

IT 2016-05-12 12:51:53 / 累计浏览 2,683

浅析Windows的访问权限检查机制

这篇深入剖析了Windows操作系统中访问权限检查的核心模型。作者从被保护的“对象”与发起访问的“主体”(进程/线程及其令牌)出发,清晰地勾勒出权限检查的基本逻辑:用主体的有效令牌去匹配客体的安全描述符。 文章揭示了访问权限检查是一个多维度、层层递进的体系。其中,对DACL(自主访问控制表)的检查是基石,文章特别指出DACL中访问控制项(ACE)的顺序至关重要——一个显式拒绝的条目如果排在显式允许条目之后,其效力将被完全覆盖。通过API添加ACE不受顺序限制,但通过GUI操作时,系统为确保拒绝策略的有效性,会固定将拒绝条目置于允许条目之前。 除了DACL,检查还涉及特权(如SeDebugPrivilege)、完整性级别(IL)、受限令牌以及从Win8引入的AppContainer能力检查等多个维度,这些机制共同构建了Windows的安全沙箱。文章最后展示了TOKEN结构体的具体字段,让读者得以窥见权限检查背后最核心的数据结构。整篇文章从抽象模型到具体实现,展现了Windows安全机制随时代演进的完整脉络。

本机暂存
IT 2016-05-05 13:21:43 / 累计浏览 2,443

iptables 看门狗

这篇讲的是如何为容易“开门忘关”的服务器防火墙设置一个自动看门狗。作者从近期因Redis配置不当导致服务器被黑的常见事件切入,指出核心风险往往在于人为疏忽:为了方便临时关闭了iptables,事后却忘记重新开启,给攻击者敞开了大门。 为了解决这个问题,文章提供了一个简洁的Shell脚本方案。这个脚本扮演了“看门狗”的角色:它会定期检查防火墙状态,一旦发现防火墙是关闭的,并且当前没有用户登录服务器(即“家里没人”),就会自动执行启动命令,将防火墙重新打开。 整个方案的核心思想简单而实用——用自动化弥补人为操作的漏洞。脚本通过检查`iptables`服务状态和`who`命令的输出行数这两个关键条件,实现了精准的自动化干预。它不依赖复杂的监控系统,仅用几行命令就构建了一个基础的安全保障机制,特别适合运维人员快速部署在需要长时间开放调试、又担心忘记恢复防火墙的服务器上。

本机暂存
IT 2016-04-05 14:54:35 / 累计浏览 2,803

三种解密 HTTPS 流量的方法介绍

这篇讲的是如何从技术层面解密 HTTPS 流量,作者从三种最常规的方法入手,深入浅出地剖析了 HTTPS 并非绝对安全背后的原理。 文章首先介绍了中间人攻击(MITM)方式,Fiddler、Charles 等调试工具就是通过向系统导入自签的根证书,充当浏览器和服务器间的“中间人”来解密流量。其次,文章探讨了如何使用 Wireshark 配合网站的 RSA 私钥进行解密。不过,作者明确指出了这种方法的局限:它只能解密采用 RSA 密钥交换的流量,对于目前主流的、具备前向安全性的 ECDHE 密钥交换则无能为力。因此,它也无法解密 HTTP/2 流量。 第三种方法则依赖于浏览器自身的 `SSLKEYLOGFILE` 环境变量。设置后,浏览器会导出密钥日志,使得 Wireshark 能够解密包括 ECDHE 在内的所有流量,但这主要用于开发者调试,并非安全漏洞。 文章最后给出了切实的安全建议:网站应启用具有前向安全性的 ECDHE 算法,并部署证书透明度等机制;用户则需警惕不受信的证书导入,并关注客户端自身的安全,因为恶意扩展同样能在浏览器内部窃取数据。

本机暂存
IT 2016-04-02 22:41:54 / 累计浏览 2,443

Certificate Transparency 那些事

这篇深入探讨了 Certificate Transparency(证书透明度)的重要性和实践。作者从本站启用 HTTPS 策略的两个变化切入,重点解释了 CT 要解决的核心问题:现有证书信任体系中,受信任的 CA 可能因失误或恶意签发“非法证书”,且域名管理不善也可能导致证书被冒领,而这些风险在传统机制下难以快速发现和消除。 文章清晰地拆解了 CT 系统的三部分——Certificate Logs、Certificate Monitors 和 Certificate Auditors,阐明了其作为现有 CA 体系补充的开放审计与监控原理。核心价值在于提供了实时、透明的证书状态查询能力,让域名所有者能主动发现错误签发。 文中重点对比了启用 CT 的三种方案:由 CA 承担高成本的 X.509v3 扩展、使用者成本较高的 TLS 扩展(通过 Web Server 发送 SCT),以及需 CA 配合的 OCSP Stapling。作者最终选择了普适性最强的 TLS 扩展方案,并提供了在 Nginx 环境下的具体操作步骤:从使用 ct-submit 工具获取 SCT 文件,到编译加入 nginx-ct 模块,再到最终的配置修改,形成了一个完整的实践闭环。对于关注 HTTPS 安全增强的技术人员而言,这是一份从理论到落地的详实参考。

本机暂存
IT 2016-04-02 22:36:28 / 累计浏览 2,207

HTTP Public Key Pinning 介绍

这篇讲的是如何通过 HTTP Public Key Pinning(HPKP)技术,让网站主动指定可信任的证书颁发机构,以抵御中间人攻击。作者从当前 HTTPS 证书信任体系的漏洞切入——任何一家受信任的 CA 都可能为任意网站签发合法证书,虽然 Certificate Transparency (CT) 能通过审计机制改善此问题,但尚未完全普及。 HPKP 提供了另一种思路:网站通过响应头“固定”自己证书链中特定证书的指纹。浏览器后续访问时,必须验证证书是否匹配这些指纹,否则即便证书合法也会拒绝连接。文章详细说明了配置字段,并重点讨论了 `pin-sha256` 指纹的生成策略:使用中间证书指纹在安全性和易用性间取得了较好平衡,同时建议预备备用指纹以应对 CA 变更。作者还给出了使用 OpenSSL 生成指纹和配置 Nginx 的具体示例。 不过,HPKP 也存在首次访问可能被劫持的局限,类似 HSTS,目前主要依赖浏览器内置的 Preload List 来解决。整篇文章清晰对比了 HPKP 与 CT 的不同防护路径,并给出了切实的配置指导。

本机暂存
IT 2016-03-30 16:00:26 / 累计浏览 3,145

wordpress/nginx安全设置

这篇讲的是如何给WordPress博客加固登录安全,作者从两个实战层面入手:插件增强认证与通信链路加密。 首先,文章详细演示了如何通过Google Authenticator插件为WordPress登录添加双重验证。这类似于谷歌账户的“两步验证”,原理是在密码之外,增加一道由手机App动态生成的验证码,能有效防范密码泄露风险。作者还梳理了其他类似安全插件,如一次性密码、IP锁定等,提供了更全面的选择思路。 其次,更进阶的一步是配置Nginx反向代理下的SSL(HTTPS)登录。作者不仅说明了如何在WordPress配置文件中启用强制SSL,还提供了从生成自签名证书到编写完整Nginx配置的全过程。过程中特别指出了一个典型坑点:Nginx配置不当会导致后台CSS文件的MIME类型错误,并给出了具体的修正配置,这部分对实际操作很有参考价值。 整个方案从认证加固到传输加密,层层递进,解决的是WordPress站点常见的登录安全隐患,过程细节扎实,踩坑点清晰。

本机暂存
IT 2016-03-23 17:51:36 / 累计浏览 2,025

从无法开启 OCSP Stapling 说起

这篇讲的是,作者从读者常问的“为什么在Nginx中配置了 ssl_stapling on 却没生效”这个问题出发,深入剖析了OCSP Stapling的原理与实操。文章先简要回顾了OCSP(在线证书状态协议)会拖慢TLS握手,而OCSP Stapling(让服务端主动提供状态)是优化这一过程的关键。 接着,作者没有停留在理论,而是手把手教读者一个轻量的排查方法:使用openssl命令行工具进行验证。通过一条具体命令和对输出结果的解读(比如看到“OCSP Response Status: successful”就说明已开启),读者可以快速自检,而无需等待SSL Labs的漫长检测。 文章进一步深入,展示了完整的OCSP Response内容,并解释了其由“验证数据”和“签名证书”两部分组成。最后,文章还指导读者如何在本地获取证书链并主动查询OCSP信息,从原理层面帮助开发者真正理解这一机制,而不仅仅是配置一行代码。

本机暂存
IT 2016-03-23 13:50:31 / 累计浏览 3,464

小心浏览器插件窃取你的隐私

这篇讲的是一个关于浏览器插件隐私安全的踩坑经历。作者发现,自己使用了一年多的知名鼠标手势插件 crxMouse Chrome Gestures,竟然在后台窃取用户的浏览历史。 问题如何发现呢?作者通过 Wireshark 抓包,发现该插件持续向外部服务器(如 s808.searchelper.com)发送加密的 POST 请求。解密后可以看到,请求中携带了当前页面的 URL、来源页面(Referrer)乃至内网地址等敏感信息,这意味着用户的浏览轨迹被完整记录并外传。 深入分析其 JavaScript 代码后,作者找到了根源:插件在初始化时生成了用户ID,并在多个浏览器事件(如标签页更新、切换)触发时,调用监听函数将数据经双重 Base64 编码后发送出去。这种隐蔽的实现,使得普通用户很难察觉。 最终,作者卸载了这款插件,并在应用商店更换了其他同类工具。他的结论是,虽然开发者盈利不易,但窃取隐私的行为必须抵制。这个案例提醒我们,对于浏览器插件这类拥有较高权限的工具,需要多一份审视和警惕。

本机暂存
IT 2016-03-23 13:47:39 / 累计浏览 4,528

在Mac上删除Google的流氓软件

这篇讲的是Mac用户可能从未留意过的一个隐蔽问题——谷歌的自动更新代理(GoogleSoftwareUpdateAgent)会在后台静默运行,即便你的电脑上没有安装任何谷歌软件。作者从Mac的Console系统日志入手,展示了该进程如何定期执行更新检查,并通过一行Terminal命令教会读者如何自查是否已被“感染”。 问题的核心在于,谷歌的这个组件会随某些应用静默安装,并常驻系统后台。对于注重隐私和系统洁净度的用户而言,这种不请自来的常驻服务无疑是一种困扰。文章不仅揭示了现象,更给出了直接、有效的终端卸载命令,帮助用户彻底移除这个“不速之客”。 通过这个具体案例,文章提醒我们:一些主流软件的附属组件可能会在用户不知情下获得系统权限并持续运行。定期审视系统后台进程,是维护电脑健康的一个好习惯。

本机暂存
IT 2016-03-21 23:39:37 / 累计浏览 3,623

Mac下.apk的反编译

这篇教程详细演示了如何在Mac环境下对Android应用的.apk文件进行反编译。作者从准备一个.apk文件开始,核心方案是结合使用三个关键的开源工具来逐步剥离应用内容。 第一步是使用 apktool,通过指定路径的命令,对.apk文件进行解码。这个过程会提取出资源文件,并解码出 AndroidManifest.xml 等XML内容。第二步则是使用 dex2jar 工具,它能将apk中的classes.dex文件转换成通用的Java归档文件(.jar)。作者提示,生成jar包后需要耐心进行下一步。第三步,用 JD-GUI 这个Java反编译器打开上一步生成的.jar包,此时就能直观地浏览应用的Java源代码了。 整个流程清晰地串联了三个工具,各自负责不同层面的解包与反编译工作。作者通过具体的命令行示例和输出反馈,将原本可能复杂的逆向过程分解成了可跟随的操作步骤。最终,读者可以掌握一套完整的组合技,从资源到代码,实现对APK文件的深度查看。

本机暂存
IT 2016-03-21 13:41:44 / 累计浏览 1,081

Linux的chattr与lsattr命令

这篇讲的是Linux系统运维中容易被忽略但极其重要的底层属性控制工具——chattr与lsattr。作者开篇就点明,与常见的chmod命令仅管理读写执行权限不同,chattr能在更底层的文件系统层面施加保护,这对保障服务器日志和核心配置文件的安全至关重要。 文章聚焦于两个最实用的参数:“a”(仅允许追加)和“i”(完全不可变)。作者通过具体场景阐释其价值:用`chattr +a`锁定日志文件,确保记录只增不删;用`chattr +i`保护系统配置文件如resolv.conf,使其无法被移动、修改或删除,从而防范误操作或攻击。这些设置甚至能解决实际故障——文中就演示了当passwd/shadow文件被意外设置i属性导致root密码修改失败时,如何用chattr解除限制再恢复安全状态。 核心在于,这些底层属性需由root用户显式设置,权限极高。理解它们,相当于为关键文件上了把“系统级”的锁,是构建纵深防御的实用一课。

本机暂存
IT 2016-03-14 23:25:35 / 累计浏览 3,209

Redis未授权配合SSH免密码登录漏洞及修复

这篇讲的是Redis未授权访问漏洞如何被利用来配合SSH免密码登录,以及相应的修复方法。作者从Redis的基本概念出发,介绍了redis-cli客户端、Redis Desktop Manager图形界面工具,以及常用的Key操作(如set、get、del)和服务器命令(如info、config get/set)。文章重点讲解了当Redis配置不当、默认无需密码认证时,攻击者如何通过Redis写入SSH公钥,从而实现免密码登录主机。具体步骤包括在Kali主机上使用redis-cli连接目标Redis,利用config set dir和config set dbfilename命令将SSH公钥写入/root/.ssh/authorized_keys文件。同时,文章还讨论了写入公钥后依然无法登录的常见情况,例如目录权限问题或SELinux设置,并给出了解决方法。 针对修复方案,文章强调了设置Redis密码认证的重要性,建议修改redis.conf文件中的requirepass参数。此外,还提到了修改绑定地址(bind参数)以限制访问,配置防火墙规则(如iptables)只允许特定IP连接,以及定期备份数据等措施。这些方案有助于系统管理员加固Redis服务,防止未授权访问和潜在的安全风险。通过实例演示漏洞利用过程,文章提供了可操作的修复建议,帮助读者在实际环境中实施安全防护。

本机暂存
IT 2016-03-10 23:55:03 / 累计浏览 2,485

解决 SQL 注入的另类方法

这篇讲的是如何从根本上破解 SQL 注入,而不只是修补漏洞。作者从一个经典场景出发:攻击者通过精心构造的输入,篡改了原本合法的 SQL 查询语义。文章指出,这种问题的根源在于我们过度依赖与 SQL 语法等价的、但更容易被误用的“字符串拼接”表示法。 核心思路是跳出“过滤或转义”的传统框架,转而利用 SQL 本身是公理化语言的特性。文章提出了三种另类的防御策略:第一,将 SQL 模板转换为语法严格、结构不同的等价表示,比如前缀表示法或欧拉表示法,让攻击者的注入在新语法下直接失效;第二,为 SQL 关键字替换一套自定义的、任意的 token 集合,构建一个“私有语言”,使注入的 `or`、`=` 等字符成为无效代码;第三,验证 SQL 语句的结构不变量,例如填充前后 token 的数量必须恒定,任何偏离都意味着注入发生。 作者通过具体的代码示例,生动地展示了攻击注入在这些策略下是如何因语法错误或结构破坏而“折戟”的。这种从语言理论和形式化角度解决问题的方案,为防御注入攻击提供了一条极具启发性的新路径。

本机暂存
IT 2016-03-10 23:52:49 / 累计浏览 2,582

SlemBunk木马浅析

这篇讲的是对SlemBunk这款Android木马的深度剖析。作者从拿到样本开始,一步步拆解其设计精妙之处。木马的核心目标很明确:伪装成常用应用,骗取用户的信用卡敏感信息。 它实现持久化和隐蔽性的手段堪称一套组合拳。首先,它通过获取设备管理员权限、控制锁屏状态、隐藏自身图标,并设置开机自启及SD卡监听,确保自己牢牢驻留在用户手机中。更狡猾的是,它会实时监控当前运行的应用,只在用户使用特定目标应用时才弹出欺骗界面,极大增加了欺骗的成功率。 在信息窃取层面,SlemBunk不仅读取短信记录、电话号码和设备ID,还能通过高优先级的广播接收器,监听甚至拦截所有短信。木马通过短信下发“CC”指令,实现远控。整个流程从激活、隐藏到窃密、回传,环环相扣。这种设计既高效又隐蔽,也为后续的变种演化提供了一个技术蓝本。

本机暂存
IT 2016-03-07 23:54:19 / 累计浏览 1,545

Android安全–ELF文件格式解析

这篇文章深入解析了Android安全中的核心——ELF文件格式。作者从ELF(可执行与可链接格式)的起源和三种目标文件类型(可重定位、可执行、共享目标)讲起,清晰地勾勒出这种二进制格式为程序链接和执行分别提供的“节区”与“段”两种并行视图。 文章的核心是对ELF文件结构的逐层拆解。它以Android NDK中的hello-jni.so文件为实例,详细剖析了ELF头部(包含魔数、文件类型、机器架构等关键标识)的数据结构与各字段含义,并进一步阐述了程序头部表(定义进程映像如何创建,如可加载段PT_LOAD)和节区头部表(描述代码、数据、符号表等链接信息)的作用。文中还贴心地指出了数据对齐规则等实现细节。 整篇文章逻辑清晰,结合了结构定义、字段注释和具体示例,将看似复杂的二进制文件组织方式讲得透彻明了。对于从事Android底层开发、安全分析或逆向工程的技术人员来说,这是一份扎实的ELF格式入门与参考指南,有助于理解从编译到链接再到加载运行的完整过程。

本机暂存
IT 2016-03-07 23:34:07 / 累计浏览 3,888

深入解析DLL劫持漏洞

这篇文章深入剖析了DLL劫持这项古老但依然实用的技术。作者从Windows DLL加载机制的核心漏洞出发,对比了Windows XP SP2前后搜索顺序的关键差异,特别是SafeDllSearchMode开启与否对“当前目录”优先级的影响。 文章重点区分了三种主流的利用场景:针对应用程序安装目录的劫持(需要写权限,常用于持久化或“白加黑”免杀)、针对文件关联的劫持(只需用户打开特定文件,如PDF,条件最简单),以及针对安装程序的劫持。通过Notepad++安装包的ProcMon抓包实例,具体展示了如何识别和利用漏洞。 此外,文章还结合了HaifeiLi关于Chrome/Edge浏览器“自动下载”漏洞的案例,拓展了DLL劫持在现代软件环境中的攻击面,并简要提及了新版Edge对DLL注入的缓解措施。整体来看,它系统梳理了从原理、挖掘(如使用ProcMon过滤)到利用的完整链条。

本机暂存
IT 2016-03-02 00:02:05 / 累计浏览 4,145

12行代码的浏览器DoS攻击分析及防御

这篇讲的是如何用12行JavaScript代码让主流浏览器甚至移动设备陷入DoS崩溃。作者从pjax技术所依赖的`history.pushState`接口切入,剖析了其工作机制:该接口允许无刷新修改URL并记录历史状态。 攻击的核心在于一个循环:代码通过上万次调用`history.pushState`,不断向浏览器历史堆栈中堆积记录。这会导致页面地址被无意义的长字符串覆盖,CPU与内存占用率在短时间内飙升至100%,最终造成Chrome、Firefox、Safari等浏览器崩溃,甚至引发iPhone重启或Android应用闪退。作者在虚拟机环境中的实测数据,清晰展示了循环次数与系统资源耗尽之间的关联。 在剖析原理的同时,文章也给出了面向用户的直接防御建议——保持安全意识,不轻易点击来源不明的链接。更深层次地,它提醒我们,现代Web API在提升体验的同时,也可能被滥用为攻击向量。开发者在使用这类接口时,需要考虑其潜在风险与边界情况。

本机暂存
IT 2016-03-01 23:44:21 / 累计浏览 2,764

看见CSRF我不怕不怕了

这是一篇典型的故障排查与实战经验分享。作者从自身接手安全项目时遇到的CSRF(跨站请求伪造)问题出发,坦诚自己之前因不理解而一直采用屏蔽或绕过的“鸵鸟策略”,最终在Django+Jinja2的实际环境中不得不直面解决。 文章首先清晰地拆解了CSRF是什么、为何危险以及其攻击原理,为后续实战奠定了理论基础。核心价值在于后半部分的解决方案详解:从Django中间件的配置原理,到在模板(包括Jinja2)中正确植入csrf_token的具体代码,再到处理AJAX异步请求时的注意事项,都给出了可操作的步骤。作者不仅讲了“怎么做”,也解释了中间件检查的“为什么”,比如必须置于SessionMiddleware之后等细节,让读者知其然也知其所以然。 对于曾对CSRF一知半解、或在Django项目中遇到同样困扰的开发者来说,这篇文章提供了从概念扫盲到落地修复的完整路径,是克服安全“踩坑”经历的一份实用参考。

本机暂存
IT 2016-03-01 13:55:18 / 累计浏览 7,546

WiFi 万能钥匙原理和危害探究

这篇讲的是,作者从一次偶然发现入手,探究了WiFi万能钥匙这类软件背后令人不安的运作逻辑与潜在风险。 他发现,即便自己从未主动使用,手机的WiFi列表也可能被软件打上“一键免费连接”的提示。分析指出,软件的核心在于一个庞大的云端数据库,它通过获取用户设备上保存的明文或弱加密密码,将每个用户的1-10个WiFi信息(如MAC地址、密码)上传汇总。凭借数亿用户,这个数据库的规模相当惊人。 连接时,软件会申请位置权限,以缓存附近WiFi信息并可能用于广告投放。它主要通过三种方式尝试联网:利用更精准的MAC地址进行密码匹配、对弱口令(如常见数字组合)进行撞库,以及可能在后台静默尝试暴力破解。 文章强调,真正的隐患不止于网速变慢。一旦网络被具备技术能力的攻击者蹭上,他们可能进一步尝试破解路由器管理密码,从而在同一局域网内实施欺骗、投毒等控制手段。作者最后给出了一些实用建议,如为访客单独设置受限的WiFi子网络,或隐藏SSID广播,来防范这种“无感知”的蹭网行为。

本机暂存
IT 2016-02-29 23:47:16 / 累计浏览 4,925

HTTPS证书生成原理和部署细节

这篇讲的是 HTTPS 是如何保障通信安全的,以及我们该如何亲手生成和部署证书。文章从一个生动的电信用户遭遇 DNS 劫持、被注入广告的案例切入,点明了在 HTTP 明文传输下隐私暴露的风险。 作者详细拆解了 HTTPS 的核心安全机制:它在 HTTP 基础上增加了加密、认证和鉴定。通过一张流程图和清晰的步骤,文章描述了客户端与服务器如何通过交换随机数并生成会话密钥(session key)来建立安全通道。同时,文章也指出了仅有非对称加密不够,必须引入受信任的第三方 CA 来签发数字证书,以防中间人攻击。 文章进一步科普了 CA 证书的三种验证等级(DV、OV、EV),并提供了实操部分:使用 OpenSSL 命令从生成密钥对、创建 CA 根证书,到最终签发服务器证书的完整流程。最后,对于个人或小型站点,文章也提到了自签名证书这一低成本解决方案。 整体上,这是一篇从原理到实践的指南,既解释了“为什么需要 HTTPS”以及“它是如何工作的”,也手把手教你“如何自己动手做”。

本机暂存