进入第二关,首先进行往常操作,看到url有参数和输入框,尝试进行修改

xss-labs第二关_源代码分析

 

这边我在输入框输入1,这边返回的也是1

xss-labs第二关_输入框_02

 

 看到返回值一致的话,尝试进行输入xss语句

xss-labs第二关_源代码分析_03

 

 

结果没有出来,我们查看网页源代码分析下原因

xss-labs第二关_源代码分析_04

 

 嗯,这边输出端大概做了尖括号的过滤,大概是用了过滤的参数(ps:这仅仅是这个实验返回我们输入的值,现实中不大可能会把我们的值返回出来给我们看)

既然这边不行尝试换个思路,把input标签里的vlaue参数进行闭合,闭合后在执行我们的xss语句.payload大概是

"><script>alert(1)</script>"

 结果出来了,成功弹框,这时候再查看网页源代码。

xss-labs第二关_input标签_05

 

 

 

 成功闭合value,后面在输入script标签完成xss攻击。我们在查看后端代码进行分析

 xss-labs第二关_源代码分析_06

 

 之前的分析有误,并不是进行尖括号的过滤,只是把我们输入的值放在单引号里面了,但这并不能防止xss攻击,如同上面进行简单的闭合就能突破。

总结:先进行试探来查看通过什么方式来返回我们的值,然后根据返回的值进行构造攻击,这个关卡就是闭合value来进行构造xss语句。