pikachu靶场(xss通关教程)

(注:若复制注入代码攻击无效,请手动输入注入语句,在英文输入法下)

反射型xss(get型)

1.打开网站

发现有个框,然后我们在框中输入一个“1”进行测试,

可以看到提交的数据在url处有显示,在页面中也显示了相应的结果。

2.在输入框中插入我们的攻击语句

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

 

发现只能输入上面的字符,后面不能再输入了

此时有两种方法

第一种,在url栏中提交数据

访问发现没什么反应,那是因为在url栏中()要被编码

所以输入的数据应该是

<script>alert%28"xss"%29</script>

此时访问页面,则会出现弹窗 

第二种,鼠标右键单击当前页面,点击检查

以图中的序号为准,依次点击

会看到图中的位置有个maxlength,就是这个限制了输入框中输入的数据长度,把它的值改成2000,然后点击右上角关掉检查页面(注意,不是关闭浏览器页面)

就可以在框中输入我们的攻击语句

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

此时点击submit,页面同样会弹窗 

 反射型xss(post型)

1.打开网站

首先给了我们一个登陆框,在右上角点击提示,会出现用户名与密码,然后登录

2.登录之后在输入框输入1,点击提交

发现地址栏中没有输入的结果,

打开我们的抓包工具 

从请求头上可以看到提交方式为post

抓包看到了post提交的数据

3.在输入框中输入攻击语句

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

4.弹窗

存储型xss 

1.打开网站

2.直接在输入框中输入1,提交

可以看到数据保存在下方了,一般放在服务器上,

3.插入攻击语句,点击提交

攻击语句:<script>alert("xss")</script>

出现弹窗 ,而且因为是存在服务器上的,所以每次提交数据,都会被执行

4.输入admin,点击提交

也会弹窗

DOM型xss

1.打开网站,可以看到一个输入框

2.输入1提交

3.直接右键当前页面,点击检查

4.按顺序点击(快速定位到输入框的前端代码)

5.点击下图中的两个红色框

  

可以看到我们刚才输入的1变成了一个超链接

可以看到闭合符号为('),需要逃逸出来前面的超链接,闭合掉前面的<a>标签

6.构造攻击语句

'> <src='a' οnclick=alert(1)>

输入到输入框中,点击提交

 可以看到<a>标签被闭合了

7.点击超链接

8.就会出现弹窗

DOM型xss-x

和DOM型xss一样,检查,查看闭合符号,然后构造攻击语句。

在输入框中插入

'> <src='a' οnclick=alert(1)>

按照图中顺序点击,则会弹窗。

xss之盲打

1.打开网站

看到有框,秉承着有框就插的原理,注入我们的弹窗语句

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

2.点击提交,发现并没有弹窗

输入正常的语句也没有什么有用的显示,此时点击右上角的提示,它让我们登录后台看一下

 

3.点击提示,把框1中的地址复制到框2中

完整的地址应该是

localhost:8086/pikachu-master/vul/xss/xssblind/admin_login.php

可以看到出现了一个登陆框,输入账号密码,若不知道,可以点击右上角的提示查看

 

4. 登录之后可以看到出现弹窗。

xss之过滤

1.打开网站,直接插入攻击语句

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

看到输出的是这样,

当我们输入一个正常值,比如我爱学习

可以看到我们输入的值被放在单引号里面了,而我们的攻击语句只有>,说明他对我们的输入做了过滤。 

2.使用其他弹窗函数

比如:

<img src="x" οnerrοr=alert("xss")>

也可以用其他的弹窗函数。 

3.出现弹窗

xss之htmlspecialchars 

1.打开网站,输入注入语句

2.发现被记录在页面上

3.右键检查,发现变成了一个超链接

4.构造注入语句

 javascript:alert(1)

5.点击提交,点击下面的链接,出现弹窗

 

 xss之href输出

和上题类似,输入注入语句,右键检查,发现也是被记录在a标签的herf属性内

用注入语句

 javascript:alert(1)

 

点击框中的超链接,出现弹窗

 

xss之js输出 

1.打开网站,输入攻击语句

<script>alert(1)</script>

2.右键检查

 

发现我们输入的语句被放在了这里,而且后面的</script>标签和前面本身就有的<script>标签凑成了一对,导致我们的攻击语句不能正常运行,想办法闭合掉前面的<script>

3.构造攻击语句

</script><script>alert(1)</script>

4.点击提交,出现弹窗

 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 12:40:05       76 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 12:40:05       81 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 12:40:05       65 阅读
  4. Python语言-面向对象

    2024-05-12 12:40:05       76 阅读

热门阅读

  1. Linux 文件目录详解

    2024-05-12 12:40:05       32 阅读
  2. 第十四章 算法

    2024-05-12 12:40:05       28 阅读
  3. C++算法之区间合并

    2024-05-12 12:40:05       34 阅读
  4. 法人单位和产业活动单位有什么区别和联系

    2024-05-12 12:40:05       33 阅读
  5. 比亚迪算法岗面试,问的贼细!

    2024-05-12 12:40:05       29 阅读
  6. 数据库监控监听

    2024-05-12 12:40:05       34 阅读
  7. C# 实现加减乘除 (备忘)

    2024-05-12 12:40:05       30 阅读
  8. 计算机视觉教学实训解决方案

    2024-05-12 12:40:05       33 阅读
  9. 1080:余数相同问题

    2024-05-12 12:40:05       26 阅读
  10. [C/C++] -- 适配器模式

    2024-05-12 12:40:05       34 阅读
  11. 整体意义的构成与构建

    2024-05-12 12:40:05       37 阅读
  12. 【负载均衡式在线OJ项目day5】OJ服务模块概要

    2024-05-12 12:40:05       32 阅读