xss-labs level 10-20

本文描述了一系列网络安全挑战,涉及HTML表单中的隐藏输入处理、AngularJS指令ng-include的使用、以及利用XSS和Flash漏洞的过程。作者逐步解析了如何通过编程技巧和对Web技术的理解来解决这些安全问题。
摘要由CSDN通过智能技术生成

1.level 10

观察到输入内容只在文本内出现,属性相应位置没有获取到输入内容

换个标签试试

<img scr=1>

一样的结果

仔细观察代码,可以看到有form表单下有三个隐藏的input框

换一下注入点

t_link没有反应

t_history也没获得输入字符

只有t_sort收到传参

但是它卡掉了<>

怀疑和之前几关的函数相同

但是闭合双引号还是被卡掉了

换用事件方法

但是考虑到onclick事件需要点击输入框,必须把hidden标签解决掉

所以加一个text标签试试能不能覆盖hidden

果然可以被覆盖掉

通关暗语:

?t_sort="type='text' onclick='javascript:alert(1)'

也就是说,type的规则是会优先考虑前面的属性

2.level 11


观察form表单,发现只有t_ref有值

先试一下前三个看看

都没有反应

t_ref的值也没有了

t_ref是上一关url栏的内容,回到上一步level 10重新跳转并抓包

修改referer为上一关payload

"type='text' onclick='javascript:alert(1)'

修改后会显示t_ref的框框

点击后弹窗

3.level 12

查看隐藏表

这回有值的是t_ua就是User-Agent的缩写

没想到也没关系,再次抓包

和上一关一样

出现搜索框

4.level 13

根据经验可以直接找到t_cook

由cook想到cookie

抓包,改cookie

出现搜索框框

5.level 15

发现输入的内容会出现在ng-include里

ng-include是什么?

    ng-include 是AngularJS中的一个指令,它用于在指定的DOM元素中动态地包含另一个HTML文件或AngularJS模板。可以使用它来动态地加载和渲染不同的视图或内容片段。

    使用 ng-include 的基本语法如下:

<div ng-include="'template.html'"></div>

    或者,可以使用AngularJS的表达式来动态地决定要包含的模板:

<div ng-include="templateUrl"></div>

    在上面的例子中,templateUrl 是一个AngularJS作用域中的变量,它包含了要包含的模板的URL。

    ng-include 指令也可以接受一个带有额外选项的对象,例如:

<div ng-include="{'templateUrl': 'template.html', 'onload': 'myCallback'}"></div>

在这个例子中,myCallback 是一个当模板成功加载后将被调用的函数。

构造:

'level1.php?name=<a href="javascript:alert(1)">'

6.level 16

试试超链接标签

发现空格被编码(html实体编码名称)

绕过,构造:

<a%0Aonclick='alert(1)'>

点击界面

7.level 17

这关在google上可以通过

用一个onmouseover事件,在鼠标经过页面时即弹窗

构造:

‘onmouseover='alert(1)'

8.level 18

和上一关相同

9.level 19

flash漏洞

version&arg02=<a href='javascript:alert(/xss/)'>xss</a>

10.level 20

flash漏洞

arg01=id&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值