XSS靶场演练—DOM XSS

2018-11-13  本文已影响0人  N8_xEnn7nA1

首先访问靶场:

image.png

其中发现当前路径显示在了页面上,于是尝试在url中加入参数再访问:

image.png

也将请求参数显示在了页面上,再继续用测试,这次添加尖括号:

image.png

也显示在了页面上,于是添加js语句进行测试:

image.png

结果弹框了,很好。

然后查看一下dom.php的源码,主要代码如下:

image.png

代码首先获取GET请求参数url的值,然后将其进行URL解码,判断url链接来源,如果符合条件,则进行xss敏感输入过滤,过滤好后将该URL拼接到一个iframe标签中,最终将该iframe标签添加到log.html的尾部。

如果插入iframe的页面存在xss漏洞即可。那就直接利用前面已经证明存在XSS漏洞的 http://120.203.13.75:6815/3/ 就好了。

但是如上面代码所示,url链接在拼接到iframe的src属性之前,会调用 SafeFilter() 函数对url链接进行安全过滤,该函数代码如下:

image.png

可以看到,它过滤掉了很多javascript事件名,比如onclick,onchange等,但并没过滤onerror事件,所以这里先做个试验,

构造并访问url如下:

http://120.203.13.75:6815/3/dom.php?url=http://120.203.13.75:6815/3/?<img src=1 onerror=alert('abcdefgxss')>

然后访问 http://120.203.13.75:6815/3/log.html,发现执行了我们的js代码:

image.png

于是,到XSS平台中获取payload如下:

image.png

最终看到XSS平台已经接收到管理员的Cookie和flag:

image.png
上一篇 下一篇

猜你喜欢

热点阅读