pikachu靶场-反射型xss

241 阅读2分钟

概述

反射型XXS是一种非持久性的攻击,它指的是恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中Web里面的html代码被执行。

攻击特点

  • 一次性攻击:该类型漏洞不能将恶意的攻击脚本存储到后端服务器中,只能对单个用户攻击一次。
  • 通过伪装的url传递:恶意用户利用其它用户安全意识疏忽、网络安全意识薄弱的特点,通过社会工程学的方式诱使其它用户触发恶意网站链接或其它伪装形式的图片等方式完成攻击。
  • 危害性相对小:由于反射型xss攻击需满足通过url传递和用户主动触发两个条件,因此其只能对单个用户进行攻击,很难形成有规模的攻击。

攻击流程

  1. 黑客挖掘到正常网站的反射型xss漏洞,构造好反射型xss漏洞的利用url。利用自己的公网服务器制作好钓鱼网站或Cookie获取恶意网站。将制作好的url或伪装链接发送给普通用户。
  2. 普通用户被诱导点击恶意的url,用户将HTTP请求发送给正常服务器。
  3. 正常服务器接收到http请求后,将xss与正常http响应返回到用户浏览器。
  4. 用户浏览器解析网页中恶意的xss代码,向恶意服务器发送个人信息。

pikachu靶场实验

首先打开pikachu靶场的反射型xss(get),F12打开控制台,找到network(网络),在输入框中随意输入字符串点击submit提交

image.png
可以看到,这是一个get请求,参数是在url上面拼接的。确定这点之后我们就可以使用简单的脚本代码进行测试了

<script>alert('尝试js')</script>

image.png
但是,这里的输入框限制的输入最大长度,我们就需要在F12调试器中把input输入框的maxlength改一下,再次输入js测试代码,submit提交。

image.png
可以看到,我们弹框的js代码被执行了。接着F12打开调试器,把箭头拖到回显内容上面也可以看到js代码被嵌入p标签内了。

image.png

反射型xss(post)使用用户名admin和密码123456登录进去,也是可以利用上面的js代码进行测试的。他们的区别就在于传递参数的方式不同。get请求的参数在url上拼接,post请求的参数放在请求体。