XSS运用之DVWA靶场
为了方便直接使用buuctf上面的环境,DVWA的默认账号是admin密码是password
XSS(DOM)-Low
可以看到是get型
最简单的尝试一下
1 |
|
第一题没什么难度
XSS(DOM)-Medium
还是这个题目,但是看左下角的等级,现在是最低级,
先改成Medium(如果改了之后xss(dom)这题还说low那重启一下环境)
普通绕过
先尝试最简单的,无效
1 |
|
大小写绕过
1 |
|
依然无效
html标签绕过
1 |
|
还是无效
只能猜测是闭合标签了
闭合标签+html标签绕过
因为看到源代码里是这样的
这个标签猜测就是option和select了
1 |
|
终于成功
XSS(DOM)-High(使用#锚点绕过白名单)
简单的就不测了,用Medium的payload试试
1 |
|
无效了,只能查看服务器端这题的源代码
default=只允许是French、English、German、Spanish这几个通过,如果不是这四种字符串的话,就会直接跳到?default=English。所以这题采用了白名单过滤的方法。
这里介绍一个#绕过的方法。这个#叫锚点,#号后面的字符不会提交给PHP服务器,可以直接与浏览器进行交互,所以可以通过这个绕过白名单
1 |
|
XSS (Reflected)-low
这就是反射型xss
普通注入即可
1 |
|
XSS (Reflected)-medium
普通绕过
1 |
|
发现被过滤了,<script>和</script>没有了,可能被删除或替换为空字符串。尝试大小写绕过
大小写绕过
1 |
|
直接就成功了
XSS(Reflected)-HIGH
普通绕过
1 |
|
只剩一个>了
大小写绕过
1 |
|
无效
双写绕过
1 |
|
无效
html标签绕过
1 |
|
成功
看这题的源码发现使用preg_replace函数进行正则表达式匹配,大小写都会匹配到,替换为空字符串,然后输出,但仅匹配了<script>,未匹配html标签
XSS(Stored)-LOW
存储型xss
输入的都会被输出并且存储
普通绕过
1 |
|
发现name被限制输入了
存进去的是空的
可能是message有过滤,但是name只是限制字数,想办法从name绕过
前端做了长度限制而已
成功
XSS(Stored)-medium
普通绕过
1 |
|
发现<script>被过滤了
尝试大小写
大小写绕过
1 |
|
成功
XSS(Stored)-HIGH
前面的方法肯定都不行,试试html标签绕过
html标签绕过
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!