实验:DVWA-JavaScript(JS攻击)

实验环境

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

windos攻击机:172.16.12.7

kali攻击机:172.16.12.30

实验步骤

一、Low级

1、源码分析


/*
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();

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级

被戏弄了,哈哈,放弃


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部