Cross-Site Scripting

文章目录

      • 反射型xss(get)
      • 反射型xss(post)
      • 存储型xss
      • DOM型xss
      • DOM型xss-x
      • xss-盲打
      • xss-过滤
      • xss之htmlspecialchars
      • xss之href输出
      • xss之js输出

Cross-Site Scripting_第1张图片

反射型xss(get)

Cross-Site Scripting_第2张图片

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

修改maxlength的值

Cross-Site Scripting_第3张图片

Cross-Site Scripting_第4张图片

反射型xss(post)

账号admin密码123456直接登录


Cross-Site Scripting_第5张图片

Cross-Site Scripting_第6张图片

存储型xss

在留言板里直接

Cross-Site Scripting_第7张图片

出现xss的弹框后,点击确定,发现有个删除,说明确实是存到数据库里了

Cross-Site Scripting_第8张图片

查看数据库又没有这一条数据

Cross-Site Scripting_第9张图片

再次在留言板里输入js代码

Cross-Site Scripting_第10张图片

再次查看数据库

Cross-Site Scripting_第11张图片

这就是存储型反射型永久性和一次性的区别,会永久的存储在数据库中。

DOM型xss

javascript语言中分两种BOMDOM

BOM:浏览器对象模型 Brower Object Model
	js代码操作浏览器
DOM:文档对象模型  Document Object Model
	js代码操作标签

查看网页源代码,ctrl+f查找what do you see? 的位置

Cross-Site Scripting_第12张图片

发现源码中已经给出了xss代码


输入框中的内容就是标注的str,我们可以在这里构造一个闭合,实现弹窗

<a href='"+str+"'>what do you see?a>

在输入框中输入' onclick="alert('xss')">,点击click me,出现what do you see?点击

Cross-Site Scripting_第13张图片

DOM型xss-x

Cross-Site Scripting_第14张图片

输入框里输入1,发现url发生了变化

Cross-Site Scripting_第15张图片

这次是从url中获取我们输入的text参数的,这就类似反射型,构造闭合即可。' onclick="alert('xss')">

Cross-Site Scripting_第16张图片

xss-盲打

将留言保存至后台 当管理员登录查看留言时就会触发

在页面中两个输入框中都输入,提交后没有反应

查看数据库:

Cross-Site Scripting_第17张图片

也可以点一下提示,让去后台看看

http://127.0.0.1/pikachu/vul/xss/xssblind/admin.php

Cross-Site Scripting_第18张图片

发现登录后台,就会弹框

Cross-Site Scripting_第19张图片

xss-过滤

不知道过滤了什么 双写,提交后没反应

ript>alert("123")

换成大写后成功

xss之htmlspecialchars

specialchars函数就是把单引号,双引号,尖括号过滤了,但是这个函数默认是不过滤单引号的

javascript:alert(1)

xss之href输出

href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

javascript:alert(document.cookie)
javascript:alert(1)

xss之js输出

Cross-Site Scripting_第20张图片

先输入tmac

可以提前闭合

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

也可以' ; alert(1); //

页面接受到的就是$ms=''; alert(1);//'

第一步: $ms=‘’’

第二步: $ms=‘’;’ 加分号,表示语句结束

第三步: $ms=‘’; alert(1);’ 弹框

第四步: $ms=‘’; alert(1); //’ 把//后面的那对引号 注释掉

你可能感兴趣的:(#,Pikachu靶场系列,pikachu)