pikachu--XSS(跨站脚本)(反射型,存储型,DOM型)

1.反射性xss

输入一些特殊字符跟数字组合

查看页面源码

可以看到它把我们输入的内容原封不动的输出

我们尝试在输入时候构造js的条件,输入<script>alert(‘xss’)</script>,

这时我们可以看到输入行对字数有限制,我们可以使用开发者工具进行修改,再次输入。

 

成功执行,所以存在着xss漏洞,同时我们也可以看到这是一个get型的请求

http://192.168.27.156/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E&submit=submit

这里说一下,get与post的区别:get以url方式提交数据;post以表单方式在请求体里面提交

Get方式的xss漏洞更加容易被利用,一般利用方式是将带有跨站脚本的URL伪装后发送给目标   

Post方式因为是以表单方式提交,无法直接使用url方式进行攻击

2.存储型xss

我们留言 gxy 刷新一下 发现留言还在上面,也就是存储到后台

输入特殊字符+唯一标识符,提交,查看源码    发现没有做任何处理

构造js

弹窗   并且刷新之后 还是显示这个框

查看XSS_stored.php源码  知道就是把留言存储下来

3.DOM型xss(前端输入被dom获取到,通过dom又在前端输出了)

都是在前端操作的不涉及后端

案例一:

具体可以查看:https://www.w3school.com.cn/htmldom/index.asp

可以看一下getElementById()这个方法

 回到实验平台

输入222

 查看页面源码  看一下what do you see?是什么

搜索what        

 通过getElementById方法获取text,text就是我们要输入的内容,将text赋值给str,写到了href里面

#’ onclick=”alert(222)”>

<a href=’#’ onclick=”alert(222)”>’>what do you see?</a>

 点击下面的what do you see?  弹框

 说明这存在dom型的xss漏洞

案例二:输入是从浏览器的url获取的

查看源码

 与案例一不同的是,输入是从浏览器的url获取的

构造闭合

#’ onclick=”alert(222)”>

 

只要用户打开这个网页

http://192.168.27.156/pikachu/vul/xss/xss_dom_x.php?text=%23%27+onclick%3D%22alert%2822%29%22%3E#

就可以把这个的内容插入到用户页面里面

原文地址:https://www.cnblogs.com/7-58/p/12317182.html