一.反射型xss(get)

1.  我们先输入“ '"<>6666 ” 用于测试我们的输入会不会被过滤掉,因为有特殊字符

 

 2.输入一下<script>alert("xss")</script>,看是否被过滤,但是前端对长度有限制,修改后提交

 

执行成功

二、反射型xss(post)

1.我们登录一下,默认账号密码是admin 123456

 

 

 

 

这里是以POST的方式提交的,参数内容不会出现在URL中

这时候我们不能直接把我们的恶意代码嵌入到URL中 

2.我们需要自己搭一个恶意站点,然后在网站上放一个post表单将存放POST表单的链接发送给受害者,

诱导受害者点击这个POST表单会自动向漏洞服务器提交一个POST请求

实现受害者帮我们提交POST请求的目的

我们需要修改里面 漏洞服务器 和 攻击者 的服务器地址

 

 post.html页面的作用是:当用户访问这个页面时,会自动向漏洞服务器发送POST请求,然后重定向到漏洞服务器的index页面

我们只需要诱导受害者点击上面的链接就能窃取用户的Cookie

3.获取结果

 

 三、储存型xss

1.

我们试着在皮卡丘平台上的XSS上留言,看看是否有什么过滤机制

    我们发现我们的留言会一直存在,而且从表现上我们输入的内容直接输出了

2.构造html语句

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

 

成功

四、DOM型xss

1. 

下面我们在皮卡丘平台上的DOM型XSS上测试一下

    

输入图中的内容,观察到如下输出,发现和输入的内容有区别

 

2.

下面通过观察页面源码

    这里有段JS代码,它通过 getElementById 获取到了标签 Id 为 text的内容赋值给str

    然后又把 str 的内容通过字符串拼接的方式写到了 a 标签的 href 属性中,a标签会写到 Id 为 dom的 div 标签中

3.构造payload

#' onclick=alert("xss")>

 

 成功弹窗

五、xss-x

1.观察源码

 

 2.根据提示构造一下

成功弹窗

 六.xss之盲打

没有任何过滤,提交以后访问 /admin.php 用户名admin,密码123456,打开就弹窗。。。

 

 

七、xss过滤

打开源代码,发现使用正则将 <script 替换为空
于是换一种弹窗方式
<img src=0 onerror="alert(document.cookie)">

 

 

 八、xss之htmlspecialchars

审查元素后发现输入的内容是被拼接在<a href ="输入的内容">中

看下源码:

 

$message=htmlspecialchars($_GET['message'])
该函数把预定义的字符转换为 HTML 实体
预定义的字符是 & " ' < > 这五个,即转化为 &#xxx的形式
关于flags:默认情况下为只过滤双引号,若设置为ENT_QUOTES则单双引号均被过滤
明白了htmlspecial的作用,可以看到本题中未过滤单引号

 

 


9.xss之href输出
输入一个进行测试 提交后查看源码,输入在 a 标签的 href属性中
于是构造javascript:alert(6868)

 

 十、XSSjs输出

测试输入查看页面源码 插入js 测试代码

构造一个闭合,先用一个单引号和</script>闭合掉页面中的<script> 构建payload

</script>'<script>alert("666")</script>