黑客三兄弟

【网络安全】XSS之Cookie外带攻击姿势及例题详析 XSS 的 Cookie 外带攻击就是一种针对 Web 应用程序中的 XSS(跨站脚本攻击)漏洞进行的攻击,攻击者通过在 XSS 攻击中注入恶意脚本,从而窃取用户的 Cookie 信息。攻击者通常会利用已经存在的 XSS 漏洞,在受害者的浏览器上注入恶意代码,并将受害者的 Cookie 数据上传到攻击者控制的服务器上,然后攻击者就可以使用该 Cookie 来冒充受害者,执行一些恶意操作,例如盗取用户的账户信息、发起钓鱼攻击等。 阅读详情

建立Beauty.com的黑客三兄弟最近可谓是春风得意,他们的这个网站精准地利用了人类的本性,窃取了不少登录用户的cookie。

(码农翻身注:参见前文《浏览器的安全反击战》)

利用别人的cookie,他们可以冒充真实的用户,在颁发cookie的那个网站中为所欲为,个人隐私在他们面前根本不存在。

运气好的话连别人的用户名和密码都能得到,那就一通百通,因为大家都嫌麻烦,总是使用同一套用户名和密码来登录各种不同系统。

可是好景不长,这一天黑客老三慌慌张张地找到了老大:“大哥,大事不好! ”

“老三,你这慌慌张张的毛病什么时候能改改? 这点儿你可得学学你二哥。” 老大训斥道。

“不是,大哥,这次真是大事不妙,浏览器家族最近颁布了一个什么同源策略,我们原来偷Cookie的招数都不管用了! 今天我连一个Cookie,用户名密码都没有偷到。”

“什么叫偷,说了多少次了,那就借,知道不?!”

(码农翻身注:同源策略参见前文《浏览器的安全反击战》)

“我早就料到了,这么重大的安全漏洞肯定肯定会补上的,他们不会这么轻易地让我们来跨域来访问别人的Cookie,修改别人的DOM,调用别人的服务的。”  老成持重的黑客老二说道。

“那怎么办? 没有Cookie,难道我们三兄弟以后就饿肚子了吗?”  老三很紧张。

“别担心,我们哥仨勾兑勾兑,他们肯定有漏洞的,” 老大安慰到,“老二,你先说说你的看法。”

“其实吧,我们想去借一个Cookie来用,关键是要让我们Beauty.com的JavaScript在目标浏览器上运行,然后访问爱存不存银行(icbc.com.cn)的cookie,可是现在他们用了同源策略,我们网站的JavaScript不允许访问别人网站的东西,那这条路就行不通了。”

0?wx_fmt=gif0?wx_fmt=png

“我想到一个招数,” 老三兴奋地说,“我们可以想办法修改下icbc.com.cn服务器端的JavaScript, 把偷Cookie的代码加上去!”

“你想得美,那岂不得到icbc.com.cn的服务器去修改了!还得黑掉别人的服务器,这就难了,即使你修改了,人家程序员再次发布新版本,那不就把我们的修改给覆盖掉了?” 老大再次训斥。

“那我们就想办法去黑掉程序员的SVN,Github,直接把上面的代码给改了.....”  老三的声音越来越小。

“唉,算了吧,我们盗亦有道,只做Web端黑客。” 老大重申三人组织的性质。

这时候老二想了一个办法:“其实老三说的也有道理,我们只要想办法把JavaScript代码注入到目标页面中,就能绕过同源策略了,这让我想到了HTML中的<input>,这个标签会在浏览器中产生一个输入框,让用户输入数据,我们可以把JavaScript代码当做数据输入进去, 等到数据提交到服务器端,会保存下来,下次展示页面的时候不就可以执行了吗?!”

老三说:“二哥我听不太明白,你能不能举个例子?”

老二说道:“好吧,有这么一个网站,可以让你对某个文章输入评论:”

0?wx_fmt=gif

0?wx_fmt=png

“然后,你在评论区输入了这样的代码,注意,我们注入了一段'JavaScript'”

0?wx_fmt=png

0?wx_fmt=gif

“等到再次有人访问这个页面的时候,会发生什么呢?”  老二启发老三。

“奥,我明白了,那就可以把那个人的cookie显示出来了!”老三一点都不笨。

0?wx_fmt=gif

0?wx_fmt=png

兴奋之余,老三挠挠头:“ 但是这只是在人家的浏览器中显示,怎么才能发到我们的服务器呢? 用JavaScript来发? 那也不行, 因为同源策略严格限制JavaScript的跨域访问呐!”

老大也说:“是啊,这个人看到自己的cookie被alert出来,估计会吓一跳吧。”

老二说:“嗯,确实不能这么办,让我想想。”

一炷香时间过去,老二说:“有了! 那个同源策略并不限制<img>这样的标签从别的网站(跨域)去下载图片,我们在注入JavaScript代码的时候,同时创建一个用户不可见的<img>,通过这个<img>发cookie发给我们。”

老三还是不明白, 要求再详细解释一下,老二就上了代码:

0?wx_fmt=gif

0?wx_fmt=png

老二说:“看到了吧,只要这段代码被执行,用户的cookie就会发到我们服务器上(http://beauty.com/log),我们就等着收取cookie吧!”

老三感慨道:“二哥你真厉害,天马行空,竟然想到了使用<img>的src属性来发送数据!”

老大说:“我们干脆把这段代码封装成一个js文件,嗯,就叫做beauty.js吧, 这样以后我们用起来会很方便!”

0?wx_fmt=gif

0?wx_fmt=png

老三看到又可以‘借到’cookie了,兴奋得直搓手: “大哥二哥,我这就去把JS写出来,找个网站试一试。”

老大说道:“我们把这种方法叫做Cross Site Scripting ,简称CSS,二弟意下如何?”

老二说:“大哥, CSS已经名花有主了,意思是层叠样式表,我们还是叫做XSS吧!”

(码农翻身注:按照XSS的分类方法, 上面介绍的叫做存储性XSS, 危害最大。 还有反射型XSS,基于DOM的XSS,本文不再展开。)

大家都表示同意。

老三很快写出了beauty.js, 也折腾出了http://beauty.com/log 专门用于记录‘借’来的cookie。

他找了一家网站做实验,注入了beauty.js, 没过多久,cookie就源源不断地发过来了。大家都非常高兴,马上扩大范围,在多个知名网站上都做了手脚。

一周以后,负责监控的老三发现,cookie越来越少,老三赶紧调查,发现很多网站的Cookie都加上了HttpOnly这样的属性:

Set-Cookie:JSESSIONID=xxxxxx;Path=/;Domain=book.com;HttpOnly

这个cookie一旦加上HttpOnly,浏览器家族就禁止JavaScript读取了! 自然也就无法发回到beauty.com。

老三赶紧向组织汇报。

老大说道:“看来浏览器家族又升级了啊!”

老二说:“其实吧, 既然我们可以往指定的页面注入JavaScript代码,那这个JavaScript可以做的事情就多了去了,不一定只是借Cookie。例如我们可以用这个JS代码画一个假的登录框,覆盖到真的登录框之上,让用户信以为真,这样就可以偷到真实的用户名和密码了。 或者通过JavaScript构造GET,POST请求,可以模拟用户在该网站做点手脚,删点什么东西,从一个账号往另外一个账户转账,都是可以的嘛!”

“妙极, 老二,真有你的,老三,你去找点网站,按二哥说的试试。”

又过了几天,老三哭丧着脸说道:“大哥二哥,这些彻底玩完,现在人类出手了,来了几个必杀技。”

“什么必杀技?”

“一方面他们有人会对输入进行过滤,发现不符合他们要求的输入例如<,>等就会过滤掉,我们的<script>可能会变成'script' 被存到数据库里。”

“另一方面有人还会对输出进行编码/转义操作,例如会把'<'变成 '&lt;',把 '>' 变成‘&gt;’ ,然后再输出,这样一来我们的<script>就会变成&lt;script&gt; , 浏览器收到以后,就会认为是数据,把<script>作为字符串给显示出来,而不是执行后面的代码!”

老二说:“三弟别失望, 干我们这行的,就是矛和盾之间的较量,虽然在原理上大家已经知道了怎么防范XSS,但是在实践中总会有漏洞,我们只要耐心寻找就行了。 此外,我们还要想想别的办法,看看能不能开辟其他路子。”

“什么路子?” 老三问道。

“你们应该知道,一个用户的会话cookie在浏览器没有关闭的时候,是不会被删除的,对吧?”

“是的,我和老三都知道,我们不是一直试图去拿到这个cookie吗,只是越来越难了。”

“我们换下思路,不再去偷这个cookie了,相反,我们在我们的Beauty.com中构造一个领奖页面,里边包含一个连接,让用户去点击,例如:”

恭喜你获得了iPhone X一台,快来 <a href="www.icbc.com.cn/transfer?toBankId=黑客三兄弟的账户&money=金额">领取吧!</a>


“当然,” 老二补充道,“我们得事先知道icbc.com.cn的转账操作的url和参数名称。如果这个用户恰好登录了icbc.com, 那他的cookie还在, 当他禁不住诱惑,点了这个链接后,一个转账操作就神不知鬼不觉的发生了。”

0?wx_fmt=gif0?wx_fmt=png

(码农翻身注:为了方便展示,本文举了一个非常简单的案例,银行实际的转账操作要远远比文章描述安全得多。)

“那要是用户就是不点击呢?”

“你忘了我们XSS中使用过的img了吗, 也可以应用到这里来啊,创建一个看不见的图片:”

<img src="www.icbc.com.cn/transfer?toAccountID=黑客三兄弟的账户&money=金额">


“只要他打开了这个页面,不用点击任何东西,就会发生转账操作。”  老二再次祭出了img大法。

“怪不得现在有很多邮箱默认不显示邮件中的图片呢!”老三说,那要是人家icbc.com.cn的转账操作需要form表单,是POST操作呢?”

“那也不怕啊,我们可以把这个表单创建起来,放到一个不可见的iframe中,用户只要一访问,就用JavaScript自动提交。” 老大对这种办法驾轻就熟。

0?wx_fmt=gif0?wx_fmt=png

“总之,只要这个用户在访问icbc.com.cn的时候, 访问了我们的网站,就极有可能中招,我们这种方式,只是利用了一下合法的Cookie,在服务器看来,我们发出的请求,那就是一次合法的请求啊,哈哈!” 老二很得意。

“老二,你这叫跨站请求伪造啊,Cross Site Request Forgery(CSRF),这个缩写应该不会重复了吧!” 老大做了总结。

用了CSRF, 三兄弟果然获利颇丰,但是人类也很快也意识到了这一点,应对手段马上就来了,步骤特别简单:

1. 用户在icbc.com.cn转账,显示转账的form,除了常用的字段之外,额外添加一个token :

0?wx_fmt=gif0?wx_fmt=png

这个token是icbc.com服务器端生成的,是一个随机的数字。

2. 用户的转账数据发送的服务器端, icbc.com就会检查从浏览器发过来的数据中有没有token,并且这个token的值是不是和服务器端保存的相等,如果相等,就继续执行转账操作,如果不相等,那这次POST请求肯定是伪造的。

老三愁眉苦脸地对大家说:“这个token是服务器端生成的,我们无法伪造的,CSRF的手段也不行了。”

老大安慰道:“钱哪有那么容易就好挣的? 我们还是想想办法,多利用XSS漏洞吧,如果可以注入JavaScript, 就可以读取Token,为所欲为了。 ”

老二说:“大哥,Web端的油水越来越少,我们也得与时俱进,扩展下业务啊,黑客三兄弟向服务器端进军吧!”

“二弟所言极是,下周我们再讨论吧。”

(完)

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


码农翻身

用故事讲述技术

0.jpeg

Python+QMT量化交易实战:从零搭建你的第一个极速策略(附完整代码) 本文提供了一份详细的Python+QMT量化交易实战指南,手把手教你从零搭建一个可回测、可实盘的极速策略。内容涵盖环境配置、QMT核心机制解析、双均线策略的完整代码实现、回测优化方法以及实盘部署要点,帮助量化交易新手快速入门并掌握核心开发流程。 阅读详情

相关推荐

如何在Android上使用OpenCV进行摄像头标定

如何在Android上使用OpenCV进行摄像头标定,我们这里使用官方一个例程,其实并不难,只是网上的资料少了而已。相机标定是计算机视觉工作的前提,为了确定相机矩阵和畸变参数。

花草的博客 3440

XSS获取目标cookie,伪造身份获取目标权限

未知攻,何来防。网络安全靶场学习:XSS(跨站脚本攻击),使用XSS伪造目标权限。

qq_57663276的博客 3513

FPGA实战:AXI BRAM Controller配置避坑指南(Vivado 2023版)

本文详细解析了Vivado 2023环境下AXI BRAM Controller的配置技巧与避坑指南,涵盖AXI4协议转换、BRAM地址空间配置、信号异常处理及突发传输优化等核心内容。针对写时序冲突、跨时钟域处理等常见问题提供实用解决方案,帮助开发者提升FPGA系统性能与稳定性。

q1w3e5r7t9y的博客 341

XSS的键盘记录和cookie获取

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混 淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意JavaScript代码,当用户浏览该页 面时,嵌入Web里面的JS代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的 攻击。 在一个Web页面上,有一种很常见的功能是将用户输入的内容输出到页面上。但是如果这里输入的内容 。

Williamanddog的博客 2993

大疆无人机地理视频制作全流程:从SRT文件到GIS叠加(附实战避坑指南)

本文详细解析了大疆无人机地理视频制作全流程,从解析SRT文件中的位姿数据,到在GIS软件中构建地理视频工程并生成可分发的文件。文章重点介绍了地理视频的核心概念、数据处理实战技巧,并探讨了其在应急响应、工程巡检等场景的高级应用与精度边界,为GIS工程师和无人机爱好者提供了一份实用的避坑指南。

river的博客 465

OpenEuler内核编译及替换

一、内核源码下载 在gitee上下载OpenEuler内核源码 下载地址 选择需要的内核版本源码压缩包进行下载 二、内核编译 1.解压缩 将下载好的源码进行解压 tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz 2.清理源代码树 解压后得到一个名为kernel的内核源码文件夹,进入后执行命令 make mrproper 清理过去内核编译产生的config,第一次编译时可不执行此命令 3.生成内核配置文件.config 先将将系统原配置文件拷贝过来,原

m0_56602092的博客 2万+

简单的利用XSS获取用户cookie

跨站脚本攻击(XSS) 跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 这里简单的演示下,将cookie获取到自己的搭...

shy的博客 4798

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

网络安全学习笔记——盗取Cookies跨站脚本(XSS)

使用替换过了的URL发给目标,诱导目标点击,然后目标的cookies就会回弹到XSS攻击平台上,展开就可以看到该目标的PHPSESSID,然后在自己的同源网站上,笔记本按Fn+F12,调出Hackerbar,点击存储,然后把PHPSESSID换成攻击之后得到的,删掉浏览框里面多余的东西,剩下XXX.php即可,刷新之后就会登录该目标的账号——,SESSID——中间键,是Apache分配的,唯一的“身份证”,从SESSID入手,就可以查取用户的相关信息。

just do it 3018

Virtuoso 中的tech file 详细说明

工艺文件(Techfile)是集成电路设计中的核心配置文件,定义了从晶圆制造到版图验证全流程所需的工艺规则和图层属性。在Cadence Virtuoso平台中,Techfile作为连接设计与制造的桥梁,主要包含以下内容: 图层体系定义 金属层、介质层、多晶硅层等物理图层的编号、名称和显示属性 图层用途(DRAW、MASK等)及图层-用途组合(LPP)的优先级 设计规则约束 几何尺寸规则(最小线宽/间距) 包围和延伸规则 密度规则和特殊工艺规则(如天线效应) 器件定义 MOS管、电阻等器件的图层构成 电学参数

u013620135的博客 8128

R语言深度学习实战:基于YOLO的目标检测

目标检测是计算机视觉领域的一项任务,旨在识别图像或视频中的物体,并确定它们的位置。与图像分类不同,目标检测要求模型能够识别多个物体,并为每个物体提供边界框(bounding box)的位置信息。这种任务在众多应用中都具有重要价值,例如自动驾驶、安防监控、物体跟踪等。YOLO(You Only Look Once)是一种非常流行的目标检测算法,它在速度和准确性之间取得了良好的平衡。与传统的目标检测方法不同,YOLO将目标检测任务视为回归问题,直接从输入图像中预测目标的类别和位置信息。

YOLO 330

黑客三兄弟(续)

还不认识黑客三兄弟的可以移步上一篇文章《黑客三兄弟》,三分钟就可以混个脸熟。上次说到三兄弟用XSS和CSRF这两个工具获利颇丰,后来人们在编程中很注意防范,这两个漏洞越来...

码农翻身 429

python基础知识补充

1. jupyter notebook 解释 2. ipython 魔法命令 3. latex in Markdown cell(在markdown里面编写数学公式) 4. jupyter notebook功能扩展:安装Nbextension 5. python解释与运行 6. 垃圾回收(计数机制与分代回收机制) 7. 名字空间与局部作用域L和全局作用域G 8. 小整数缓存区与字符驻留 9. Statement &Expression 10. 调试

weixin_43178406的博客 1万+

黑客赚钱渠道,别说兄弟们发财不带你了

每天靠兼职赚钱,去漏洞盒子网或者补天网等网站扫描漏洞提交赚取赏金,有时候也参加一些奖金高的比赛,实力强的月入上万也不是问题。

小司机的奥拓 3306

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

扁鹊三兄弟的启示,保证系统稳定的秘诀

总之,提升系统稳定性,我们要借鉴扁鹊三兄弟的智慧,像扁鹊大哥一样在事前减少故障数量,像扁鹊二哥一样在问题还小时快速发现,像扁鹊一样在出现问题时迅速恢复。多管齐下,从预防、发现到恢复,全方位保障系统的稳定健康运行。

fhey的博客 1715

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

一个程序员的黑客梦

张大胖上大学的时候就对网络安全非常感兴趣, 经常上网去搜索那些传奇的黑客故事,然后心里痒痒的想小试牛刀。那个时候大家的安全意识非常薄弱,张大胖学会了SQL注入以后,居然...

码农翻身 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

黑客攻击_我如何开始黑客攻击

黑客攻击 一切始于视频游戏。 我的第一个是Nintendo Entertainment System的《超级马里奥兄弟3》,它仍然是我有史以来最喜欢的游戏之一(我的表弟教我了所有三个经哨位置)。 我被这些小世界迷住了,这些小世界塞进了微芯片,装在塑料盒中,坐在我房间的一个纸板箱中。 在过时的彩色电视上,我将探索这些世界。 我的父母将我从NES升级到了便宜的二手PlayStation,这一...

编程故事的地方 335

白帽子黑客挣钱攻略,别说兄弟发财不带你!

对于白帽子黑客,很多人的理解应该只停留在概念表层,今天成哥在这里整理了一些具体到工作和挣钱路径的内容,供大家参考哦。1.挖掘漏洞挣奖金通用程序漏洞,顾名思义就是被大众大量、普遍使用的应用程序,这类程序的漏洞通常危害性巨大,可能可以影响数以万计的使用者。国内、外各大平台对于此类漏洞都有奖励机制,如果你挖掘到通用程序的漏洞并提交到这些平台上后,将会被给予一定的现金奖励。

shandongjiushen的博客 1123

那不是兄弟我干的——评清华声讨黑客

前几天我在凯迪的“猫眼看人”看到一篇好文章,先说那标题就解气——《清华校长:停止往大学生脑子里灌屎 》。我当时也是一愣,第一反应是:难道清华校长换人了?后来一看内文还真是顾秉林,话说05年他在宋楚瑜访问清华大学时出丑,那形象可是跌至了谷底,今日看到他入情入理、又颇有知识分子冲冠一怒风骨的好文,不由感叹士别三年当刮目相看:原来此人水平不低。 网友虽有疑惑的,但对文章本身的看法与我类似,皆竖指称...

qaybpljplj的专栏 219
上一篇: 从今天起,码农翻身的号内搜索功能也可以使用了!
下一篇: 作为一个有追求的程序员,你应该掌握的七种武器
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值