- 本篇也是讲xss的攻击思路。当存在多个输入点时。开发者可能会有疏忽,并没有做好每个输入点的过滤防御,我们应该尽可能对每个输入点进行测试,抓住破绽。 靶场由知识盒子提供,靶场地址:https://tofu.exeye.run/output
- 打开页面是这样的
按照套路我们直接看下他的javascript代码,发现存在两个输出点
$(function(){ $('.user-box-top').html($('.ipt-name').val()) //将名字输入框中的内容加入到类user-box-top的标签中 $('.age-box-top').html($('.ipt-age').val()) //将年龄输入框中的内容加入到类age-box-top的标签中 })
输出点里标签里的内容可随意输入内容
- 尝试从名字和年龄这两个输出点入手
- 首先是名字,直接输入框上
<script>alert(1)</script>
,但是情况好像不太妙,因为我们输入的<>好像会被过滤
- 所以只能考虑年龄框了,但是如果这都能成功的话,那未免也太傻逼了,年龄框被要求只能输入数字
所以这里有两种方法
方法一:用burp抓包绕过
- 输入正常的数据,然后用burp开启抓包
- 将年龄改为
<script>alert(1)</script>
- 最后将数据包放掉,成功实现弹窗
方法二:直接修改前端代码
- 观察源代码,我们发现,他只是在前端对输入做了限制,只允许输入数字
- 如果将这个限制直接删除,就不会提示限制了
- 提交数据直接弹窗