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中文乱码问题解决,但别的部分出现乱码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)