CTF之XSS浅谈(xsslabs)

什么是XSS?

定义:XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的网络安全漏洞,攻击者通过在受信任的网站注入恶意脚本代码,从而在用户的浏览器中执行该脚本。这种攻击可能会导致用户的个人信息被窃取、账户被劫持、恶意操作等安全问题。

分类:

  • 反射型XSS:攻击者通过诱使用户点击包含恶意代码的链接或访问恶意网址,使得注入的代码被服务端返回并执行,从而攻击用户。即 黑客→用户→正常服务器→用户→恶意服务器

  • 存储型XSS:攻击者将恶意代码持久化存储在服务器端,当用户浏览受感染的页面时,恶意代码被提取并注入到页面内容中,进而攻击用户。即 黑客→正常服务器→用户→恶意服务器

  • DOM型XSS:攻击者通过修改页面的DOM结构,使得恶意代码被浏览器执行,从而实现攻击。DOM类型是一种特殊的反射型XSS,其数据不经过后端,通过前端的js脚本处理实现攻击。

总的来说,XSS和SQL注入本质上干的事差不多,XSS主要注重于在网站上留下恶意的待执行脚本,诱导用户进行访问,从而导致个人信息被盗取。

XSS-LABS挑战是类似于SQL-LABS的针对XSS攻击的练习,靶场用phpstudy(小皮面板)搭建即可。

LEVEL 1:

                                  

第一题由网址我们可以判断出该网站使用GET传参,直接修改name=后的值,写一个脚本<script>alert(1)</script>

<script>alert(1)</script>

LEVEL  2:

试试常规注入<script>alert(1)</script>

可以用">注释掉前面的<"

LEVEL 3:

 照常先随便输入,然后看源代码:

用单引号注释试试

没有结果,再看看源代码,发现尖括号被注释掉了

那就使用HTML的鼠标事件onclick

'onclick='alert(1)'

完成后只需用点击即可

LEVEL 4:

测试<script>alert(1)</script>查看源代码

不难发现和第三题一样,只不过使用双引号注释

 "onclick="alert(1)"

即可通关,当然,HTML事件也有键盘事件如"onkeypress"这样可以按下任意键盘按键触发脚本。

LEVEL 5:

 尝试<script>alert(1)</script>, 打开源代码后发现“scrip”关键字被下划线隔开,尝试用onclick

 

 关键字“on”被隔开,但不是没有办法,HTML中可以用<a></a>来写入数据

"><a href="javascript:alert(1)">here</a>

这样一来我们只用点击”here“所表示的脚本即可。

 LEVEL 6:

先做几种尝试:

结果是script,on,href这几个关键字都被过滤了,打开后台源码

可以说是能想到的和想不到的都被过滤了。还能试试大小写。

<SCript>alert(1)</SCript>

像这样把关键字部分字母大写即可骗过过滤器。

LEVEL 7:

尝试原始代码

发现输入的script关键字被过滤掉了,查看后台源代码 

可以看出来不仅是script,其他关键字也被过滤了(包括大写),但该过滤器只过滤一次,所以我们可以使用双写来解决。

"><scrscriptipt>alert(1)</scscriptript>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值