小白XSS入门笔记

XSS分为三种基本类型。

储存型:把恶意代码注入到后台数据库进行保存,其他用户访问就会出现问题。比如说发帖,木马邮件这种,你点开之后就会出问题。

反射型:把恶意代码注入到后台数据库进行查询等操作,并将错误内容返回给前端

DOM型:把恶意代码注入到前端,并将错误内容返回给前端(没有经过后端)【感觉危害较小】

一般来说,恶意代码注入和sql注入其实差不太多。通过闭合标签,插入恶意语句。

<img src="#" onmouseover="alert('xss')">
onclick="alert('xss')”

等还有各种on-x的触发事件方式

当然最简单的就是直接

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

这里提供一个闭合标签的案例:
在这里插入图片描述
输入111显示一个奇怪的话

试试直接插入 script
在这里插入图片描述

发现了不同。

说明这个显示和我们的输入有关,存在xxs漏洞,打开网页代码看看。

在这里插入图片描述
不是很好观察,再换一个输入看看
在这里插入图片描述
这样就可以很明显看出来,我们的输入是在两个引号之间的,并且结尾要用引号加上>来闭合

需要注意的一点:这个引号暂时无法判断是单引号或者是双引号,因为这里默认显示是双引号,我们看一下这里的代码部分。
在这里插入图片描述
根据处理代码可以看出来,这里应该是单引号。

所以使用如下代码

'><img src="#" onmouseover="alert('xss')">

在这里插入图片描述

当我们把鼠标移动到这张显示出错的图片上时

在这里插入图片描述
弹窗了

在这里插入图片描述
其中这个window.location有下面这些属性
在这里插入图片描述
search就是参数部分。

在这里插入图片描述

然后通过var txss =decodeURIComponent(str.split(“text=”)[1]);取出以text=为分割的第二个元素,第一个元素是?第二个元素就是我们输入的值。
最后var xss = txss.replace(/+/g,’ ');将+删除,这里应该是过滤经过url编码过的空格吧。

关于xss的绕过,可以注意一下html的标签是大小写不敏感的。

有时候会发现自己的输入怎么都不执行,但是输入又没有被过滤,那么估计是被转移了

m e s s a g e = h t m l s p e c i a l c h a r s ( message=htmlspecialchars( message=htmlspecialchars(_GET[‘message’],ENT_QUOTES);

这个htmlspecialchars函数就是转义用的,当然最后显示的时候是显示原字符,不会显示转义后的。

& (和号) 成为 &amp;
" (双引号) 成为 &quot;
' (单引号) 成为 &#039;
< (小于) 成为 &lt;
> (大于) 成为 &gt;

这个时候我们就可以采取另一种方法javascript:alert(‘XSS’)

瞬间记录一下最后这个

输入111显示这个
在这里插入图片描述
看一下代码

在这里插入图片描述
然后发现输入数据的处理有点问题。

然后搜索一下这个id

在这里插入图片描述
有一个这样的脚本。

发现这个111就是我们输入的数据。

然后面对这种情况可以随便构造,比如输入1';alert(1);$a='1

在这里插入图片描述
弹窗了
又或者直接闭合输入</script><script>alert('xss')</script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值