IT技术博客大学习 共学习 共进步

安全

共 176 篇文章

IT 2014-11-28 12:47:39 / 累计浏览 2,635

如何安全的Include文件

这篇讲的是PHP开发中一个容易被忽略的陷阱:include外部文件时可能引发的变量污染问题。作者从一个看似简单的调试开关案例出发,揭示了配置文件中的临时变量如何悄悄覆盖主脚本的变量,导致程序行为异常——就像二战时阿登高地被绕过一样,安全之处往往藏着隐患。 文章指出,问题的根因在于include操作时文件内的变量直接进入了当前作用域。作者提供的解决方案很简洁:将include语句包裹在匿名函数中执行,利用函数创建独立的作用域。这种用call_user_func执行闭包来隔离变量作用域的做法,在JavaScript中很常见,但在PHP代码里却很少有人刻意运用。 对于日常编写PHP代码的开发者来说,这个技巧能有效避免因include文件带来的隐蔽bug,尤其在多文件协作或修改第三方配置文件时特别实用。作者通过这个具体场景提醒我们,那些“简单”的基础操作,恰恰需要多一分警惕。

IT 2014-11-21 23:18:24 / 累计浏览 2,890

流量劫持 —— 浮层登录框的隐患

这篇技术文章深入剖析了看似“华丽”的网页浮层登录框背后隐藏的安全风险。作者从传统登录跳转模式说起,对比指出,尽管现代浮层登录框通过HTTPS传输数据,但其寄生在HTTP主页面中的特性,使得整个登录过程极易受到XSS注入攻击。更关键的是,文章通过实战演示揭示了它与“缓存投毒”攻击相结合的巨大危害:攻击者只需短暂劫持网络,即可篡改长期缓存的脚本,从而在用户回到安全网络后,仍能悄无声息地替换掉官方登录框,窃取账号密码。 文章的核心结论是,这种交互模式的改变“不可逆”地削弱了用户原有的安全识别习惯。即使网站撤回浮层设计,黑客利用XSS伪造的相似界面仍可能骗取用户信任。最终,作者给出的终极安全建议是全站推进HTTPS,彻底消除攻击面。整个分析过程结合了原理讲解与攻击复现,警示意义明确。

IT 2014-11-21 23:09:56 / 累计浏览 2,231

XSS 前端防火墙 —— 内联事件拦截

传统XSS防御依赖服务端过滤与转义,但漏洞仍频发。这篇文章另辟蹊径,提出了一种部署在用户浏览器端的“前端防火墙”预警方案。 作者的核心思路是将防御逻辑从被动的事后过滤,转向主动的事前拦截。他认为XSS的执行本质是浏览器中的事件触发,因此可以借助DOM事件模型,在攻击代码实际运行前对其进行拦截分析。 文章详细探讨了如何针对“内联事件”这类常见XSS注入点,利用addEventListener的捕获阶段机制,抢先一步执行防御脚本。这套方案不仅能拦截恶意事件,还能实时上报异常信息,让开发团队在漏洞被大规模利用前就收到预警。它把每一个用户的浏览器都变成了一个实时的监控节点,变被动为主动。

IT 2014-10-15 22:54:26 / 累计浏览 1,937

FakeID签名漏洞分析及利用(Google Bug 13678484)

这篇讲的是作者如何提前深入分析了一个影响安卓多年的签名漏洞(Google Bug 13678484)。在BlueBox于Blackhat大会前夕披露该漏洞后,作者随即进行了复现与利用研究。 文章的核心在于剖析漏洞的根因:安卓系统在校验APK签名证书链时存在缺陷,未能严格验证所有证书的合法性。攻击者可利用这一点,构造包含伪造根证书的恶意签名。尽管APK本身的完整性校验不会被破坏,但系统中依赖证书来验证身份(如WebKit插件认证)的机制会被欺骗。 作者通过具体的攻击场景演示了危害:成功将自研APK伪装成Adobe Flash Player插件,注入到其他应用的WebView中。更进一步,文章指出单纯注入还不够,需遵循插件开发规范(如导出特定Native接口)才能在对方进程内触发代码执行,从而真正突破沙箱限制。 这篇文章的价值在于,它不仅揭示了一个长期存在的底层安全问题,还完整地展示了从原理分析到漏洞利用的技术路径,对理解安卓签名机制的安全边界很有启发。

IT 2014-09-17 13:42:04 / 累计浏览 1,950

launchAnyWhere: Activity组件权限绕过漏洞解析(Google Bug 7699048 )

这篇讲的是一个影响安卓2.3至4.3版本的权限绕过漏洞——“launchAnyWhere”。作者从AccountManagerService的工作机制切入,揭示了一个严重的设计问题:当应用请求添加账户时,系统服务会调起认证应用并转发一个Intent,但这个Intent的内容完全由认证应用控制。如果请求方是系统应用(如“设置”),它就会在用户不知情的情况下,执行攻击者精心构造的Intent,从而启动任意未导出的Activity。 漏洞的巧妙之处在于其利用链非常简洁:攻击者通过特定Intent调起“设置”中的AddAccountSettings,就能让系统自动完成从触发到启动目标组件的全过程。文章列举了几个危害场景,例如绕过验证直接重置手机PIN码,或利用未导出的WebView加载恶意页面。这本质上是一个权限委托的信任链被恶意劫持的案例。 对于移动安全研究者而言,这篇文章清晰地展示了如何从一个合法的系统服务接口中,挖掘出突破进程隔离限制的攻击面。它提醒开发者,即使是系统服务的“便利”设计,也可能在无意中成为危险的权限提升通道。

IT 2014-05-27 22:51:30 / 累计浏览 1,689

安全无小事--技术团队防守一二三

这篇讲的是一个技术团队如何系统性构建安全防线,核心观点非常直接:安全无小事,且完全取决于团队日常工作的严谨程度,而非老板投入的资源多少。作者从使用某创业团队APP时的一次无心之举——发了条可能被误解的微博——切入,引出了对大型技术团队安全防守的深度思考。 文章围绕“内防”与“外攻”两大支柱展开。“内防”强调苦练内功,核心在于为上千人的团队建立固定流程。这包括统一的安全代码框架(如集成防XSS、SQL注入)、严格的网络与硬件环境管控、周期性的安全走查、对所用开源软件漏洞的快速跟进,以及对高风险项目和重要数据流动的绝对原则。“外攻”则承认内防可能仍有短板,因此要借助白帽平台等外部力量,并自建响应平台,以尽快发现并弥补漏洞。此外,文章还特别指出了非技术层面(如密码管理)的风险隔离问题。 作者的结论掷地有声:没有出过安全问题,不代表团队没有短板,更不代表用户数据绝对安全。真正的安全,藏在每一个开发人员的日常操作细节里——“不在乎有没有漏洞,就是认真。”

IT 2014-05-11 21:28:23 / 累计浏览 8,337

2014年1月21日中国互联网DNS瘫痪事件原因分析

这篇文章讲的是2014年1月21日中国互联网大规模DNS瘫痪事件的技术剖析。作者从一个普通用户的视角出发,描述了当时所有网站都打不开的异常现象,并以通俗的“电话本”比喻,解释了DNS作为互联网基础设施的核心作用。 作者详细梳理了从用户输入网址到获得IP地址的正常DNS解析流程,并与当天故障时的实际流程进行对比:所有查询都直接返回了同一个错误IP(65.49.2.178),跳过了正常的层层解析步骤。通过分析,作者排除了全球根域名服务器自身出错的可能,将原因锁定在“DNS劫持”上——即有人伪造了根服务器的响应。 文章进一步通过追踪那个错误IP的历史关联信息,发现其与特定组织及“无界浏览器”等翻墙工具存在关联,并指出这种大规模、快速的劫持手法与GFW(防火长城)的运作机制高度一致,从而提出了事件可能由某墙导致的观点。整个分析过程层层递进,从现象描述到技术原理拆解,再到幕后推断,为读者提供了一次生动的网络故障排查案例。

IT 2014-04-21 12:44:29 / 累计浏览 5,175

公钥私钥加密解密数字证书数字签名详解

这篇讲的是密码学里那些让人头晕的基础概念——公钥私钥、数字证书、数字签名。作者从自己最初的困惑出发,通过阅读和整理,最终把它们之间的关系和流程梳理得非常清晰。 核心在于理解两个相反的过程:加密解密与数字签名。公钥加密的数据只有私钥能解,保证了机密性;而用私钥对摘要进行“签名”,对方用公钥验证,则能确保数据的完整性和来源真实性。 但新的问题来了:接收方如何安全地获取并信任发送方的公钥?这引出了CA(证书颁发机构)的角色。CA用自己的私钥为用户的公钥签名,制作成数字证书,相当于为公钥提供了可信的“身份证”。接收方只需预先安装一次CA根证书,就能验证所有签发过的证书,从而安全地拿到对方公钥完成验证。 文章将抽象的流程与HTTPS的实际应用结合,最后提示,理解了密钥交换的全过程,也就明白了HTTPS安全通信的基石。它把一个复杂的知识网络拆解得层次分明,很适合用来建立清晰的第一印象。

IT 2014-04-15 22:38:13 / 累计浏览 3,168

OpenSSL HeartBleed漏洞原理漫画图解

OpenSSL的“心脏出血”漏洞曾引发全球网络安全界的震动,用户们最直接的担忧就是:我们的重要数据,比如支付宝里的钱,还安全吗? 这篇文章没有停留在事件表面的讨论,而是借助xkcd网站经典的漫画形式,用最生动直观的方式,拆解了这个漏洞的核心原理。它抓住了问题的关键——“心跳检测”机制。用户通过TLS加密链接向服务器发送“心跳”信号来确认其在线状态,服务器则会回应。漏洞就出在,如果用户发送的“心跳”信号中声称的数据长度(pad length)大于实际数据长度,服务器不仅不会报错,反而会返回同样规模的数据。这相当于允许攻击者越过边界,读取服务器内存中本不该被访问的信息。 文章将复杂的技术漏洞转化为一幅易懂的漫画,清晰地展示了这种“请求与响应”的不匹配如何导致内存信息泄露,帮助非安全领域的读者也能理解问题的本质,明白为何一个编程错误能引发如此广泛的危机。

IT 2014-02-18 12:51:14 / 累计浏览 4,488

中国黑客传说:天生我材

这是一篇关于一位传奇黑客“A君”成长与地下世界经历的深度故事,属于典型的事件复盘与观点呈现类文章。 作者从A君的启蒙时代讲起,他从小学学习编程,受2001年中美黑客大战影响投身黑客领域。文章细致刻画了他如何通过一本牛津字典啃国外技术论坛、用自制木马进行笨拙的“爱情攻击”,以及遇到一位美国师傅后技术视野的飞速提升。A君的故事真正“硬核”之处在于他加入地下组织后的实战:他们通过全球部署的上千台服务器蜜网系统,每年捕获数十万次攻击行为并挖掘0day漏洞;更早于2007年就通过劫持数百万台家用路由器的DNS并分析流量,实现了当时还被称为“商业智能”的数据挖掘变现。文章通过A君“入侵安全公司”来反向研究行业动态的视角,以及他们利用微软MAPP计划的POC编写Exploit的大胆操作,揭示了黑客技术前沿与安全行业之间“道高一尺,魔高一丈”的微妙博弈。 这不仅仅是一个天才少年的黑客梦,更是一幅关于自驱力、师徒传承与草根技术精英如何在灰色地带开辟道路的生动图景。它向读者揭示了真实世界中技术能力与机遇结合可能走向的极端,以及黑客文化中独特的生存法则与思维方式。

IT 2014-02-18 12:49:39 / 累计浏览 2,433

安全问题的本质

这篇从一则广泛流传的“手机丢失后支付宝资金安全”传闻切入,探讨了一个更根本的问题:安全问题的本质是什么?作者在自己的《白帽子讲Web安全》一书中,给出了核心论断——安全问题的本质,其实是信任问题。 以此视角审视支付宝,其安全模型在设计时,就将手机设定为所有可信任环节中的“最后一环”和优先级最高的一环。这并非疏忽,而是一种演进后的妥协:曾经使用的邮箱验证、数字证书等方式早已被黑客技术突破,变得不够可靠。但随着“余额宝”带来资金规模激增,手机作为唯一强信任锚点的风险也随之放大。 作者认为,单纯堆叠安全功能并不可取。他提出了几个解决方向:对大额资金用户,系统无法完美时可引入人工服务作为补充;应设置更严格的大额交易限制与异常冻结机制;最高境界或许是引入保险,从根本上解决用户“敢不敢放钱”的信任障碍。文章最终指向一个朴素的理念:让安全回归简单,或许是比复杂功能更重要的设计准则。

IT 2013-10-17 12:20:06 / 累计浏览 2,793

webgame中常见安全问题、防御方式与挽救措施

这篇讲的是网页游戏开发者在实际项目中遇到的安全“坑”与应对策略。作者从知乎上一个关于游戏安全的问题出发,结合自身经历(包括一次因整型溢出导致的刷钱bug),决定从研发者视角系统梳理安全问题。 文章聚焦几个核心场景:登录认证中hash字符串的时效性与绑定信息设计;联运游戏充值接口的签名验证,并以腾讯接口为例展示了严谨的签名逻辑;以及由于参数未过滤直接include导致的远程文件引入漏洞(RFI)。针对RFI,作者分享了其项目通过Gateway统一入口、结合类反射机制进行严格过滤的解决方案。此外,文章也简要提到了SQL注入在AMF等特定消息格式下可能被忽视的风险,并指出了解决方向。 作者特别强调,他修改了原知乎问题的描述,将重点从“如何入侵”转向“如何防御”与“事后最小化损失”,这也正是文章的核心价值:它不仅揭示漏洞原理,更侧重于提供可落地的防御编码实践与架构改进思路,旨在加固游戏安全壁垒,减少厂商与玩家损失。

IT 2013-10-15 13:45:26 / 累计浏览 2,436

挖漏洞有什么社会价值?

这篇源自安全圈的一场热议,探讨了一个看似矛盾却本质深刻的问题:挖掘漏洞究竟创造了何种社会价值? 从微博上的一则提问出发,多位安全专家给出了截然不同的视角。有观点认为,漏洞挖掘本质上是一种更深层的质量控制,类似于软件测试;也有观点从经济角度剖析,认为其价值在于引发“价值重分配”,攻击者与防护者在此过程中各获所需。更深入的讨论则将其置于人类社会发展的框架下:在信息化日益重要的今天,挖漏洞是实现层面的风险控制,旨在降低整个社会因系统脆弱而面临的减速甚至毁灭风险。 作者并未止步于此,而是将思考延伸至各类精巧的“黑客工具”。他坦言,若以当下普世价值观衡量,这些用于破坏的技术很难被赋予正面意义。但若将其视为人类历史进程中一个必然存在的、关于“安全”与“对抗”的古老命题的当代映射,或许能豁然开朗。正如历史上的冲突在带来灾难的同时也客观推动了技术飞跃,未来的某些重大突破,或许正孕育于这些当下被视为“邪恶”的技术探索之中。

IT 2013-09-15 22:37:57 / 累计浏览 1,008

以keystore方式为play!应用建立单向/双向SSL

这篇讲的是如何在Play!框架中配置SSL安全连接,而且特别澄清了官方文档的不足之处,避免读者被过时资料误导。 作者先理清了SSL的核心:用对称加密传输数据,非对称加密(RSA)安全传递密钥。在此基础上,解释了单向SSL(服务端验证)和双向SSL(服务端与客户端互相验证)的区别,后者适用于需要严格控制访问权限的内部服务。 配置的关键在于正确设置keystore。文章详细演示了生成服务端密钥库(certificate.jks)的命令,并特别指出密钥库口令与密钥口令必须一致这个容易忽略的坑。对于单向SSL,配置到此即可。 如果需要双向SSL,流程还涉及在客户端生成并导出证书,然后将该证书导入服务端的密钥库进行“授信”。整个过程通过具体的keytool和openssl命令逐步拆解,甚至涵盖了使用curl和浏览器进行测试的不同方法,非常实操。 文章用清晰的步骤,把Play!应用如何建立从单向到双向的SSL连接,从原理到命令都讲透了。

IT 2013-09-07 15:39:56 / 累计浏览 5,373

深入浅出Session攻击方式之一 – 固定会话ID

这篇技术文章聚焦于Web安全中一种具体且危险的攻击手法:固定会话ID(Session Fixation)。作者从PHP应用普遍面临的安全挑战入手,深入剖析了攻击者如何诱使用户使用其预设的Session ID来访问系统,从而实现会话劫持。 文章不仅阐述了攻击原理——即攻击者通过URL参数(如`?PHPSESSID=1234`)等手段固定一个会话标识,并用直观的代码示例和测试过程演示了其危害性:只需访问特定链接,新浏览器就能“继承”之前浏览器的会话状态。更关键的是,文章给出了明确的防御方案:核心在于在用户登录、权限变更等关键节点,及时调用`session_regenerate_id()`函数重新生成Session ID,彻底切断攻击者的预设路径。 作者还进一步探讨了经验更丰富的攻击者可能先自行获取合法Session ID再实施固定攻击的场景,强调了防御措施需具备时效性和全面性。整篇文章由原理到实践,再到防御升级,为开发者提供了一份清晰的攻防路线图。

IT 2013-07-10 13:55:53 / 累计浏览 4,411

QR二维码的攻击方法与防御

这篇来自“黑客讲坛”的文章深入剖析了QR二维码背后的安全隐患。作者blackeagle从二维码的结构原理切入,详细解读了其寻景图案、校准图案等组成部分,并指出其设计上依赖纠错码容错的特性。 文章的核心价值在于揭示了一种具体的篡改攻击方法:攻击者可以通过对比原始QR码与目标恶意码的模块差异,用笔精准涂改少数白色模块,利用QR码自身的纠错能力,就能将扫码结果“劫持”到另一个URL地址。在此基础上,文章进一步归纳了网络钓鱼、恶意软件传播、个人隐私泄露(如火车票二维码信息被识别)等实际攻击场景。 这篇文章不仅科普了二维码的技术细节,更重要的是揭开了日常便捷工具的安全风险一角,让读者认识到每次扫码背后可能存在的“陷阱”,对提升公众和开发者对二维码安全的重视很有启发。

IT 2013-06-08 23:36:19 / 累计浏览 3,947

使用Http-only Cookie来防止XSS攻击

这篇文章从Cookie在维持HTTP会话状态中的关键作用切入,揭示了XSS攻击窃取Cookie的典型手法——攻击者只需注入一段简单脚本,就能通过`document.cookie`获取敏感信息并外传。针对此威胁,文章分析了几种常见防护思路的缺陷:与User-Agent绑定易被同步窃取,与IP绑定则影响ADSL等动态IP用户的体验。 核心方案聚焦于**Http-only Cookie**。一旦该属性被设置,浏览器就不会将对应的Cookie暴露给客户端脚本,从根源上切断了XSS攻击读取Cookie的路径。文章具体展示了Http-only的设置语法,并指出ASP.NET等主流框架已提供便捷的配置接口。同时强调,这并非一劳永逸的解决方案——它不能阻止攻击者进行AJAX提交等恶意操作,因此实际部署中必须与其他安全策略组合使用,例如微软的Web Protection Library。 简言之,文章厘清了“为何需要Http-only”以及“它如何工作”,并提醒开发者将其作为纵深防御体系的一环,而非唯一防线。

IT 2013-05-28 22:20:58 / 累计浏览 3,754

Perl 程序源码怎么加密

这篇讲的是如何给Perl程序源码加上一层保护,防止被直接查看。作者从保护SSH密钥和商业程序源码的现实需求出发,介绍了一种基于`Filter`模块的轻量级加密方案。 核心思路是在Perl解释器前插入一个“过滤器”:通过`use`一个自定义模块,在源代码被解析前先进行解密。这类似于PHP中的Zend加密机制。文章详细演示了具体实施步骤:首先下载并解压`Filter`模块,然后需要修改两个关键文件——加密程序`encrypt`和解密端的C代码`decrypt.xs`,在其中设置统一的加密密钥(字符)。使用这个定制好的程序对你的`.pl`文件进行加密,生成后的文件外观已不可读,但功能完全正常。 这个方案的巧妙之处在于,加密与解密使用同一套自定义密钥逻辑。部署时,只需在目标服务器上安装好包含了你修改过的`decrypt.xs`所编译出的so文件的`Filter`模块。由于最终的解密逻辑被编译成了二进制的so文件,密钥不会直接暴露,从而在一定程度上保证了源码的安全性。文章还附带了一个用于验证或还原的反解程序,完成了从加密到部署再到可能的调试的完整闭环。

IT 2013-05-15 22:58:42 / 累计浏览 3,332

IIS写权限利用续以及写权限漏洞来由解释

这篇文章聚焦于一个具体的技术疑问:在 IIS 的 .NET 环境下,为什么利用 WebDAV 写权限时,经典的 MOVE 命令会失败并返回 207 状态码。 作者从自己三年半前留下的实践困惑出发,不仅解答了这个谜题,还深入剖析了所谓“IIS写权限漏洞”的根源。他指出,这并非复杂的高深漏洞,而是源于两个典型的管理错误配置:启用了通常不需要的 WebDAV 服务器扩展,以及在网站权限中开启了“写入”权限。这本质上是“人祸”。 对于大家熟知的利用流程——先 PUT 一个 txt 文件,再 MOVE 成 asp 脚本——作者给出了在 .NET 环境下成功的关键技巧。他利用了 IIS6.0 的文件解析漏洞,在目标文件名中加入分号,例如将 `oldjun.txt` MOVE 到 `shell.asp;1.jpg`,从而绕过了环境限制,成功获取 webshell。 文章最后推荐了 DAV Explorer 工具,并总结道,只要管理员避免上述错误配置,就能从根源上杜绝此类问题。

IT 2013-05-14 22:30:23 / 累计浏览 3,131

open_basedir后可能存在的安全隐患

这篇文章深入剖析了PHP常用安全配置`open_basedir`在实践中暴露出的两个隐蔽风险,均源于底层实现机制。 第一个风险是路径检查的“漏洞”。当代码逻辑对用户输入路径做了简单前缀校验后,若拼接的目录不存在,Windows和Linux文件系统行为不同。但PHP在开启`open_basedir`时,其路径规范化处理会忽略对目录真实存在性的检查。这导致攻击者可能利用`../../`这样的路径,绕过本应受限的目录读取到配置文件等敏感信息,作者指出这更像是一个PHP实现上的小缺陷。 第二个风险则源于配置值的写法差异。如果管理员配置`open_basedir`时路径末尾没有加斜杠(如`/home/www`),而目标目录外恰好存在名称前缀匹配的目录(如`/home/wwwoldjun`),就可能通过目录遍历实现跨越。作者通过虚拟主机环境的渗透实例说明,一个细微的配置笔误就可能让本应隔离的站点彼此暴露。 作者的结论基于实际的渗透测试,这两个发现提醒我们,即使使用了看似“无敌”的安全配置,对底层机制和配置细节的疏忽依然可能留下致命的攻击面。