0%

DVWA通关指南-JavaScript Attacks

概述

就算js前端攻击

安全等级Low

发现输入success提交是无效的

image-20220215145045285

源码分析

后台代码

文本框(phrase)输入内容,经过md5+自定义函数(rol13)转换后,最终赋值给token

image-20220215150253005

页面代码

查看页面发现 token的值是一个隐藏控件,并且是一个固定值

image-20220215153721456

  • 看其他人的博客,直接能看到index.php文件的逻辑,我试过了这样不行

image-20220215160009445

  • 转到服务器上看下具体的index.php代码
1
2
3
4
5
6
7
8
# 不知具体的Index.php文件在哪里,采用模糊搜索的方式找到了php文件
[root@VM-24-13-centos DVWA-2.0.1]# grep -r 'You got the phrase wrong'
vulnerabilities/javascript/index.php: $message = "<p>You got the phrase wrong.</p>";
...
[root@VM-24-13-centos javascript]# pwd
/var/www/html/DVWA-2.0.1/vulnerabilities/javascript
[root@VM-24-13-centos javascript]# cat index.php

看下核心代码就清楚了,整个完整逻辑是这样

  • 文本框(phrase)输入内容,经过md5+自定义函数(rol13)转换后,最终赋值给token(隐藏控件)
  • 用token的值和加密后的success(md5(rot13)函数)对比

image-20220215160521487

开始攻击

  • 既然知道了整个逻辑,只要输入已经加密过的success字符串即可

  • 谷歌浏览器按f12,打开console,输入:md5(rot13("success"))得到了值为:38581812b435834ebf84ebcc2c6424d6

image-20220215161321203

页面文本框输入:success,点击提交

image-20220215161946122

抓包拦截请求修改token的值为:38581812b435834ebf84ebcc2c6424d6,点击发送

image-20220215162218406

页面上展示通过

image-20220215162254369

安全等级为Meduim

源码分析

其实就是do_someting对phrase变量进行反转,如输入的success,就是sseccus,生成的token值=XXsseccusXX

image-20220215162917020

开始攻击

页面上输入success

image-20220215161946122

token直接改为XXsseccusXX

image-20220215163915705

image-20220215164001569

后续攻击

不实践了,直接参考这里