xss-labs通关记录(level1~5)

先了解一下xss

简单来说XSS,也叫跨站漏洞,攻击者对网站代码进行攻击检测,对前端输入的地方注入了XSS攻击代码,并写入到网站中,使用户访问该网站的时候,自动加载恶意的JS代码并执行,通过XSS跨站漏洞可以获取网站用户的cookies以及seeion值,来窃取用户的账号密码等等的攻击行为

寻找xss漏洞

XSS漏洞经常出现在需要用户输入的地方,在寻找XSS漏洞时,先随便输入东西观察页面的响应方式,然后查看页面源码,然后构造合适的alert()弹窗来发现,同样也可以使用prompt(),confirm()。

xss分类

存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie
反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面
DOM型XSS:不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。 

详细内容见师傅的博客

在phpstudy中搭建xss-labs
xss-labs通关记录(level1~5)_第1张图片
level-1
xss-labs通关记录(level1~5)_第2张图片观察url地址会发现?name=test这里是向服务器提交了一个值为testname参数
并且页面不仅回显name参数的值,而且显示了name参数的值的长度。

查看页面源代码
xss-labs通关记录(level1~5)_第3张图片发现

欢迎用户test

name参数的值在h2标签中,直接在name参数中使用
xss-labs通关记录(level1~5)_第4张图片弹框完成的不错

因为是通过url传参,属于DOM型xss也属于反射型xss

在弹框页面无论点击确定或取消都会跳转到level-2

level-2

xss-labs通关记录(level1~5)_第5张图片url中?keyword=test是向服务器提交了一个值为testkeyword参数
页面中央还有一个输入框和搜索按键
直接在输入框输入

xss-labs通关记录(level1~5)_第6张图片发现并没有弹窗
xss-labs通关记录(level1~5)_第7张图片查看页面源码,自己不咋懂

这里参考了师傅们的博客

没有找到和<script>alert('xss')</script>相关的结果.

就会发现h2标签中的恶意代码被编码了,<和>被编码成html字符实体<>
value参数值中的恶意代码没有被编码,是直接返回的value=""

因为恶意代码的<和>被编码,所以要构造闭合

?keyword=">

xss-labs通关记录(level1~5)_第8张图片成功弹窗

level-3
xss-labs通关记录(level1~5)_第9张图片直接在输入框输入进行尝试,点击搜索后只显示了并不能成功

参考师傅们的博客
这里要通过input标签的一些特殊事件来执行js代码,如onfocus事件onmouseover事件

可以构造'onfocus=javascript:alert('xss') >或者
'onclick=javascript:alert('xss') >
onfocus事件
onmouseover事件

不用有区别

xss-labs通关记录(level1~5)_第15张图片查看页面源码
xss-labs通关记录(level1~5)_第16张图片可以发现<和>均被编码,而且value里的<和>被直接删除过滤了

同Level-3进行尝试input标签的一些特殊事件,如onfocus事件onmouseover事件来执行js代码

使用'onfocus=javascript:alert('xss')尝试,发现并没有弹窗

应该是构造闭合的方式不对
xss-labs通关记录(level1~5)_第17张图片value="'onfocus=javascript:alert('xss')"

如果与level-3弹窗的页面源码比较value=''onfocus=javascript:alert('xss') >'(这里的>>被编码后的显示)

会发现onfocus前的闭合字符是有规律的,而且alert('xss')后面是少了东西的

接下来就是尝试的时候,将onfocus前的'换成"alert('xss')后面也使用",也就是keyword="onfocus=javascript:alert('xss') "

点击输入框后弹窗成功
xss-labs通关记录(level1~5)_第18张图片页面源码
xss-labs通关记录(level1~5)_第19张图片在尝试的过程中还发现alert('xss')之后的符号并没有限制,只要onfocus前的闭合字符输入正确,可以在alert('xss')之后输入任意字符

level-5

来到第五关
xss-labs通关记录(level1~5)_第20张图片使用进行测试
xss-labs通关记录(level1~5)_第21张图片输入框的显示为alert('xss')

xss-labs通关记录(level1~5)_第22张图片说实话前面一直遇到的是对符号进行转义的,遇到还是有点不知所措的
但是转念一想,前面两关还都没用到

你可能感兴趣的:(xss-labs通关记录(level1~5))