XSS常见的触发标签_xss标签_H3rmesk1t的博客-CSDN博客
该补习补习xss漏洞了
网站存在 静态 和 动态 网站
xss 针对的网站 就是 动态网站
动态网站
会根据 用户的环境 与 需求 反馈出 不同的响应
静态页面
代码写死了 只会存在代码中有的内容
通过动态网站 用户体验会大大加深 但是会存在漏洞 xss
XSS 是一种注入漏洞
通过用户输入 在代码页中插入 恶意语句 从而实现注入
攻击成功 可以获取但不止 COOKIE 会话 和 隐私页面
首先我们来看看最简单
然后我们通过 get 传递漏洞
xss需要通过php的输出指令来输出
我们通过做题目来继续了解吧
打开靶场
我们能发现 这三个地方
然后我们回去看看源代码
能发现 我们输入什么 他就存储在源代码什么
这里就是动态的
如果和sql注入一样 我们插入恶意代码呢
这里通过 alert 来弹窗
这里 script 表示 JavaScript代码 / 表示结束了
那么这里插入后
欢迎用户test1

就变为了
欢迎用户test1

实现了 alert 弹窗
我们就实现了 第一题
我们依然看看源代码
这里我们发现了 我们输入的值 被当做参数了
value="1">
这里我们就想到了 sql注入的闭合了
所以payload 就是
">
是资源的标签
一般
这样使用
如果读取不到 我们可以设置 onerror属性 来输出内容 这里就存在 xss
">
<"
附属于 img 下的属性
payload为
">
<"
">
<"
这里是利用 iframe标签
">
我们查看代码 没有发现和上一题有什么不一样的
所以我们去继续使用上题的payload
">
发现被实体化了
并且只过滤了 <>
这里我们就需要想到是htmlspecialchars
我们去看xsslab源代码
确实是这样
这里其实预定义了转义的内容 因为单引号没有被转义 但是其实可以实现的
&:转换为&
":转换为"
':转换为成为 '
<:转换为<
>:转换为>
发现就是为了让 <>里面的转变为字符串 失去闭合作用
这里我们需要通过 ' 绕过
因为我们的<> 会被实体化
所以我们需要运用不需要<>的payload
我们可以利用 onfocus 事件
当 页面中存在 输入框等 需要存在点击的界面时
onfocus 就可以被触发
这里就存在一个很明显的例子
既然 onfocus可以出发函数 那么我们就可以通过执行
这里就可以写入payload
onfocus=javascript:alert()
这样就可以绕过 过滤 <>
那我们如何执行呢
我们输入一个 ' 时
变成了下面这个
value="" '="">
我们输入 'abcd'
变为了
value="" abcd''="">
我们输入 payload
' onfocus=javascript:alert(1) '
就会变为
value="" onfocus=javascript:alert(1) '' ="">
从而实现了闭合
所以最终payload
' onfocus=javascript:alert(1) '
我们首先可以判断是否存在过滤
'"&<>
发现只有3个了 过滤了 <>
用上题目的payload
' onfocus=javascript:alert(1) '
失效了
我们看看代码
进行修改payload
" onfocus=javascript:alert(1) '
我们使用第一题的payload直接上去
发现 script 变为了 scr_ipt
我们去看看源代码
发现过滤了 on 和 script
所以我们使用其他方式
123
xxxxxx
我们先给出payload
然后我们解释一下
通过 a标签 然后点击 我们可以实现跳转等操作
既然可以实现跳转 那我们也可以实现 执行JavaScript命令
我们开始做题
我们先传入内容
xxxxxx
我们需要闭合 所以修改paylaod
"> xxxxx
还需要将后面的 "> 闭合
所以最后的payload为
"> xxxxx <"
点击即可实现
我们把上面的 payload 丢进去看看
发现 过滤 了 a href
但是放出来了 大小写 所以我们可以
"> <"
或者
"> xxxx <"
又或者
" Onfocus=javascript:alert() "
我们先上关键词看看
" Onfocus