旨在记录学习过程,灵活学习,了解原理。
XSS漏洞测试思路:
1,确认测试页面输入与输出点
2,通过浏览器前端确认输入执行情况
XSS-LABS第一关:
操作步骤:
**步骤一:**确认输入与输出点:
通过修改name参数,查看源代码,判断输入点为参数name
输出点:
步骤二:构造JS代码触发XSS漏洞
将name参数设置为:<script>alert('xss')</script>
或<img src='a.com' onerror='alert(123)'>
通过查看页面源代码发现构造的JS代码被浏览器执行
XSS-LABS第二关
前面第一关讲了测试思路和操作,第二关可以直接上手操作
步骤一:通过测试发现输入点为keyword参数或者输入框
输出点和第一关相比发生了改变(第一关是在标签外,第二关输入在标签内)
步骤二:构造JS代码输入发现JS未被浏览器执行(未发生弹窗),重新构造JS代码为:
"><script>alert('xss')</script>或"><img src='a.com' onerror='alert(123)'>
发现JS被执行成功,产生弹窗。
说明:这里是因为在HTML代码中,标签中的内容会被当作值直接输出,不会被浏览器解析,这种情况下需要将之前的标签通过">
闭合,然后添加新的JS代码
总结:
XSS漏洞通常和脚本语言的显示函数有关系(如PHP的echo,其他语言的print等),我们可以根据判断输入点,输出点和查看浏览器的源代码来判断JS代码是否可以被正常加载。