目录
介绍
xss_labs是一个入门小白练习xss攻击的一个很好的方式,下面我将介绍通关教程,注意,每一关都是有目的的,小白初练,由于不知道目的和思路的先看提醒,不要看解法。加油,这才刚刚开始!
xss攻击有两种类型,第一种是存储型,第二种是反射型,围绕着这两个类型展开攻击,具体选择哪种需要根据具体情况分析,因此,观察目的网站收集信息是一个最重要的开始。这篇文章只有反射型,非常适合构建一个进行xss注入的最基本的思路。
关于两种类型的具体解释,初学者可以自己去查阅资料,了解区别和应用特点。
提醒
1-7:观察网站,判断出是反射型还是存储型,然后根据类型来实施相对应的攻击。结果为反射型
没有思路的可以直接借鉴文章后面的总结来建立属于自己的思路的地基。
解题
第一关
确认攻击类型之后,且观察到一个注入点,因此我们就可以进一步验证测试
验证成功之后,我们就可以直接过关
第二关
开始验证
第三关
观察输入框的html代码,为了绕过<>或者script,我们先试试对<>的绕过,这是因为考虑到源代码可能是使用htmlspecialchars函数对<>进行了转义,我们可以采用类如onblur,onfocus,onmouseover等方式来实现绕过<>进行攻击
考虑到闭合,需要进行猜测,如
<input value=''>或者<input value="">
payload :' οnblur=javascript:alert(1) ' 或者 ” οnblur=javascript:alert(1) “
第四关
观察第四关,对其进行类如第一关到第二关的一些payload发现没有作用
再使用第三关的操作发现也没有作用,那么才用第三关没有尝试的情况,如下
<input value = "">
payload: " οnclick=javascript:alert(1) "
攻击成功
第五关
通过对比猜测源代码是对%script%进行转义得%scr_ipt%,因此我们可以采用以下payload
①' οnclick=javascript:alert(1) '
②" οnclick=javascript:alert(1) "
通过插入标签的方法来进行xss注入,但是这种方法太明显,在实际应用中难以达到目的,因此这里不在赘述,下面是payload,感兴趣的可以尝试
payload:"> <a href=javascript:alert(1)>xss</a> <"
备注:可以将xss换成具有诱惑力的文字,增加诱惑力,你懂的哦
第六关
尝试了前几关里所有方式的注入,发现都关键字符都被转义,href也被转换
尝试其他类型的
<img src="javascript:alert(1);">发现也被转化
因此我们可以考虑使用大小写来绕过,注意如果源代码将得到的用户输入的数剧全部转化成小写,那么这个方法就不会起作用
payload:" Onclick=javascript:alert(1) "
第七关
根据这个特点,我们可以利用它来写一个特殊的字符串:scripscriptt
图片显示特殊字符串已有作用,那接着写特殊的字符串:oonn
注入成功
总结xss注入思路:
首先观察页面,判断更适合反射型还是存储型
然后根据页面情况和html代码找到所以潜在的xss注入点,然后一一测试
对于测试,可以输入带有关键字较多的代码来检查源代码对与哪些特殊字符进行哪些转义、转化的等操作,如大写强制转化成小写来方式大小写绕过,用httpspecialchars函数对<>进行转义,以及对script、href、on、src等处理,这需要观察转化后形成的某样来进行针对性的处理,如
script转化成空格,那么可以使用构造特殊字符串来绕过防御。
只要能成功,再丑陋的绕过方式都是最华丽的注入