pikachu靶场

[!IMPORTANT]

最新靶场过程请移步Pikachu靶场详细版(带源码分析)

暴力破解

基于表单的暴力破解

image.png

没有验证,直接爆破就行

验证码绕过(on server)

image.png

出现验证码,考虑验证码因素,抓个包看看,

image.png

考虑一下后台验证码设计会不会过期,发现即便使用不同的验证码还是会出现“验证码输入错误”提升,说明即便错误的验证码也进行了验证,证明后天验证码短时间不会过期

image.png

再次抓包将未使用的验证码修改进去,然后使用两个payload

image.png

暴力破解之验证码绕过(on client)

image.png

同样抓包,并且将验证码改一下发送过去,查看response,结果都返回同样的回馈“username or password is not exists~”

image.png

将其放入Intruder,选中输入账号和密码的位置,进行字典爆破,得出来三个login success结果

image.png

token防爆破?

image.png

这次在页面中没有发现有验证码验证要求,同样抓包,发现虽然还是有“username”和“password”,但是多了个“token”,用于放爆破

image.png

爆破之前,修改设置,Number of retries on network failure为1,在Grep-Extract里增加token的value标签,在Redirections中设置执行攻击重连接为Always,最后将Resource pool中的Concurrent requests 设置为1,进行爆破

image.png

xss(Cross-Site Scripting)

发生在前端。用来钓鱼攻击、前端js挖矿、用户cookie获取。甚至远程控制。

截图.png

危害:存储型 > 反射型 > DOM型

反射型:交互的数据一般不会存在数据库里面,所见即所得。

存储型:交互的数据会被存在数据库里面,永久性存储。

DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。

跨站脚本漏洞测试流程

  1. 在目标站点上找到输入点,比如查询接口,留言板等;
  2. 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
  3. 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
  4. 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在xss漏洞

反射型xss(GET)【一般查询页面】

反射型XSS漏洞允许攻击者通过注入恶意脚本,将其反射到用户的浏览器上执行。

image.png

随便输入一大堆字符串发现有限制,查看输入框的源码,发现果然maxlength="20",将其扩大到200,并且输入,界面出现弹框并且输出hello

image.png

输入

出现

截图.png

在后台源码中可以看到,页面是原封不动的把用户输入的信息给输出,没有做一个防xss的处理。

反射性xss(POST)【一般查询页面】

抓包之后直接爆破

image.png

发现出来的结果中。正确的用户名密码会显示302,错误的会显示200,这是一个常见的设计,其中登录成功后通常会进行页面跳转,而登录失败时仍然停留在登录页面。重定向通常伴随着一个新的目标 URL,该 URL 可能包含用户登录成功后应该进入的页面。

image.png

成功登录

image.png

输入,界面出现弹框并且输出hello

image.png

存储型xss【一般留言板、注册页面】

直接输进去

image.png

在后台源码中可以看到,虽然页面对输入框做了防sql注入的处理,但是在for循环输出message的时候,是原封不动的将输入的内容输出了。

DOM型xss

前端输入被DOM获取到了,整个过程都在前端,没有与后端交互。

输入 #' onclick="alert(111)"> ,点击下面的链接,页面弹出111

截图.png

截图.png

在后台源码中,可以看到,在这个输入和输出的过程中是没有做防xss处理的。

DOM型xss-x

其实就是复合型的DOM型xss

后台源码:

截图.png

xss之盲注

就真·盲注!

通过抓包发现这个是POST请求,两个框内都注入JS脚本试试

image.png

发现JS脚本并没有注入到这个前端页面,那么咱们提交过去的信息应该是放在管理员所能看到的页面。那么这时候可以更改JS脚本,将其改为获取cookie的脚本,就可以获取管理员cookie,并且登录管理员页面。

xss之过滤

先随便输出一些,发现输入的东西被输出了,同时查看源代码,这个表单是一个“get”请求

image.png

于是,输入框里加上JS脚本

image.png

发现只输出了“苦逼>”,说明其他的字符都被过滤了,那么就尝试其他标签

或者

<img src="#" οnerrοr=alert(document.cookie)>

都会出现弹框,弹出想要的内容

xss-过滤-转换

0,前端限制绕过,直接抓包重放,或者修改html前端代码

  1. 大小写,比如:
  2. 拼凑:<script>
  3. 使用注释进行干扰:<script>alert(111)</script>
xss-过滤-编码

核心思路:

后台过滤了特殊字符,比如

发现没有什么输出变化,直接查看这个地方的源码也看不出什么,使用bp工具抓包,放入Repeater中Send查看Response,在Response中搜索alert(111),发现我们输入的JS语句被放进了';

并且没有被编码

image.png

我们改为输入

';alert(111);//

image.png

再次查看Response可以看到,原本的";}

后台源码:

一般这种漏洞都是通过代码审计来发现的

截图.png

XXE(xml external entity-injection)

xml(可扩展标记语言)

截图.png

截图.png

如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可能导致XXE漏洞。

URL重定向

后台源码:

截图.png

posted @ 2024-11-12 09:32  酷比灯  阅读(78)  评论(0)    收藏  举报