pikachu靶场
[!IMPORTANT]
最新靶场过程请移步Pikachu靶场详细版(带源码分析)
暴力破解
基于表单的暴力破解
没有验证,直接爆破就行
验证码绕过(on server)
出现验证码,考虑验证码因素,抓个包看看,
考虑一下后台验证码设计会不会过期,发现即便使用不同的验证码还是会出现“验证码输入错误”提升,说明即便错误的验证码也进行了验证,证明后天验证码短时间不会过期
再次抓包将未使用的验证码修改进去,然后使用两个payload
暴力破解之验证码绕过(on client)
同样抓包,并且将验证码改一下发送过去,查看response,结果都返回同样的回馈“username or password is not exists~”
将其放入Intruder,选中输入账号和密码的位置,进行字典爆破,得出来三个login success结果
token防爆破?
这次在页面中没有发现有验证码验证要求,同样抓包,发现虽然还是有“username”和“password”,但是多了个“token”,用于放爆破

爆破之前,修改设置,Number of retries on network failure为1,在Grep-Extract里增加token的value标签,在Redirections中设置执行攻击重连接为Always,最后将Resource pool中的Concurrent requests 设置为1,进行爆破
xss(Cross-Site Scripting)
发生在前端。用来钓鱼攻击、前端js挖矿、用户cookie获取。甚至远程控制。
危害:存储型 > 反射型 > DOM型
反射型:交互的数据一般不会存在数据库里面,所见即所得。
存储型:交互的数据会被存在数据库里面,永久性存储。
DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。
跨站脚本漏洞测试流程
- 在目标站点上找到输入点,比如查询接口,留言板等;
- 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
- 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
- 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在xss漏洞
反射型xss(GET)【一般查询页面】
反射型XSS漏洞允许攻击者通过注入恶意脚本,将其反射到用户的浏览器上执行。
随便输入一大堆字符串发现有限制,查看输入框的源码,发现果然maxlength="20",将其扩大到200,并且输入,界面出现弹框并且输出hello
输入
出现
在后台源码中可以看到,页面是原封不动的把用户输入的信息给输出,没有做一个防xss的处理。
反射性xss(POST)【一般查询页面】
抓包之后直接爆破
发现出来的结果中。正确的用户名密码会显示302,错误的会显示200,这是一个常见的设计,其中登录成功后通常会进行页面跳转,而登录失败时仍然停留在登录页面。重定向通常伴随着一个新的目标 URL,该 URL 可能包含用户登录成功后应该进入的页面。
成功登录
输入,界面出现弹框并且输出hello
存储型xss【一般留言板、注册页面】
直接输进去
在后台源码中可以看到,虽然页面对输入框做了防sql注入的处理,但是在for循环输出message的时候,是原封不动的将输入的内容输出了。
DOM型xss
前端输入被DOM获取到了,整个过程都在前端,没有与后端交互。
输入 #' onclick="alert(111)"> ,点击下面的链接,页面弹出111

在后台源码中,可以看到,在这个输入和输出的过程中是没有做防xss处理的。
DOM型xss-x
其实就是复合型的DOM型xss
后台源码:
xss之盲注
就真·盲注!
通过抓包发现这个是POST请求,两个框内都注入JS脚本试试
发现JS脚本并没有注入到这个前端页面,那么咱们提交过去的信息应该是放在管理员所能看到的页面。那么这时候可以更改JS脚本,将其改为获取cookie的脚本,就可以获取管理员cookie,并且登录管理员页面。
xss之过滤
先随便输出一些,发现输入的东西被输出了,同时查看源代码,这个表单是一个“get”请求
于是,输入框里加上JS脚本
发现只输出了“苦逼>”,说明其他的字符都被过滤了,那么就尝试其他标签
<img src="#" οnerrοr=alert(document.cookie)>
都会出现弹框,弹出想要的内容
xss-过滤-转换
0,前端限制绕过,直接抓包重放,或者修改html前端代码
- 大小写,比如:
- 拼凑:<script>
- 使用注释进行干扰:<script>alert(111)</script>
xss-过滤-编码
核心思路:
后台过滤了特殊字符,比如
发现没有什么输出变化,直接查看这个地方的源码也看不出什么,使用bp工具抓包,放入Repeater中Send查看Response,在Response中搜索alert(111),发现我们输入的JS语句被放进了';
并且没有被编码
我们改为输入
';alert(111);//
再次查看Response可以看到,原本的";}
后台源码:
一般这种漏洞都是通过代码审计来发现的
XXE(xml external entity-injection)
xml(可扩展标记语言)
如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可能导致XXE漏洞。
URL重定向
后台源码:

浙公网安备 33010602011771号