xss常见防范措施
总的原则:
输入做过滤,输出做转义。
过滤:
根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字。
转义:
所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行js转义。
练习部分
xss之href输出
打开pikachu漏洞练习第二章节的xss之herf输出部分。根据之前章节的结果,我们避免直接输入JavaScript符号,先输入
javascript:alert(111)
尝试绕过漏洞。
点击submit确认后查看网页源代码。可见我们输入的代码进入了a标签的href属性内。
我们返回网页点一下属于a标签的蓝色字符,果然弹出了我们设置的提示界面。该漏洞利用成功。
xss之js输出
打开pikachu漏洞练习第二章节的xss之js输出部分。依旧是随意输入观察网站弹出消息,没有超链接且未弹出输入的信息。
右键查看一下网页的源代码。观察可知我们输入的文字变成了$ms变量,script代码中的判断语句在$ms等于tmac时输出不同的语句。
既然$ms='我们的输入',根据此点我们输入单引号‘形成新的闭合就可以插入新的JavaScript代码。
xxx'</script><script>alert('xss')</script>
第一个</script>闭合掉网页代码中的前一个<script>,剩下的代码就是我们生效的JavaScript脚本。
在网页输入代码验证我们的猜想,成功显示提示框。成功利用此漏洞。