Web攻击技术 实验报告二 XSS/CSRF攻击

半城伤御伤魂 提交于 2019-12-13 18:17:33

一、XSS攻击

(一)、反射性型XSS(GET)

我们先输入’”<>,1234 用于测试我们的输入会不会被过滤掉,因为有特殊字符。

 

然后看一下源码。

 

 

 这里可以看到我们的输入被直接显示在了P标签里。

然后我们输入我们的JS代码试试

<script>alert("123")</script>

 

 

 发现显示对输入长度有限制,我们F12更改一下继续输入。

 

 

 

 

 

 

 

我们查看源码可以发现,我们输入的payload嵌入了到了 p 标签里面。

这又是正确的JS代码,所以被浏览器正确执行了。

 

 

 

 

 (二)、反射性型XSS(POST)

首先登陆进来

 

 

 因为是POST,所以参数不会体现在URL里,这里我们使用Burp抓包看。

也是一样,先输入特殊字符防过滤。

 

没有被过滤,我们可以POST传参试试。

<script>alert("document.cookie")</script>

 

OK

(三)、存储型XSS

跟之前一样,直接测试语句。

<script>alert("123")</script>

 

(四)、DOM型XSS

首先弹窗试试。

 

点击what do you see?

 

 

 

看源码,发现onclick后会执行函数 domxss() ,其作用是读取input的值并将其拼接到新创建的link节点中。

 

 

 

 

 

 

 

 (五)、DOM型XSS-x

一样先试一下过滤

 

 

 

可以发现'"<>都被过滤了。

同理还是看源码。

构造payload:

'><img src="#" onmouseover="alert('xss')">

 

(六)、XSS之盲打

试一下

没有弹窗,根据提示我们登入后台。

 

 

已经在后台弹窗了

(七)、XSS之过滤

由题目可以看出来,应该是有过滤的,那我们直接试试。

 

 

果然被过滤了,换一种写法试试。

<img src=0 onerror="alert(document.cookie)">

 

 

 成功弹窗了。

 

(八)、xss之htmlspecialchars

先随便输入,<script>alert("123")</script>

 

首先了解了一下htmlspecialchars

 

输入123’ ”<>&,查看源码。

 

我们可以发现对单引号没有过滤能力,其他的皆可以变成实体编码

于是我们可以构造这样一个payload
' onclick = 'alert(123)'

第一个单引号是闭合前面的

 

 

(九)、xss之href输出

测试一下

 

没有反应,看一下源码。

 

 

审查返回的元素发现所有字符都被转化为HTML实体了,包括单引号。
但由于输入的url拼接在 <a href='输入的内容'>属性中,可以使用javascript语法:

Javascript:alert("123")

 

 

(十)、xss之js输出

 测试输入 '"<>,1234

没有回显

输入1

 

可能是被过滤了,我们挨个试一下。

发现输入'"的时候被过滤了,我们输入<123>试试,看看源码

 

 输入被拼接到了脚本中,尝试闭合语句然后添加自己的语句上去:

';alert(document.cookie)并没有任何回显,我们在看看源码,原来忘记注释掉后面的了所以我们再构造payload:';alert(document.cookie)//成功弹窗

 

 

二、CSRF攻击

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!