xss-labs前五关 详细

其它xss文章

以xss-labs举例反射型xss注入的方式及基本思路
xss实验并对注入点、注入语句及危害知识总结
other article to be continue

第一关

<1>解法:

直接在url栏的name=后输入:

<script>alert(‘forming is handsome’)</script>(这是一段js代码)

<2>解析:

在这里插入图片描述那么如果我们注入的是一段能在客户端运行的程序的话,就是能达到恶意注入的目的,查看源码,发现没有做任何防御,我们试着注入在h2处注入的脚本。

<script>alert(‘forming is handsome’)</script>

在这里插入图片描述

第二关

<1>解法:

与第一关不同的是输入的地方不同,如果和第一关在相同位置上注入就会少返回一个“确定”值,所以要在网页中的输入栏输入

forming is handsome" οnfοcus=javascript:alert(‘xss’)>//

或者

forming is handsome"> <script>alert(‘forming is hand’)</script>//

<2>解析:

首先注入<script>alert(‘forming is handsome’)</script>,然后查看网页源码
在这里插入图片描述
可以发现在h2标签处的‘>’和‘<’被替换成了实体字符,用到的是htmlspecialchars()函数(想知道更多请自行搜索)。所以在此处是实现不了脚本注入的,但是看第一个input元素处‘<’和‘>’并没有被替换,所以在这里根据onfocus事件,可以实现脚本注入。输入

forming is handsome" οnfοcus=javascript:alert(‘xss’)>//

或者

forming is handsome"> <script>alert(‘forming is hand’)</script>//

当输入前者进去以后点击页面上的确定,待刷新以后点击一下输入框给onfocus事件一个焦点,网站就会自动通向下一关。若是后者则会自动弹出选框。
下图是前者的源码图。
前者的源码图

第三关

<1>解法:

在与第二关相同的位置输入

forming’ οnfοcus=javascript:alert(‘handsome’) //

这里讲一个我发现的东西,那就是输入的字符串不能太长,不然无法注入成功。
毕竟我也想在每一个能输入forming is handsome的地方都输入,但是这个地方可能是开辟的空间太小这么长的字符串不能被存储,所以只能这么短。

<2>解析:

和之前一样都是进行尝试,输入:

<script>alert(‘forming is handsome’)</script>

再查看网页源码:
在这里插入图片描述
发现和第二关的不同之处在于在input处也转换了">","<",那么可以换一种onfocus事件的书写格式达到注入的目的,输入:

forming’ οnfοcus='javascript:alert(‘handsome’)

最后再与第二关一样触发onfocus事件,就可以过关。但最后有我一个小问题,我自己给了个解释,如果看到这里的各位有’地道的‘‘正确的’理解,欢迎指正。
在这里插入图片描述图片中的input元素处的语句并没有闭合为什么不影响脚本注入?我的解释是,因为input标签是一种无内容标签,所以可以不接/,从而告诉浏览器末尾位置,而浏览器可以自动解析但是不影响,应该是应浏览器而变。

第四关

<1>解法:

forming" οnfοcus="javascript:alert(‘handsome’)

<2>解析:

输入:

<script>alert(‘forming is handsome’)</script>

以此判断一下情况
在这里插入图片描述

判断出来和第三关情况大致相同,只是在input处从原来由字符变成实体换成删去’>‘和’<’,但是我们输入的字符串中没有’>‘或’<’,所以我们输入和第三关一样的答案尝试,发现还是不可以。我查看网页源码以后发现,是包裹name的值的符号由单引号变成了双引号,所以理论上只需要在第三关的基础上把包裹name值得’改为”,但是需要注意的是(在第三关提醒过)可能是网站源文件中给这一空所留的空间太小导致,输入太长,是不能注入成功的。
在这里插入图片描述

第五关

<1>解法:

输入:

forming” ><a href=javascript:alert(’'is)>handsome</a>

<2>解析:

首先还是输入:

<script>alert(‘forming is handsome’)</script>

再查看源码
在这里插入图片描述发现h2处的‘>’和’<‘被替换成了实体字符,而input处的‘<’和‘>’则没有被替换,同时‘script’被加上了’_’,证明script已经被屏蔽。与前几种情况都不完全相同,所以再输入:

forming" οnfοcus=javascript:alert(‘handsome’) //

判断一下
在这里插入图片描述和刚刚情况一样,证明‘script’和’onfocus’都被屏蔽了。那么是时候请出另一种注入方式了,输入:

forming” ><a href=javascript:alert(‘is’)>handsome</a>

查看源码:
在这里插入图片描述发现href没有被屏蔽,所以本质上是把有alert函数的文件以超链接的方式与网页连接,最终通过访问超链接的方式执行js脚本。

其它xss文章

以xss-labs举例反射型xss注入的方式及基本思路
xss理解进阶篇
other article to be continue

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SuperForming

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

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

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

打赏作者

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

抵扣说明:

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

余额充值