实验: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级

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