Pikachu靶场WriteUp
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。如欲转载或传播此文章,必须保证此文章的完整性,未经众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
靶场配置
靶场地址:https://github.com/zhuifengshaonianhanlu/pikachu;
本文章靶场环境 Ubuntu 22.04 LTS + Apache 2.4.39 + MySQL 5.7.27 + PHP 5.5.38;
操作系统推荐使用Linux,Windows平台部分页面会出现中文乱码;
PHP推荐使用PHP 5.X版本,高版本PHP会出现错误。
一.暴力破解
事先准备好字典文件,字典文件不用太过复杂

1.1 基于表单的暴力破解
随便输入username和password进行尝试,使用burp抓包发现是POST方式提交数据,并且没有验证码等防御措施


最简单的暴力破解,使用事先准备好的字典文件进行破解
设置变量位置

设置payload 1,payload 2


查看爆破结果,得到其中一对username为admin,password为123456

1.2 验证码绕过(on server)
服务器端验证码常见问题:
- 验证码不存在有限时间,同一验证码一直有效
随便输入username、password和错误的验证码,发现提示验证码错误

输入正确的验证码并进行抓包分析,尝试更改用户名或者密码进行重放,发现验证码长期有效,可以在username和password处设置变量进行爆破





爆破成功

1.3 验证码绕过(on client)
验证码使用前端js验证,可以通过剔除js代码来进行爆破

使用burp移除js代码进行爆破

爆破成功

1.4 token防爆破?
输入用户名和密码抓包分析,发现表单中带有token参数,在暴力破解过程中自动抓取token填入表单即可。

审查网页,发现带有隐藏标签







二. Cross-Site Scripting
2.1 反射型xss(get)
输入<>等符号发现原样输出,直接注入,发现输入长度受限,审查元素修改长度后再次注入
2.2 反射型xss(post)
输入<>等符号发现原样输出,直接注入
2.3 存储型xss
存储型xss插入后,刷新页面仍出现xss弹窗。

2.4 DOM型xss
闭合<a>标签,payload: '><img src="#" onmouseover="alert('xss')">,鼠标移到图片位置便会出发弹窗。
2.5 DOM型xss-x
闭合<a>标签,payload:'><img src="#" onmouseover="alert('xss')">
2.6 xss之盲打
XSS盲打是一种攻击场景,我们输出的payload不会在前端进行输出,当管理员查看时就会遭到xss攻击,登录后台查看盲打,后台地址/xssblind/admin_login.php

2.7 xss之过滤
输入'"<script>发现被过滤,尝试大小写绕过过滤,payload:<SCRIPT>alert(/xss/)</sCRIpt>

2.8 xss之htmlspecialchars
可以使用单引号构造payload:\#' onclick='alert(/xss/)
2.9 xss之href输出
在a标签的href属性里面,可以使用javascript协议来执行js,可以尝试使用伪协议绕过。
payload:javascript:alert(/xss/)
2.10 xss之js输出
payload:</script><script>alert(/xss/)</script>
三. CSRF
3.1 CSRF(get)
get 型 csrf,构造虚假get请求诱导受害者点击即可,先登录vince账户,构造get请求,随后诱导受害者在登录账户的情况下点击链接。




allen个人信息已被更改
3.2 CSRF(post)
post'型csrf需要构造表单诱导用户提交,使用burp构造站点诱导用户提交表单

使用burp(专业版可以使用次功能)



3.3 CSRF Token
抓包分析,url中带有token,无法伪造,token可以防范csrf

四. SQL-Inject
五. RCE
如果靶场搭建在Windows平台会出现中文乱码,解决方法如下
方法一:使用Linux平台搭建。
方法二:将cmd编码方式从gbk改为utf-8,cmd默认编码方式为gbk,服务器为UTF-8,所以出现乱码。
方法三:将rce_ping.php文件中的//header("Content-type:text/html; charset=gbk");改为header("Content-type:text/html; charset=gbk");,rce中文乱码问题解决,但别的部分出现乱码。

浙公网安备 33010602011771号