赞
踩
目录
XSS(Cross-Site Scripting)是一种常见的Web攻击技术,攻击者通过注入恶意代码,使得在用户访问受到攻击的网站时执行并影响用户的浏览器。XSS攻击通常被用于盗取用户信息、会话劫持、篡改网站内容等非法目的。
xss-labs-master
链接:https://pan.baidu.com/s/1oT_BJjoaSNobGWsKQf9-7A
提取码:2y4w
xss-1
首先,观察域名,发现这个域名好像可以搞事请
试一试最基础的弹窗
查看源码
发现可以构建新的闭合,利用点击事件
payload:"onclick="alert(1)
这时候value=""οnclick="alert(1)"
查看源码
发现与xss-2差不多
构造闭合,实现文本框点击事件
payload:'onclick='alert(1)
查看网页源代码
尝试"οnclick="alert(1)
点击文本框
payload:"onclick="alert(1)
查看源码
输入"οnclick="alert(1)发现没有反应
查看源码分析发现onclick变为o_nclick
尝试大小写和双写绕过发现还是没有反应
伪协议绕过:">click
payload:"><a href='javascript:alert(1)'>click</a>
查看源码
发现script被过滤,使用onclick,发现还是被过滤了
尝试大小写绕过
payload:"Onclick="alert(1)
查看源码
尝试"οnclick="alert(1),发现on被过滤
尝试双写绕过
payload:"oOnNclick="alert(1)
查看源码
尝试伪协议javascript:alert(1)
查看页面源码发现对javascript也存在过滤
将r替换为实体编码进行绕过:r
payload:javascript:alert(1)
发现需要添加连接,跟第八关很像
链接不合法,需要加http://
发现c被过滤了,这里考虑替换为实体编码进行绕过
这里将c转换
payload : javascript:alert('http://')
查看源码
源码里面有三个参数,尝试给他们赋值
t_link=111&t_history=222&t_sort=333
给t_sort赋值"<script>alert(1)</script>"
发现'<','>'会被过滤,使用点击事件绕过
原因是type类型是hidden,也就是被隐藏了
将type定义为button或者text,并且考虑闭合,将后面的hidden注释
payload : t_sort="onclick="alert(1)" type="text//
发现有一个ref后面还有xss-10的地址
先探测一下
将xss-10的payload放入
发现“被过滤了,考虑到转码
问题就在这个ref这里
Referer作用 统计
那Referer有什么作用呢,经过搜索查询可知,Referer在Http请求中主要用两个作用,主要是用作“统计”和“防盗链”。 统计的意思就是当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,例如我使用谷歌打开百度网页,通过Referer看出数据来源是来自百度,因此百度可以通过这个Referer来统计流量
防盗链
防盗链是服务器只允许网站访问自己的静态资源,那服务器每次都需要判断Referer的值是否是自己的域名,如果是就继续访问,不是就拦截。这个就好比小区业主可以进入自家的小区,非本小区的会被保安拦截不让进入是一样的道理。 如果在防盗链设置中,Referer为空的话意味着你允许比如浏览器直接访问,不用被进行识别或者被拦截。
这里我使用hackbar,修改referer
接下来我们就可以尝试构造代码,从referer这里突破:
payload:" onclick="alert(1)" type="text
查看源码
发现t_ua,值为浏览器和系统版本,然后大概确定这是用户代理
实际上,UA是一个浏览器被用来访问网站时发送给网站服务器的一串特定字符,其内容通常包含了“操作系统及版本”、“CPU 类型”、“浏览器及版本”、“浏览器渲染引擎”、“浏览器语言”、“浏览器插件”等信息。网站服务器可以根据这串字符大体判断出用户所使用的软硬件环境,进而采取不同的内容策略。
使用hackbar修改UA
payload:" onclick="alert(1)" type="button
查看源代码,发现这次是cook,考虑到xss-11、xss-12,猜测cook为cookie
继续使用hackbar修改cookie
查看源码发现cookie没写进去
使用burpsuilt抓包看看到底发生了什么
通过抓包,我们可以看到,竟然多了一个参数user,原来cookie的值是通过user才传进去的。构造payload
payload:Cookie" onclick="alert(1)" type="text
重发器里修改参数
好像成功了,放包试一试
第14关才疏学浅,如果有大佬做出来让我去学习学习
点击下方直接去15关
查看源代码
发现这是文件包含
查看源码可以看到这里是通过src
传参,而且还对<>
做了过滤,既然这里可以包含html文件,那也就是说也可以包含之前咱们做过的有xss漏洞的文件,所以就可以构造:
payload:src='level1.php?name=<a href="javascript:alert(1)">'
将xss-15的payload写入,查看源码
过滤了script和 " 还有空格
这里使用onclick事件,并将空格转码%0A,%0D
尝试加个a标签,空格用回车编码代替
payload:<a%0D%0Aonclick='alert(1)'>
查看源代码,发现emdeb
这里尝试onclick,写入后发现这个没有弹窗
点击后没什么反应,换成onmousedown事件,成功
payload:123 onmousedown='alert(1)'
查看源码,试一试xss-17的payload
看到GET请求方式传递参数,直接用测试代码进行测试,查看过滤
<script " ' Oonn>
查看页面源码发现过滤尖括号<>
和双引号"
,对大小写不敏感
检查页面元素,发现传递的参数以事件属性的格式写在标签<embed>
中,考虑用支持的事件属性进行注入
点击页面,将鼠标移至<embed>
标签处,页面提示通关
这一关我暂时还理解不了,大家可以参考一下大佬的文章,文章已经链接到下面了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。