pikachu之XSS(初学者总结)

目录

1.反射型XSS(get)

2.反射型XSS(post)

3.存储型xss

DOM型XSS

DOM型xss-x

xss之盲打

XSS之过滤

xss之htmlspecialchars

XSS之href

XSS-js输出


1.反射型XSS(get)

获取cookie

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

根据提示先输入一个kobe试试,输入框有长度限制先改个大的(多长的脚本也不怕了)

输入<script>alert("xss")</script>有弹窗出现存在xss漏洞

分析代码:

  • isset检测变量submit是否已设置并且非 NULL,即判断用户是否点击了submit按钮。
  • 得到message参数,判断是否非空。若为空,输出提示。若非空且为kobe,输出上面截图的图片及内容。
  • 否则,拼接到html变量,并输出html

2.反射型XSS(post)

作者让干啥咱干啥,先登录

登录成功了

输入个1,下面并回显猜测和上个例子代码一样

输入<script>alert("xss")</script>有弹窗出现存在xss漏洞

哦?好像跑题了

这里是post

看代码

和之前相比,添加了登录,用来设置Cookie,不过仍然是进行拼接,没有任何过滤。

3.存储型xss

先输个1看看,

直接上payload <script>alert("xss")</script>

这次我们回想存储型的原理:是存进数据库的并且每次加载这个留言板就会执行这个恶意的payload

废话不多说看效果

再次访问

DOM型XSS

DOM可以理解为访问HTML的标准接口,DOM里面会把我们的HTML分成一个DOM树

我们可以以这棵树为入口,通过DOM的某些方法对树进行操作,比如对标签的添加、改变和删除等等, DOM这个东西相当于在前端提供了一个通过JS去对HTML进行操作的接口。

看代码

查看前端代码,发现输入的内容会被拼接到,对应标签中,存在dom性的xss,我们只需要精心构造payload,闭合前面就行。

扩展:

onmouseover事件:指鼠标移动都某个指点的HTML标签上,会出现什么效果。

onmouseout事件:指鼠标移出某个指点的HTML标签后,会出现什么效果。

' onmouseover = "alert('xss')"

DOM型xss-x

和上面那个没什么区别

直接payload ' onmouseover = "alert('xss')"

代码分析

标题
  • 提交表单后,得到text,添加一个a链接,href属性为#,点击运行domxss函数。
  • domxss函数将text通过正则进行一个简单过滤,然后和上一个一样。

xss之盲打

盲打就是随便写
不过这个要登入后台才能看

属于存储型的一种吧

看后台有什么惊喜

出现弹窗

XSS之过滤

直接上payload

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

<SCRIPT>alert('XSS')</SCRIPT>

好像少了点什么东西那就

分析代码

注释写的很清楚,使用正则,过滤掉<script,我们可以使用html标签进行注入。

同时,有个小彩蛋,输入yes的话就不会显示你的输入了,而是固定的文本——那就去人民广场一个人坐一会儿吧!

换一个payload

成功的绕过过滤但是没成功啊,因为是点击事件,那就再换一个

换成大写

<SCRIPT>alert('XSS')</SCRIPT>

成功绕过

xss之htmlspecialchars

直接插入payload

哦?不行

先输几个符号检测一下,并看看源代码那些符号被编译了

发现'没被处理htmlspecialchars默认不对'处理

'οnclick='alert(123)'(第一个单引号闭合前面herf那个)

最后看一下代码你就会很清楚

XSS之href

还是老规矩先是一顿输入符号

可以看到在href中

输入一些内容,我们发现他被写在了a标签里,关于a标签有一个特性:

输出在a标签的href属性里面,可以使用javascript协议来执行js,那么根据这个来构造payload

XSS-js输出

还是老规矩先是一顿输入符号

输入一堆符号,观察源代码,发现我们的输入被放在了js中,那么我们可以直接通过闭合$ms=''"<>666';来构造payload

' ;alert(111) ;'

看源代码就明白了

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一块金子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值