利用Javascript进行注入

JS逆向与漏洞注入实战:从API接口发现到SQL注入利用 在前后端分离架构成为主流的今天,Web应用的安全边界发生了显著变化。其核心原理在于大量业务逻辑和安全校验被前置到客户端JavaScript中实现,后端往往过度信任前端传入的数据。这种架构模式的技术价值在于提升了开发效率和用户体验,但也引入了新的安全风险。通过逆向分析前端JavaScript代码,安全研究人员可以深入理解应用运行机制,从而发现隐藏的API端点、未文档化的参数以及脆弱的数据处理逻辑。这一技术广泛应用于渗透测试和漏洞挖掘领域,特别是在教育、金融、电商等业务系统场景中。本文聚焦于JS逆向这一关键技术 阅读详情
来源:黯魂的网络日志

//作者: kostis90gr
//翻译: 黯魂[S.S.T]
//本文已发表于《黑客防线》6月刊,版权属于黯魂和《黑客防线》杂志社,转载请务必保持文章完整性,谢谢:)

这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任.

通过使用javascript注入,用户不用关闭网站或者把页面保存在他的PC上就可以改变网站中的内容.这是由他的浏览器的地址栏完成的.
命令的语法看上去像这样: javascrit:alert(#command#)
比方说如果你想看到在网站 http://www.example.com 里面的一个警告框,那么首先在地址栏输入URL(www.example.com),当页面加载完之后,清空URL并输入javascrit:alert ("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技巧改变页面内的几乎任何内容.例如一个图片.让我们设想有一个网站的logo图片.通过查看页面源代码(可以使用浏览器中的"查看源代码"做到),我们发现一句HTML代码:
<IMG Name="hi" src="hello.gif">
得到信息:有一个图片被命名为hi,且源文件为hello.gif.我们想要改变它为bye.jpeg并存储到我们的站点 http://www.mysite.com上.所以我们的图片的完整URL是http://www.mysite.com/bye.jpeg 要使用javascript注入,我们需要在地址栏中输入:
javascript:alert(document.hi.src=" http://www.mysite.com/bye.jpeg")

你将看到一个提示框说 http://www.mysite.com/bye.jpeg,并且在那之后图片将会被改变.注意虽然那些变化只是暂时的!如果你刷新页面或者再次进入,你造成的变化将丢失,因为你改变的不是服务器上的站点,而是你PC上的.
使用同样的方法,我们可以查看或改变变量的值.比如我们在网站中找到这样一些源代码:
<SCRIPT LANGUAGE="JavaScript">
var a="test"
</SCRIPT>

意思是给变量a赋值test.为了查看变量的值,我们将输入:
javascript:alert(a)
然后为了把它从test改为hello,则输入:
javascript:alert(a="hello")
但是javascript注入主要用来改变表单的属性.下面是我们已有的部分代码:
<form name="format" action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit"></form>

我们想要表单发送到我们的邮箱,而不是代码中的邮箱someone@somewhere.com,这个想法可以被这个命令完成:
javascript:alert(document.format.mail.value="me@hacker.com")

到现在你已经知道我总是按层次来讲述,下面我们就从大到小开始:
1)从document开始
2)输入我们想要改变的对象名(比如document.hi.src)或者它所属的属性并且重新赋值(比如document.format.mail.value)
3)最后结束于我们想要改变的特征(比如源路径:document.hi.src,或者变量值:document.format.mail.value)
4)用"."号分隔单词.
5)当我们想要改变特征值的时候,使用"="号和新的特征值.
*注意:当新的特征值为字符串时需要使用双引号""括起来(比如:document.format.mail.value="me@hacker.com")
如果我们想要把它变为一个变量的值,则不需要使用双引号"".比如我们想改变变量a的值,使其等于变量b的值,会输入javascript:alert(a=b).
但是,大多数页面中的属性都没有名字,例如:
<form action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit"></form>

在这个代码中,表单没有名字.利用上面的所有信息,命令可能看上去像这样:
javascript:alert(document. .mail.value="me@hacker.com")

在这种情况下我们将不得不计算所有的表单来发现这个表单的序号.我会用一个例子来讲解:
<form action="send.php" method="post">
<input type="text" name="name">
<input type="submit" value="submit"></form>
<form action="send.php" method="post">
<input type="hidden" name="mail" value="someone@somewhere.com">
<input type="text" name="name">
<input type="submit" value="submit"></form>
<form action="send.php" method="post">
<input type="text" name="name">
<input type="submit" value="submit"></form>

在以上代码中我们看见了3个表单,但是我们只对第二个感兴趣.因此我们想要的表单序号就是2.千万别忘记我们是从1开始计算的,我们说1,2,3,4... 但是在javascript中却是从0开始计算的.它是0,1,2,3...所以真正的表单序号是1,不是2.通常我们要先找到表单序号再减一.
我们将用这个序号来补全我们的命令:
javascript:alert(document.forms[1].mail.value="me@hacker.com")

像这样,你就能改变没有名字的图片或者链接了.
对于图片: javascript:alert(document.images[3].src="#你想改变的目标图片URL#")
对于链接: javascript:alert(document.links[0].href=" http://www.undug.net/#你想改变的目标链接#")
最后,我们可以用这个技巧编辑cookies.
下面的命令由triviasecurity.net的Dr_aMado所编写,但是我修改了一点以至于在用户编辑它之前就能显示cookie.你只需要复制它们到地址栏:
javascript:alert(window.c=functiona(n,v,nv){c=document.cookie;c=c.substring(c.indexOf(n)+n.length,c.length);c=c.substring(1,((c.indexOf(";")>-1)?c.indexOf(";") :c.length));nc=unescape(c).replace(v,nv);document.cookie=n+"="+escape(nc);return unescape(document.cookie);});alert('The cookie is: "'+document.cookie+'"');alert(c(prompt("The name of the cookie:",""),prompt("Change this value:",""),prompt("with this:","")));
作为结束,我必须强调我们所做的改变仅仅是在用户端!就像是把网站保存在了你的PC上,然后修改它.尽管如此,使用这个技巧你仍然可以欺骗一个页面(例如cookies)或者通过一个页面的安全验证.例如一些页面会检测用户从哪发送的数据.如果数据从 http://www.test.com/form.php 发送到 http://www.test.com/check.php,check.php可能会检测数据是否是从http: //www.test.com/form.php上的表单发送的.除此之外,如果你打算登录一个页面中你自己的javascript代码,通过使用一些像这样的技巧,你将能够改变类似不变的图片!可是你需要用到比这里讲到的更深层次的知识.
要是有任何问题和建议,请发邮件给我:kostis90gr@gmail.com  
JavaScript实现代码注入(附完整源码) 阅读详情

相关推荐

web渗透--62--JavaScript注入漏洞

1、漏洞描述 JavaScript注入漏洞是跨站脚本(XSS)的一个子类型,涉及注入任意JavaScript代码的能力,由受害者的浏览器内部的应用程序执行。这个漏洞可以带来很多影响,比如公开用户的会话cookie后,可以被用于模仿受害者,也可以使得让攻击者修改受害者的页面内容以及操控应用程序运行。

武天旭的博客 3354

JavaScript 中的依赖注入

依赖注入 DI (Dependency Injection) 是编程领域中一个非常常见的设计模式,它指的是将应用程序所需的依赖关系(如服务或其他组件)通过构造函数参数或属性自动注入的过程。这样做的好处是可以减少组件之间的耦合,更容易测试和维护。我们先举个简单的例子,我们有两个简单的 A 类和 B 类,在 B 类中依赖了 A 类,我们在 B 类中对它进行实例化,并调用它的方法:classA{ ...

奇舞周刊 2784

JavaScript注入及WebView与JavaScript的交互

本文介绍了JavaScript注入及WebView与JavaScript的交互。而WebView与JavaScript交互使得应用程序能够与网页进行双向通信,实现更丰富、动态的Web应用程序。在Web开发中,WebView与JavaScript的交互是一项重要的技术。本文将介绍如何在WebView中实现JavaScript注入,以及如何实现WebView与JavaScript之间的交互。通过以上步骤,开发人员可以实现WebView与JavaScript之间的双向通信,从而实现更高级的功能和交互体验。

ByteZenith的博客 686

php js 注入攻击,JavaScript_防范sql注入式攻击js版本,SQL注入式攻击是利用是指利用 - phpStudy...

防范sql注入式攻击js版本SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。比如:如果你的查询语句是select * from admin where username=''"&user&"'' and password=''"&pwd&"'...

weixin_42403922的博客 202

利用浏览器书签实现JavaScript代码注入的技巧

书签(Bookmark)是浏览器中用来快速访问用户经常访问网页的功能。用户可以通过点击浏览器提供的书签按钮,将当前的网页地址保存到书签列表中。在需要时,用户可以随时点击书签,浏览器会加载对应的网页地址,快速呈现页面内容。这种方式,简化了用户的网页访问流程,尤其对频繁访问的网站或页面,极大地提高了效率。此外,现代浏览器还支持对书签进行编辑,允许用户给书签添加自定义的名称,描述和标签,以增强其易用性和功能性。

weixin_33562004的博客 937

利用书签实现JavaScript注入技巧

htmltable {th, td {th {pre {简介:本技术探讨了如何通过浏览器书签功能执行JavaScript代码,以增强网页交互性和实现特定功能。这种技术允许用户快速测试JavaScript代码,并为网页添加自定义操作,但同样可能带来安全风险。

weixin_36277197的博客 765

NoSQL注入进阶:利用运算符与JavaScript注入

NoSQL注入:攻击者通过向应用程序的NoSQL查询接口注入恶意数据,从而干扰原有查询逻辑,实现未授权数据访问、数据篡改或拒绝服务等目的的一种攻击方式。—— 在开篇部分明确了NoSQL注入在攻防体系中的战略位置,并列出了5个具体、可衡量的学习目标。· 《云原生环境下的数据层攻击:Serverless与NoSQL》:探讨在无服务器、容器化环境中,NoSQL注入的新特点与防御。下图描绘了攻击者视角下,一次完整的NoSQL注入进阶攻击流程,并关联了各阶段可能利用的关键攻击面(操作符/JS上下文)。

Alfadi联盟 萧瑶的博客 553

网页js脚本注入,可执行任意代码。

网页js脚本注入,可执行任意代码。这里有个实例教程,通过注入实现跳过验证码。

Gradle构建工具:从核心原理到实战应用,告别构建地狱

项目自动化构建是现代软件开发流程中的基础环节,它负责将源代码、资源和依赖项转换为可部署的软件包。其核心原理在于通过定义任务依赖关系,形成有向无环图执行模型,从而实现高效的增量构建。这项技术的核心价值在于提升开发效率、保证构建一致性,并支持复杂的多模块项目管理。在实际应用场景中,无论是Java后端、Android移动端还是多技术栈的全栈项目,一个灵活且强大的构建工具都至关重要。Gradle正是这样一款基于Groovy或Kotlin DSL的构建工具,它通过声明式构建和智能的依赖解析机制,有效解决了传统构建脚本

weixin_33694172的博客 689

iOS中JS注入例子

iOS中JS注入例子

js注入 黑客之路必备!

主要为大家详细介绍了js注入,黑客之路必备!本文告诉大家什么是js注入,如何进行js注入攻防,感兴趣的小伙伴们可以参考一下

利用参数污染与JS注入绕过WAF执行XSS攻击的实战剖析

Web应用防火墙(WAF)是保障Web安全的重要防线,其核心原理是基于规则和行为分析对HTTP请求进行实时检测与拦截。然而,当WAF与后端应用对请求参数的解析逻辑存在差异时,便可能产生安全盲区。HTTP参数污染(HPP)技术正是利用这种“解析差异”,通过向同一参数名提交多个值,诱导WAF与后端服务器对“有效”参数做出不同判断,从而绕过规则检测。结合JavaScript注入(JS注入)技术,攻击者可以进一步构造能在特定HTML或JavaScript上下文中执行的恶意脚本,最终实现跨站脚本(XSS)攻击。这种组

angzhan5306的博客 347

北京理工大学计算机学院赵曜,中国进出口银行2016年度拟接收毕业生情况公示...

《中国进出口银行2016年度拟接收毕业生情况公示》由会员分享,可在线阅读,更多相关《中国进出口银行2016年度拟接收毕业生情况公示(5页珍藏版)》请在技术文库上搜索。1、二级(三级)单位二级(三级)单位姓名姓名性别性别学历学历毕业学校毕业学校专业专业 中国进出口银行总行 机关 许凯男硕士研究生北京大学法学 中国进出口银行总行 机关 冯晨男硕士研究生北京大学教育技术学 中国进出口银行总行 机关 刘鹏...

weixin_42168902的博客 4274

【翻译】利用Javascript进行注入

 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://anhun.blogbus.com/logs/10008454.html作者: kostis90gr翻译: 黯魂[S.S.T]注:本文已发表于《黑客防线》6月刊,版权属于黯魂和《黑客防线》杂志社,转载请务必保持文章完整性,谢谢:)这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负责任.通过使用j

ZibbaForever的专栏 778

ESP32-S3双屏AI吊坠:微型边缘智能终端设计实践

边缘智能终端是指在设备端完成数据感知、处理与响应的嵌入式系统,其核心在于低延迟、高隐私与弱网适应性。基于ESP32-S3等轻量级主控,通过语音唤醒、本地AI推理与双屏异步渲染等关键技术,可构建资源受限场景下的实用化人机交互节点。这类设计显著降低对云端依赖,提升实时性与数据安全性,广泛应用于智能穿戴、IoT交互面板及便携式语音设备。本文以‘璀璨·AI吊坠’为实例,深入解析双面圆形屏驱动、ES8311音频链路优化、VAD+Porcupine本地语音流水线,以及亚微安级低功耗状态机实现,为微型AI终端的软硬协同开

weixin_42348783的博客 634

手把手教你用VM实现欧姆龙PLC数据采集(含Fins协议配置详解)

本文详细介绍了如何使用VM(VisionMaster)实现与欧姆龙PLC的数据采集,重点解析了Fins协议(包括Fins TCP/UDP)的配置步骤。从网络环境搭建、PLC的IP地址设置,到VM端Fins通讯通道的详细配置与数据点映射,提供了完整的实战指南。文章还涵盖了数据收发解析、常见问题排查清单,帮助工程师快速完成视觉系统与PLC的稳定集成。

weixin_29171087的博客 189

利用tampermonkey向页面注入自定义Javascript

  最近发现一款比较好用的插件,可以用来在页面中注入自定义的js,这样可以做一些自动化创建的东西,比如我要创建很多订单用来做测试,而手动点的话又太麻烦,所以可以用注入的js解决这个问题,页面加载完后使用js自动填充表单,然后提交。   可以在谷歌网上应用商店下载这个插件:【右上角三个点】–&gt;【更多工具】–&gt;【扩展程序(E)】–&gt;【获取更多扩展程序】搜索tampermonkey就...

xue251248603的专栏 2万+

避开奸商套路!手把手教你用Thaiphoon Burner和CPU-Z,一眼看穿内存SPD信息有没有被篡改

本文教你使用Thaiphoon Burner和CPU-Z工具,快速识别内存SPD信息是否被篡改,避免购买到虚标频率或假冒颗粒的内存条。通过详细步骤和实战案例,帮助用户掌握内存检测技巧,确保硬件购买的透明度和安全性。

weixin_32228501的博客 682
上一篇: 给所有刚刚步入社会的上班族
下一篇: 2007年股市之歌--------死了都不卖
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值