黑客攻防日记

攻防世界-fakebook-(详细操作)做题过程 阅读详情

小黑的日记  2010-6-22 晴

我最近发现了一个网站,是个博客平台,很火,大家都到那里去写注册账号,写日志。

我也好奇地去看了看,不过,我主要是想看看有什么漏洞没有,哈哈。

我发现他这个网站只用了HTTP协议,没用HTTPS,换句话说,所有的数据都是明文传输的,包括用户名和密码, 我觉得机会来了。

我尊敬的大哥给了我几台服务器的信息,他说通过这几台服务器能够偷窥,不,是监视发往博客平台服务器的HTTP数据,还能通过这几台服务器当个中间人,拦截修改请求和响应, 这让我喜出望外。

既然数据都是明文的,我就轻松地拿到了很多人的用户名和密码。更有意思的是,这些人的用户名和密码在很多平台都是一样的,这下次发财了!

我把用户名和密码都献给了大哥。

张大胖的日记    2010-6-23  阴

最近收到了不少投诉,都是说密码泄露的问题,我觉得不可能啊,因为我根本就没有明文存储密码!

有些人还不相信,我百口难辨。

在服务器的数据库里,我存的都是hash过的密码,为了防止黑客破解, 每个密码还都加了盐(salt)以后才做的存储。 密码怎么可能泄露?

640?wx_fmt=png

640?wx_fmt=png

想来想去,我觉得还是从浏览器到服务器这一段出了问题,肯定是有人在偷窥, 老子一定要加密!

我想用RSA这种非对称的加密方式(码农翻身注: RSA的详细解释戳这里):

服务器生成public key 和 private key , 浏览器用JavaScript使用public key 对密码加密, 然后服务器端用private key 进行解密。 这样,密码在传输过程中就不会被窃取了。

640?wx_fmt=png

小黑的日记  2010-6-24 多云

我突然发现,好多密码都被加密了!

我让大哥看了看,大哥说没有私钥,我是无法解密的, 不过他建议我当个中间人,也生成一对儿public key 和private key , 对博客网站冒充是浏览器, 对浏览器冒充是博客网站。

我把我的public key 发给浏览器,浏览器把加密后的数据发给我,我用我的private key 解密, 就拿到了明文密码。

然后我还得用博客网站的public key 把密码加密,发给博客网站,让它浑然不知。

这件事难度不小,真是让人兴奋。

张大胖的日记, 2010-6-25 阴

MD, 密码还是泄露,气死老子了。

幸亏Bill提示我说可能有中间人, 我怎么忘了我和Bill 建立HTTPS的时候已经考虑到中间人这种情况了?

(码农翻身注: 《一个故事讲完HTTPS》)

中间人难于防范,还得搞数字证书证明身份,如果我把这一套都搞好,岂不是又实现了一遍HTTPS? 重复发明轮子!

要不我也上HTTPS ,一劳永逸地解决问题? 但是我这是个小网站,搞个正规的、浏览器不会提示安全风险的证书也不便宜吧?

真是烦人!

小黑的日记, 2010-6-26 晴

当中间人真是爽!

张大胖的日记, 2010-6-27 小雨

老子决定不再折腾HTTPS了!

Bill建议我可以对浏览器发过来的密码加密, 其实也不是加密,而是做个Hash, Hash过的数据是不可逆的,不能恢复原始的明文密码。

浏览器端:

hash(password,salt) -> hash_password

然后浏览器把(username, hash_password) 发给服务器端。

服务器端:

从数据库获得之前保存的hash_password

和浏览器传递过来的hash_password比较,看看是否相等。

从此以后,网络上传输的都是所谓hash_password,再也看不到明文密码了, 让那帮偷窥的孙子们哭去吧!

ps : 在浏览器中进行hash的时候,有一个salt参数, 这个salt从哪里来? 肯定是从服务器端获取的啊。

小黑的日记, 2010-6-28 晴

大哥猜对了,那家伙果然对密码做了hash,然后再发到服务器端,现在我难于获取明文密码了。

不过,那家伙还是留了一个大漏洞,既然我还能监听到 user_name, hash_password, 我就重新发送一下到服务器端,还是成功登陆这个博客系统了! 哈哈!

张大胖的日记, 2010-6-29 中雨

焦头烂额!

这个浏览器端的hash操作没能发挥作用。今天研究了半天,才发现那些黑客可以重放攻击。

Bill说主要的原因还是salt固定导致的, 我决定再增加一点难度,增加一点动态的东西:验证码(captcha)!

用户登录的时候,发个验证码(captcha)到浏览器,这个验证码每次都不一样。

浏览器端:

第一次Hash:

hash(password,salt) -> hash_password1

第二次Hash:

hash(hash_password1,captcha)  -> hash_password2

然后浏览器把(username, hash_password2,captcha) 发给服务器端。

注意:hash_password1并不会发送给服务器, 黑客们窥探不到。

服务器端:

验证captcha 是否正确

使用username从数据库获得hash_password

hash(hashed_password,captcha)  --> hash_password3

比较hash_password2和hash_password3,看看是否相等。

如果相等,登录成功,否则,登录失败。

hash_password2是使用一次性的验证码生成的, 即使被那帮孙子截获,他也没法展开重放攻击,因为验证码已经失效了。

小黑的日记, 2010-6-30 阴天

那家伙越来越聪明了嘛,增加了验证码,老子的重放攻击也不管用了。

不过大哥真是威武,他告诉我要另辟蹊径,想办法攻击博客系统的数据库,只要把数据库拿到了,用暴力的方法破解它!

今晚就开始行动!

张大胖的日记, 2010-6-30 多云

Bill今天来了,他告诉我一件重要事情,不管你前端怎么加密,后端的安全措施一点都不能少!

我决定,把用户在浏览器中输入的密码做两次hash, 一次在浏览器端做,另外一次在服务器端做,把最终的结果作为密码存到数据库中。

浏览器端:

front_hash(password,salt) ->front_hash_password

发送(username,front_hash_password)到服务器端

服务器端:

back_hash(front_hash_password,salt) -> backend_hash_password

和数据库保存的hash_password做比较, 看看是否相等。

这么做的结果就是, 如果那帮孙子真的把我的数据库给偷走了,他们也很难通过撞库的方式破解其中的密码。

因为他们通常会把常用密码建立一个字典,然后通过hash算法生成hash值,如果这个hash值和待破解数据库的值相等,不就知道明文是什么了吗?

但是我的数据库中的密码是通过front_hash_password 作为明文密码,再次hash计算出来的。而那个front_hash_password本身就是个散列值,毫无规则可言。假如它是个32位的16进制字符串, 那将会有16^32 中组合,这是个天文数字, 这样字典也就难以建立了。

如果黑客把密码也按照我的方式,把常用的密码做两次hash呢?

这也不怕,Bill说可以把浏览器端的hash算法设置得复杂一点,增加破解的难度。 当然复杂的算法比较耗时, 但是Bill说了: 浏览器是分布的,完全可以充分利用他们的计算能力嘛!

Bill真是个聪明的家伙。

为了最终的安全,我想我还是上HTTPS吧!

小黑的日记, 2010-7-1 阴

终于把博客系统的数据库给拖下来了,可是怎么都破解不了。

大哥研究了一下说,这个网站可能用了复杂的Hash算法, 破解起来太耗时间了,放弃吧。

更加悲催的是,我发现这个网站开始使用HTTPS了,真的难以下手了。

我还是去看世界杯去吧。

(完)

你看到的只是冰山一角, 更多精彩文章,请移步《2016文章精华》或者《2017文章精华》


码农翻身

用故事讲述技术

640?wx_fmt=jpeg

Unity资源逆向解析实战:从APK提取模型贴图的完整工作流 在移动应用开发中,资源管理与数据提取是核心技术环节。Unity引擎采用独特的序列化格式和打包机制,将游戏资源(如模型、贴图、音频)封装成二进制文件。理解其资源组织原理,对于性能优化、安全审计和资源复用至关重要。通过逆向工程方法,可以解析APK包内的Unity资源文件,还原出可编辑的原始素材。这一过程涉及APK解包、资源定位和格式转换等关键技术,在游戏开发研究、竞品分析和资源恢复等场景中具有重要价值。本文以AssetStudio为核心工具,结合APK Easy Tool,系统讲解如何从Unity应用安装包中完 阅读详情

相关推荐

Unity游戏模组加载器MelonLoader:从原理到实战的完整指南

在游戏模组开发领域,模组加载器是连接原生游戏与玩家自定义内容的关键桥梁。其核心原理在于通过动态链接库注入、运行时劫持等技术,在游戏进程初始化阶段介入,为第三方代码创建安全的执行环境。这一技术对于扩展游戏生命周期、丰富玩家体验具有重要价值,尤其在支持玩家社区创作的Unity游戏中应用广泛。针对Unity游戏常见的Mono和Il2Cpp两种运行时架构,模组加载器需要采用不同的技术方案:对于Mono架构,可利用其反射机制直接加载程序集;而对于性能更高、安全性更强的Il2Cpp AOT编译架构,则需通过Il2Cpp

weixin_33979203的博客 450

攻防世界-fakebook题目__详解

攻防世界题目的详解,sql。ssrf。php。

chinese_cabbage0的博客 1431

Unity3D动作RPG手游完整源码:架构解析与工程实践指南

在游戏开发领域,模块化架构与资源管理是构建可维护、高性能项目的核心基础。其原理在于通过清晰的分层设计(如表现层、逻辑层、数据层、网络层)解耦系统功能,降低代码复杂性,同时结合AssetBundle等资源管理方案实现高效加载与热更新。这种架构模式的技术价值在于显著提升开发效率、保障项目长期可维护性,并优化运行时性能,是应对中大型游戏复杂业务逻辑的工程最佳实践。其应用场景广泛覆盖从独立开发到商业团队的动作角色扮演游戏(ARPG)开发全过程。本文以一份完整的Unity3D动作RPG手游源码为具体案例,深入剖析其如

weixin_30781775的博客 353

攻防世界WEB练习-Fakebook

目录 题目场景 访问robots.txt 下载文件并查看 尝试进行注册 尝试SQL注入 猜测字段 查询数据库名 查询表名 查询段名 查看data数据 扫描目录 读取文件 查看源码 base64解码 提取flag 题目场景 访问robots.txt 下载文件并查看 <?php class Use...

墨鱼菜鸡 474

Unity游戏Mod开发实战:BepInEx与Harmony核心原理与避坑指南

在游戏开发与修改领域,运行时代码注入是一项关键技术,它允许开发者在无需源代码的情况下,为已编译的程序添加或修改功能。其核心原理通常基于钩子(Hooking)机制,通过拦截和改变程序原有的执行流程来实现。这项技术的价值在于极大地扩展了软件的生命力和可定制性,尤其在游戏模组(Mod)开发中应用广泛,能够修复玩家痛点、增加新内容或创造全新玩法。一个典型的应用场景是为Unity引擎开发的PC游戏制作功能增强模组。本文聚焦于实现这一目标的流行框架组合:BepInEx与Harmony。BepInEx作为插件管理系统,负

weixin_30924087的博客 418

Unity编辑器脚本实现PNG图集自动切割与命名工具开发指南

在游戏开发和UI设计领域,纹理图集(Texture Atlas)是优化资源管理和渲染性能的常见技术方案。其核心原理是将多个小纹理合并为一张大图,通过UV坐标映射实现高效绘制。这项技术能显著减少Draw Call,提升运行时性能,广泛应用于2D游戏、UI界面和数字孪生项目。然而,美术资源导入流程中,手动切割图集并命名子图是一项重复且易错的劳动密集型工作。通过编写Unity Editor脚本,开发者可以构建自动化工具,实现基于网格参数或自定义区域的智能切割,并结合可配置的命名规则引擎批量生成Sprite资产。这

congbao6525的博客 681

攻防世界-fakebook

如果我们确定了一个页面存在,访问后页面内容为空,有两种情况,要么页面本身就没有内容,那我们还玩个锤儿啊。base64,dGhlIHVzZXIgaXMgYWRtaW4,但是我们首先不知道如何对其添加语法,其次我们目前还不知道flag.php在那个目录下,因此我们利用sql注入看看。但是当我们使用联合查询的时候,发现其有过滤,我试了很久,最后借鉴其他的解法,发现是应该检测union select这个字符串,因此我们可以使用union++select活着union/**/select进行绕过。

wwxxss 868

网络攻防——被攻击日志

一次mongoBD被入侵的日志,萌新刚入手,表示真高兴大佬能够回访,更重要的是没有真的“打我”。

weixin_46560512的博客 7383

攻防世界(Web进阶区)——fakebook

这个思路可能并不是靶场原本想要让用户做的,但也无妨吧,怎样不是做呢。象棋高手总结了几十年的经验,也可能会输给新入门的新手。新手经验不足,更不谈什么战术,无心的一步棋,可能会让老者思前顾后,露出弱点。 进入靶场: 除了一个login登陆按钮,还有一个join注册按钮。开始之前,一般习惯性的扫描下目录,看看有什么。如果大家经常刷题,可以自己写一个目录扫描工具,然后自己整理一套刷题的...

垃圾管理员的垃圾站 8100

Ollama+FAISS+Embedding+Rerank+LLM 详细部署指南

下载安装Ollama 双击运行安装程序 安装完成后会自动启动服务 修改默认安装路径(避免C盘爆满) 或使用PowerShell: 验证安装 Linux系统部署: (二)准备模型 1. 拉取Embedding模型 2. 拉取LLM模型 注意:原文中提到的可能需要从自定义仓库拉取: 3. 下载Rerank模型 (三)安装依赖库 创建项目目录和虚拟环境: 二、主要功能实现 项目结构 (一)配置文件(config/config.yaml) (二)文本分块策略实现 创建 : (三)文档读取

AI技术改变世界 1583

C# 开发 WPS 插件实战:从环境搭建到功能实现(附完整代码)

本文提供了一份详尽的C#开发WPS插件实战指南,涵盖从环境搭建到功能实现的完整流程。通过COM技术,开发者可以创建自定义插件,为WPS Office扩展自动化功能,如文档处理与格式转换。文章包含核心概念解析、Ribbon界面集成、调试部署方法及完整代码示例,帮助开发者快速上手。

rust6ferris的博客 928

码农翻身精华文章

让你豁然开朗的干货文章合集,通俗易懂

perry_Fan 3万+

vc mfc listctrl使用虚拟列表 虚拟列表用法

note 虚拟列表可有效加载大量数据 需要处理listctrl的 LVN_GETDISPINFO 消息 使用虚拟列表 不能 使用 insert的方法插入数据,而是告诉listctrl 当前要显示多少行 使用SetItemCount函数告诉listctrl当前显示多少行 使用虚拟列表需要自己维护数据源 使用 添加list ctrl 控件 将其Owner Data 属性 设置为 True 添加...

知其所以然 398

攻防世界XCTF:fakebook

再注册账号时,发现了个post注入 目录扫描一下,存在robots.txt和flag.php 源码: Get()方法并没有对获取过来的url进行任何的过滤所以这里存在SSRF 这里存在一个get注入 从报错中可以看出网站绝对路径/var/www/html 使用updatexml报错注入查询信息 这里concat()注入还是有很多不方便,使用make_set()进行注入 综合...

末初 · mochu7 6708

把事务数据变成可分析数据:用 ABAP CDS 构建 Cube View 与 Query View,并拆解 OData 取数的底层路径

ABAP CDS分析建模:Cube与Query视图的实践解析 本文探讨了ABAP CDS分析建模中Cube View与Query View的核心区别与应用场景: 架构定位 Cube View作为分析型数据源,定义维度和度量的基础语义 Query View作为消费投影,控制查询可见字段和聚合逻辑 关键实现 通过@Analytics.dataCategory: #CUBE声明分析数据源 使用@DefaultAggregation确保指标口径一致性 @Analytics.query: true启用分析引擎特性 运

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 141

Spring AI Alibaba 项目源码学习(九)-其他继承BaseAgent

本文分析了Spring AI Alibaba Agent Framework中的A2aRemoteAgent实现,主要特点包括: 实现了Agent间的远程调用能力,支持分布式部署 核心组件包括AgentCard封装元数据、A2aNodeActionWithConfig处理调用逻辑、AgentCardProvider提供卡片管理 支持流式调用和状态共享机制 采用Builder模式构建Agent实例 通过指令传递实现Agent间通信 关键流程包括状态提取、请求构建、远程调用和状态更新四个步骤,形成Agent

820

360黑客攻防技术分享会

360黑客攻防技术分享会

图灵教育 4668

Thor芯片部署

英伟达Jetson Thor芯片性能分析与应用现状 摘要:英伟达最新发布的Jetson Thor芯片基于Blackwell架构,官方宣称AI算力达2070TFLOPS(FP4),较前代Orin提升7.5倍,配备14核Arm CPU和128GB内存。然而实际量产版算力缩水至700TOPS,且因4nm制程良率问题多次延期至2025-2026年交付。该芯片支持FP4/FP8量化、Transformer引擎等先进特性,适用于自动驾驶、机器人等边缘AI场景,但受供应链限制,国内厂商倾向自研方案。开发者可通过JetPa

xiaomu_347的博客 435

码农从菜鸟到大牛的必须文章

几年前我也是一个码农菜鸟,我也常常幻想着成为技术大牛。 如何减小与“大牛”的差距是我常常不得不面对的话题。今天从我走过来的路来总结一下成为大牛的技术之路。 先来看一张程序员的时间管理图。 除了时间管理,技术学习也是少不了的。下面推荐一下比较好的技术文章。 使用瀑布流插件 Masonry 进行瀑布流布局 业余草微信公众号上线了! 使用HTML5 Ca...

weixin_33816821的博客 333

7 中望CAD二次开发-标注(一)(ZRX C++)

尺寸标注是CAD设计中最常用的功能之一,软件内置了很多标注功能,可以通过使用这些标注工具,对需要标注的长度、角度等一个个进行标注。但这显然效率很低,学习CAD二次开发,就是要把人从重复的劳动中解放出来,实现批量标注。本文介绍,如何通过二次开发进行标注。

cilvsuanna的博客 340

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何从零开始学习一个框架

最近我本人也在学习一些新技术:webpack + vue全家桶。实际上它俩从去年就开始很流行了,今年已经不算新了。但我之前并没有在项目中使用。 前端框架更新频率快如疯狗,有时候会给我们前端er带来心理上的恐慌:艾玛,又出新框架了,要不要开始学呀!我对此的看法是,知其存在、保持关注、不必跟风。所以我到现在才开始学习vue也不觉得丢人,敢讲出来。今天跟大家分享一下,我是如何从零开始学习一个框架的,希...

weixin_33912445的博客 261

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

攻防世界web进阶区全讲解(超详细的哇)!!(持续更新)

进入题目链接 有登录 就可能有注册界面 url栏register.php 或者直接上御剑扫一下 同样发现注册界面 注册成功后 进行登录 跳转到了这个界面

wo41ge的博客 2789

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

给Java程序猿们推荐一些值得一看的好书

学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处: 1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 2、对着书上的代码自己敲的时候方便 "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是...

weixin_33709219的博客 1566

攻防世界-高手进阶区之Fakebook

进来页面看到的是这样的东西: 然后先去随便点一下看看东西,这里有个join,想要注册一下内容,但是这个blog的格式不对的话就没办法join 这里就暂时没有什么思路了。 接下来去看看目录有哪些东西: 用kali的dirb或者nikto: 里面有一个bak文件,下载下来解压看一看: 然后大致查阅了一下内容,是说创建user然后从url里get信息,同时blog有一个正则匹配,需要有https://(可有可无),然后是数字和字符,加一个. 然后是2-6个字母,所以随便构造一个h.

Sacrifice_li的博客 1034
上一篇: 你如果只是一直囤干货,那永远不可能进步
下一篇: 一个学渣的阿里之路
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值