概述
就算js前端攻击
安全等级Low
发现输入success提交是无效的
源码分析
后台代码
文本框(phrase)输入内容,经过md5+自定义函数(rol13)转换后,最终赋值给token
页面代码
查看页面发现 token的值是一个隐藏控件,并且是一个固定值
- 看其他人的博客,直接能看到index.php文件的逻辑,我试过了这样不行
- 转到服务器上看下具体的index.php代码
1 | # 不知具体的Index.php文件在哪里,采用模糊搜索的方式找到了php文件 |
看下核心代码就清楚了,整个完整逻辑是这样
- 文本框(phrase)输入内容,经过md5+自定义函数(rol13)转换后,最终赋值给token(隐藏控件)
- 用token的值和加密后的success(md5(rot13)函数)对比
开始攻击
既然知道了整个逻辑,只要输入已经加密过的success字符串即可
谷歌浏览器按f12,打开console,输入:
md5(rot13("success"))
得到了值为:38581812b435834ebf84ebcc2c6424d6
页面文本框输入:success,点击提交
抓包拦截请求修改token的值为:38581812b435834ebf84ebcc2c6424d6,点击发送
页面上展示通过
安全等级为Meduim
源码分析
其实就是do_someting对phrase变量进行反转,如输入的success,就是sseccus,生成的token值=XXsseccusXX
开始攻击
页面上输入success
token直接改为XXsseccusXX
后续攻击
不实践了,直接参考这里