xss-labs练习记录

文章目录

    • XSS简述
    • XSS-labs靶场练习记录
    • level1
    • level2
    • level3

XSS简述

1、本质:前端代码写的有问题,允许用户自己嵌入HTML或者css或者js代码并执行(一般js的危害比较大),从而造成漏洞

2、类型:反射型、存储型、DOM型
(1)反射型:前端-后端-前端
前端页面输入后,经过后端代码执行,再返回到前端页面。(反射型XSS通常只在URL中,用户访问特定的URL才会中招)
把含有攻击代码的URL替换成一个短链接,用户访问该链接就会造成恶意代码的执行。
(2)存储型:前端-后端-数据库(服务器)-前端
前端提交的数据会经过后端,后端的代码把它存到一个地方,例如数据库或者一个文件夹,再返回前端。
存储型XSS一般出现在用户可以访问到的地方,例如评论区,留言板等地方,访问之后即执行恶意代码。
(3)DOM型:前端
DOM(document object model):文本对象模型
当确认客户端代码中有DOM型XSS漏洞时,诱使用户访问自己构造的URL。利用步骤和反射型很类似,但是唯一的区别就是,构造的URL参数不用发送到服务器端,可以达到绕过WAF、躲避服务端的检测效果。

XSS-labs靶场练习记录

level1

xss-labs练习记录_第1张图片
打开第一关,页面显示欢迎用户test,经过观察我们看到URL有name=test,且下方提示payload长度为4,猜测应该是提交了一个test给name

输入 (alert是弹窗,引号里的内容为弹窗内容),完成第一关
xss-labs练习记录_第2张图片

level2

xss-labs练习记录_第3张图片
这里比第一关多了一个搜索框,尝试输入,显示
xss-labs练习记录_第4张图片
查看网页源代码,发现尖括号<>被编码了,value参数值中的恶意代码并没有被编码而是直接原样返回

看别人的wp知道,要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。我们用">去闭合原先的",用//去注释原先的"> ">//
xss-labs练习记录_第5张图片

level3

xss-labs练习记录_第6张图片
输入test试试
xss-labs练习记录_第7张图片
输入试试
xss-labs练习记录_第8张图片
查看网页源代码看看,发现这两处都将<和>这样的敏感字符编码成了html字符实体。
在这里插入图片描述
看看PHP代码,
xss-labs练习记录_第9张图片

浏览器可以通过标签的一些特殊事件来执行js代码,如onfocus,onblur,但是这两个是属于输入框在光标进入/离开时调用后面的js代码
构造payload' onclick ='javascript:alert(1)'//
最后要点一下输入框才会出现弹窗
xss-labs练习记录_第10张图片

你可能感兴趣的:(xss,web安全)