实验:DVWA-JavaScript(JS攻击)

实验环境

DVWA靶机:172.16.12.10 靶场用户名:admin 密码:123

windos攻击机:172.16.12.7

kali攻击机:172.16.12.30

实验步骤

一、Low级

1、源码分析

<?php
$page[ 'body' ] .= <<<EOF
<script>
/*
MD5 code from here
https://github.com/blueimp/JavaScript-MD5
*/
//省略一些函数
。。。
    function generate_token() {
//id为phrase就是input输入框中的值,将该值md5加密后,作为token进行验证
        var phrase = document.getElementById("phrase").value;
        document.getElementById("token").value = md5(rot13(phrase));
    }
    generate_token();
</script>
EOF;
?>

2、漏洞复现

提示提交“success”获得获胜。

但输入succes显示无效的密码

分析源码,右键单击空白处,选择查看页面源代码

你会看到这个 token,不是后台生成的,而是前台生成的。。。而前台生成的 token,是用 md5("ChangeMe"),而后台期待的 md5 是 md5("success")。


所以你在输入框中输入 success 之后,还得在控制台在调用 generate_token() 函数。

按F12进入控制台

点HTML——编辑,右侧搜索框搜索phrase,然后在3处添加value的值为success

点控制台,最下方输入generate_token ,回车

最后输入框输入success,点提交,出现做的好,成功

二、Medium级

1、源码分析

vulnerabilities/javascript/source/medium.js
function do_something(e) {
    for (var t = "", n = e.length - 1; n >= 0; n--) t += e[n];
    return t
}
setTimeout(function () {
    do_elsesomething("XX")
}, 300);
function do_elsesomething(e) {
    document.getElementById("token").value = do_something(e + document.getElementById("phrase").value + "XX")
}

思路是一样的,只是生成 token 的函数放到另外的 js 文件中了

先执行do_elsesomething(“XX”),e=“XX”,再执行do_something(e)

2、漏洞复现

还是先将phrase的值改为success

控制台输入do_elsesomething(“XX”),回车

最后输入框输入success,点提交,出现做的好,成功

三、High级

1、源码分析

查看源码

发现完全看不懂,这里 js存在代码混淆

复制vulnerabilities/javascript/source/high.js下面·的看不懂的代码

打开 混淆逆向网址 http://deobfuscatejavascript.com/

然后把乱码复制进去,点页面最下面的Deobfuscate

转换成看得懂的代码

->分析代码,执行顺序
1.token_part_1(“ABCD”, 44);
2.token_part_2(“XX”)
3.点击时执行token_part_3(t, y = “ZZ”)

2、漏洞复现

在框内输入success,不要提交

按F12进入控制台,

点控制台,输入token_part_1(“ABCD”, 44),回车

再输入token_part_2(“XX”) 回车

最后点击提交,做的好,成功

四、Impossible级

被戏弄了,哈哈,放弃

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cwillchris

你的鼓励将让我产出更多优质干货

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值