web实验二-XSS与CSRF

【XSS】

一、反射型XSS(get)

先输入“ '"<>6666 ” 用于测试。

查看页面源码

输入被原封不动地输出到了 p 标签中

测试我们输入的JS代码,看是否会原封不动地输出,payload如下

<script>alert("xss")</script>
前端对输入长度做了限制,我们需要修改一下才能输入完整的payload

成功执行

查看源码可以发现,输入的payload嵌入了到了 p 标签里面

正确的JS代码,所以被浏览器正确执行了

二、盗取cookie

三、反射型xss(post)

四、存储型xss

存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害

试着在皮卡丘平台上的XSS上留言,看看是否有什么过滤机制

发现我们的留言会一直存在,而且从表现上我们输入的内容直接输出了.下面通过源码观察

输入的东西,也直接输出在 p 标签中,看起来没有经过任何转义和处理

    下面输入下面的Payload进行测试

 

成功弹窗

五、钓鱼攻击

六、键盘记录

七、DOM型XSS

在皮卡丘平台上的DOM型XSS上测试,观察到如下输出,发现和输入的内容有区别

观察页面源码

这里有段JS代码,它通过 getElementById 获取到了标签 Id 为 text的内容赋值给str

    然后又把 str 的内容通过字符串拼接的方式写到了 a 标签的 href 属性中,a标签会写到 Id 为 dom的 div 标签中

    我们通过闭合的方式构造Payload

构造的Payload如下

造成DOM型XSS的原因是前端的输入被DOM给获取到了,通过DOM又在前端输出,跟反射型和存储型比起来,它是不经过后台交互的.

八、DOM型XSS-X

随便输入一些内容,会多出下面一句话

观察源码

这里也有个JS代码,它定义了一个domxss函数

    它利用 window.location.search 获取浏览器中URL的内容,然后赋值给 str

    然后经过URL解码和字符串分隔,取出URL中的参数内容

    再把 “+” 替换为 “ ”(空格),赋值给 xss

    最后把 xss 拼接到 a 标签中,然后写到 Id 为 dom 的 div 标签中

    跟前面的DOM不同的是,它的输入是从浏览器的URL中获取的,很像反射型XSS(get)

    构造的Payload跟刚才是一样的

九、XSS之盲打

在皮卡丘平台上,我们随便输入一些东西

提交后我们输入的内容不会在前对输出,而是提交到了后台,可能管理员会去看

    如果我们输入一个JS代码,管理员登录后台管理界面,如果后台把我们的内容输出

    那后台管理员可能遭受到我们的XSS攻击,我们提交以下内容

  并登录后台管理界面(账号密码为admin,123456)

 一登录进来就遭受了XSS攻击

十、XSS之过滤

在皮卡丘平台上,输入下面的内容看一下后台会怎么处理

输入的<script>标签被去掉了

尝试用大小写混合的方式看看能否绕过

成功弹窗

也可以用别的攻击Payload,后台可能没有做处理

十一、XSS之htmlspecialchars

在皮卡丘平台上输入下面的内容,看一下后端是怎么处理的

输入的内容经过了HTML编码

可以看到 “ " ”,“ > ”和“ < ”都经过了编码,剩下的字符没有,单引号依然可以使用

    我们可以构造下面的Payload,我们在Payload前后都添加一个单引号用于闭合 href 中的单引号

十二、XSS常见防范措施

总的原则:输入做过滤,输出做转义

  • 过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字
  • 转义:所有输出到前端的数据根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面进行JS转义

十三、XSS之href输出

 构造Payload如下,没有上面被转义的字符

提交后查看源码

此时点击我们的标签就会出现弹窗

十四、XSS之js输出

随便输入一些东西,然后查看一下页面源码

  它会把我们的输入放到JS中,然后对这个变量进行判断,然后再输出

    我们可以构造一个闭合,先用一个单引号和</script>闭合掉页面中的<script>,然后再插入自己的JS代码

这时候我们的JS也被执行了

这个漏洞的输出点是在JS中,通过用户的输入动态生成了JS代码

十五、XSS常见Payload

参考https://www.cnblogs.com/xuehen/p/4814237.html

【CSRF】

猜你喜欢

转载自www.cnblogs.com/P201721230041/p/12047439.html