DVWA-JavaScript Attacks

news2025/1/16 8:45:28

JavaScript Attacks

JavaScript Attack即JS攻击,攻击者可以利用JavaScript实施攻击。

Low 等级

核心源码,用的是dom语法这是在前端使用的和后端无关,然后获取属性为phrase的值然后来个rot13和MD5双重加密在复制给token属性。

<script>
    function rot13(inp) {
        return inp.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);});
    }

    function generate_token() {
        var phrase = document.getElementById("phrase").value;
        document.getElementById("token").value = md5(rot13(phrase));
    }

    generate_token();
</script>

直接提交success发现无效

image-20230909115827498

所以提交的虽然是success但是token还是ChangeMe的因为generate_token()方法不会自动执行他需要调用,这时只需要在前端调用generate_token()方法生成相应token就行

image-20230909120048284

页面源代码中token的值由md5(rot13(phrase))决定的。

通过console控制台直接拿到token值。

md5(rot13("success"));

image-20230909120505063

38581812b435834ebf84ebcc2c6424d6

使用bp抓包然后修改数据包中的token值即可。

image-20230909120723151
在这里插入图片描述

Medium 等级

核心源码

<?php
    $page[ 'body' ] .= <<<EOF
    <script src="/vulnerabilities/javascript/source/medium.js"></script>
    EOF;
?>

Medium.js

// 对token进行加密处理(逆序处理)
function do_something(e){
    for(var t="",n=e.length-1;n>=0;n--)t+=e[n];
    return t
}


// 延时3秒后,执行do_elsesomething方法
setTimeout(function(){
    do_elsesomething("XX")
},300);

// 将加密处理后的token值,赋给input输入框中的token,用于提交给后端
function do_elsesomething(e){
    document.getElementById("token")
        .value=do_something(e+document.getElementById("phrase")
                            .value+"XX")
}

原理和Low一样,只是加密方法被更换了,那步骤如下:

1、将输入框的值改为success

2、在前端控制台执行一次do_elsesomething()方法,执行代码为:do_elsesomething(“XX”);

do_something(success)方法是将phrase变量的值逆序,也就是sseccus,生成的token值=XXsseccusXX

使用bp将输入框的值改为XXsseccusXX。
image-20230909121343300

image-20230909121404987

High 等级

核心代码

<?php
$page[ 'body' ] .= '<script src="' . DVWA_WEB_PAGE_TO_ROOT . 'vulnerabilities/javascript/source/high.js"></script>';
?>

查看high.js,但是这里的代码明显被加密混淆了。

可以使用在线解码工具:http://deobfuscatejavascript.com/#。

核心源码:

function do_something(e) {
 
    for (var t = "", n = e.length - 1; n >= 0; n--) t += e[n];
    return t
 
}
 
function token_part_3(t, y = "ZZ") {
 
    document.getElementById("token")
        .value = sha256(document.getElementById("token").value + y)
 
}
 
function token_part_2(e = "YY") {
 
    document.getElementById("token")
        .value = sha256(e + document.getElementById("token").value)
 
}
 
function token_part_1(a, b) {
 
    document.getElementById("token")
        .value = do_something(document.getElementById("phrase").value)
 
}
 
document.getElementById("phrase").value = "";
 
setTimeout(function() {
 
    token_part_2("XX")
 
}, 300);
 
document.getElementById("send").addEventListener("click", token_part_3);
 
token_part_1("ABCD", 44);

几个函数调用顺序及生成token的步骤如下:

  1. 首先将phrase 的值清空document.getElementById(“phrase”).value = “”;
  2. 然后执行token_part_1(a, b),取phrase值并进行字符串翻转(逆序)处理。
  3. 延迟300ms后执行token_part_2(e = “YY”),传入参数字符串’XX’和token值拼接并调用sha256()加密。
  4. 点击按钮时执行token_part_3(t, y = “ZZ”),将token值和字符串’ZZ’拼接并调用sha256()加密,从而得到最终的token。

在输入框输入 success 后,再到控制台输入token_part_1(“ABCD”, 44)和token_part_2(“XX”)这两个函数,最后点击按钮执行token_part_3()
image-20230909122852247

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成集云 | 成销云移动商城集成用友NC | 解决方案

方案产品介绍 成销云移动商城系统&#xff0c;支持商品管理、会员管理、营销活动、订单管理等多种模块功能&#xff0c;帮助企业解决时间、库存和服务方面的难题&#xff0c;助力企业实现数字化产业升级。 用友NC是用友NC产品的全新系列&#xff0c;是面向集团企业的世界级高…

09-Vue基础之实现注册页面

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…

企业IT资产设备折旧残值如何计算

环境&#xff1a; 企业/公司 IT资产 问题描述&#xff1a; 企业IT设备折旧残值如何计算&#xff1f; 解决方案&#xff1a; 1.按三年折旧 净值原值-月折旧额折旧月份 &#xff0c; 月折旧额原值(1-3%)/36 折旧月份ROUND(E2*(1-3%)/36,2) 2.净值E2-F2*G2

实测文心一言4.0,真的比GPT-4毫不逊色吗?

10月17日&#xff0c;李彦宏在百度世界2023上表示。当天&#xff0c;李彦宏以《手把手教你做AI原生应用》为主题发表演讲&#xff0c;发布文心大模型4.0版本。 今天&#xff0c;咱们就开门见山啊。这一回要测一测&#xff0c;昨天才发布的文心一言大模型 4.0。 之所以要测它&…

腾讯待办宣布关停,哪款待办事项提醒APP好?

如果你之前一直使用微信中的“腾讯待办”小程序来记录待办事项并设置定时提醒&#xff0c;那么你就会发现腾讯待办在2023年10月16日通过其官方微信公众号、小程序发布了业务关停公告&#xff0c;将于2023年12月20日全面停止运营并下架&#xff0c;并且有导出数据的提示。 腾讯…

Systemverilog断言介绍(四)

3.3 SEQUENCES, PROPERTIES, AND CONCURRENT ASSERTIONS 3.3.1 SEQUENCE SYNTAX AND EXAMPLES 一个序列是在一段时间内发生的一组值的规范。构建序列所使用的基本操作是延迟规范器&#xff0c;形式为##n&#xff08;表示特定数量的时钟&#xff09;或##[a:b]&#xff08;表示…

【AIGC核心技术剖析】用于高效 3D 内容创建生成(从单视图图像生成高质量的纹理网格)

3D 内容创建的最新进展主要利用通过分数蒸馏抽样 &#xff08;SDS&#xff09; 生成的基于优化的 3D 生成。尽管已经显示出有希望的结果&#xff0c;但这些方法通常存在每个样本优化缓慢的问题&#xff0c;限制了它们的实际应用。在本文中&#xff0c;我们提出了DreamGaussian&…

【AIGC核心技术剖析】改进视频修复的传播和变压器(动态滤除环境中的物体)

基于流的传播和时空变压器是视频修复&#xff08;VI&#xff09;中的两种主流机制。尽管这些组件有效&#xff0c;但它们仍然受到一些影响其性能的限制。以前基于传播的方法在图像域或特征域中单独执行。与学习隔离的全局图像传播可能会由于光流不准确而导致空间错位。此外&…

JS加密/解密那些必须知道的事儿

一直以来&#xff0c;字符串的编码问题对于新手程序员来说&#xff0c;或者平常不太涉猎这方面的程序员来说&#xff0c;是犹如灵异学一样的存在。经常会遇到莫名其妙的编码问题&#xff0c;导致的各种的无法理解的错误。 ​ 今天&#xff0c;本问就来介绍一下作者所知晓的一切…

京东API商品详情页,商品列表数据,商品评论数据采集

作为国内最大的电商平台之一&#xff0c;京东数据采集具有多个维度。 有人需要采集商品信息&#xff0c;包括品类、品牌、产品名、价格、销量等字段&#xff0c;以了解商品销售状况、热门商品属性&#xff0c;进行市场扩大和重要决策&#xff1b; 京东数据采集的方法 既然京…

面试 4

1、作用域 w3scholl中定义&#xff1a;作用域指的是您有权访问的变量集合。 作用域是指在程序中定义变量的区域&#xff0c;该位置决定了变量的生命周期。通俗理解&#xff0c;作用域就是变量与函数的可访问范围&#xff0c;即作用域控制着变量和函数的可见性和生命周期。 在…

【C++】特殊类的设计(只在堆、栈创建对象,单例对象)

&#x1f30f;博客主页&#xff1a; 主页 &#x1f516;系列专栏&#xff1a; C ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ &#x1f60d;期待与大家一起进步&#xff01; 文章目录 一、请设计一个类&#xff0c;只能在堆上创建对象二、 请设计一个类&#xff0c;只能…

Golang interface 多态/类型断言

基本介绍 变量(实例)具有多种形态。面向对象的第三大特征&#xff0c;在Go语言&#xff0c;多态特征是通过接口实现的&#xff08;接口能够体现多态的特征&#xff09;。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。 在前面的Usb接口案例&#xff0c;u…

【01】LVGL-CodeBlock模拟器安装 | LVGL工程下载 | PC端模拟LVGL步骤

LVGL模拟器 1.LVGL模拟器介绍2.Windows环境搭建CodeBlock及获取LVGL工程3.PC端模拟LVGL4.总结 1.LVGL模拟器介绍 LVGL模拟器&#xff1a;使用PC端软件模拟LVGL运行&#xff0c;而不需要任何嵌入式硬件。优点&#xff1a;便于学习、跨平台协同开发 2.Windows环境搭建CodeBlock及…

【每日一题】—— B. Arrays Sum (Grakn Forces 2020)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

GO 语言的方法??

GO 中的方法是什么&#xff1f; 前面我们有分享到 GO 语言的函数&#xff0c;他是一等公民&#xff0c;那么 GO 语言中的方法和函数有什么区别呢&#xff1f; GO 语言中的方法实际上和函数是类似的&#xff0c;只不过在函数的基础上多了一个参数&#xff0c;这个参数在 GO 语…

深度学习(12)之模型训练[训练集、验证集、过拟合、欠拟合]

模型训练[训练集、验证集、过拟合、欠拟合] 在不断补充训练数据集的过程中&#xff0c;发现纯粹增加数据集并不会使得模型效果单向地变好&#xff0c;如果是多目标检测模型的话&#xff0c;常会出现精度变低的现象本文想总结在模型训练时的一些注意事项&#xff0c;比如训练集…

云务器迁移(腾讯云>华为云)

自己平时除了写些bug外还喜欢玩玩服务器&#xff0c;这不前几年买了一个域名&#xff0c;当时服务器买的是阿里云的&#xff0c;想着域名备案挺麻烦的就一直用着&#xff0c;只是在服务器到期后会重新购买其他运营商的&#xff08;关键是续不起&#x1f92b;&#xff09; 这不最…

华为eNSP配置专题-VRRP的配置

文章目录 华为eNSP配置专题-VRRP的配置0、参考文档1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、基本终端构成和连接 2.VRRP的配置2.1、PC1的配置2.2、接入交换机acsw的配置2.3、核心交换机coresw1的配置2.4、核心交换机coresw2的配置2.5、配置VRRP2.6、配置出口…

基于Java的企业门户管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…