
Pikachu 漏洞平台通关记录
Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。
Github:https://github.com/zhuifengshaonianhanlu/pikachu
暴力破解
基于表单
burp
抓包使用 Clusterbomb
类型爆破
验证码绕过(on server)
抓包请求后发现 只要页面不刷新 验证码就不会改变 爆破方法同上
验证码绕过(on client)
验证码是 js
前端校验 直接抓包 无视 js
token绕过
攻击类型选择:音叉
打开Intruder->Options设置如下参数
请求线程数选择:1
重定向选择:总是
在 Payloads
里面选择 递归搜索
Cross-Site Scripting
反射性xss(get)
发现有 20
个字符限制,直接改为 100
即可
题目是get
看了下url
发现提交的参数在url
后面直接在url
后面补全也行。
反射性xss(post)
这题对着框搞了半天 看了下提示才知道需要先登录,账号密码还是admin
/123456
登录后直接输入payload:<script>alert(1)</script>
存储型xss
1 |
|
存储型主要是 你提交的代码会存到数据库中,有用户访问这个页面就会从数据库提取出xss数据
所以会弹框
可以搭配一些xss在线平台
找一些有存储型xss漏洞的网站钓管理员cookies
DOM型xss
提交payload
后出现一个what do you see?
点击后403
f12
可以看到我们提交的数据变成了超链接
看下js
代码
1 |
|
直接闭合使用onclick
弹出
1 |
|
DOM型xss-x
1 |
|
这题加了个正则替换把空格
替换成了+
号,payload
同上
1 |
|
xss盲打
盲打就是在一切能插入的地方插入xss
代码
看了下提示 需要登录后台,xss
插入成功
1 |
|
xss过滤
输入 <script>alert(1)</script>
输入 alert(1)
输入123
返回了别说这些'123'的话,不要怕,就是干!
应该是过滤了<script>*</scipt
大小写混写直接绕过
试了下其他方法也绕过了 更加确信过滤了<script>*</scipt
1 |
|
xss之htmlspecialchars
htmlspecialchars
:将特殊字符
转换为 HTML 实体
字符 | 替换后 |
---|---|
&(& 符号) | & |
“(双引号) | ",除非设置了ENT_NOQUOTES** |
‘(单引号) | 设置了ENT_QUOTES后,(如果是ENT_HTML401) ,或者'(如果是ENT_XML1、ENT_XHTML或ENT_HTML5**)。 |
<(小于) | < |
>(大于) | > |
htmlspecialchars
默认不对单引号
继续进行转换
1 |
|
xss之href输出
1 |
|
xss之js输出
找到了这段js
直接闭合
1 |
|
CSRF
CSRF(get)
点击提示给了一些账号密码,随便登录一个(我登录的vince
)点击修改信息,看看请求信息。
我们发现是get
请求 提交了些参数 构造一下发给其他人
1 |
|
方便区分 我用无痕模式
登录allen
用户
然后访问我们构造的链接,可以看到信息变了
现实中可以 用图片或者超链接来诱骗点击。
CSRF(post)
和上一关一样 只不过get
变成了post
1 |
|
我们构造一下
1 |
|
写个html
自动提交的表单 实际中还可以提交完自动跳转,降低受害者警觉
1 |
|
CSRF Token
修改信息新加了动态Token
有个骚操作 但是存在跨域问题
所以做不出
Sql Inject
数字型注入(post)
直接burp
抓包用重发器
1 |
|
字符型注入
1 |
|
搜索型注入
1 |
|
xx型注入
1 |
|
RCE
exec “ping”
命令拼接符
windows | |
---|---|
| | 管道符,前面命令标准输出,后面命令的标准输入 |
& | A & B 先运行命令A然后运行命令B |
|| | A || B 运行命令A,如果失败则运行命令B |
&& | A && B 运行命令A,如果成功则运行命令B |
linux | |
---|---|
| | 管道符,前面命令标准输出,后面命令的标准输入 |
& | A & B 先运行命令A然后运行命令B |
|| | A || B 运行命令A,如果失败则运行命令B |
&& | A && B 运行命令A,如果成功则运行命令B |
; | A;B 执行完A执行B |
%0a | 换行符 |
%0d | 回车符 |
可以直接用cmd
新建用户之类的
exec “evel”
PHP命令执行函数
1 |
|
File Inclusion
File Inclusion(local)
1 |
|
isset
检测变量是否存在,然后同时filename
不为空,GET
后直接包含进了include
。
直接修改filename
参数即可
File Inclusion(remote)
PHP的配置选项allow_url_include
为ON
的话,则include
/require
函数可以加载远程文件
这个远程文件包含和上面的本地文件包含代码一样,同样没做安全限制
在txt
写段代码,然后使用远程包含漏洞
可以自动创建一句话php
文件
1 |
|
请求之后发现页面没报错 同时目录下新建了个shell.php
,同时一句话也写入了
Unsafe Filedownload
Unsafe Filedownload
可以构造一下下载的文件通过../../
控制目录
例如:http://pikachu.la/vul/unsafedownload/execdownload.php?filename=../../../README.md
如果是linux
的话还可以下载../../../../../etc/passwd
和../../../../../etc/shadow
Unsafe Fileupload
之前做过upload-labs
:https://5ime.cn/upload-labs.html
client check
上传了一个php
文件 弹窗警告 感觉应该是js前端校验
禁用js
会后上传成功
MIME type
上传php
出现提示文字
直接burp
抓包修改content-Type
绕过
getimagesize
这关直接参考我之前的文章
生成图片马:https://5ime.cn/upload-labs.html#%E7%AC%AC14%E5%85%B3
getimagesize
绕过参考我以前的文章:https://5ime.cn/upload-labs.html#%E7%AC%AC15%E5%85%B3
Over Permission
水平越权
A用户和B用户属于同一级别用户,但各自不能操作对方个人信息。A用户如果越权操作B用户个人信息的情况称为水平越权操作。
修改username
的参数值 即可查看其他用户的信息
垂直越权
A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。
我们浏览器登录admin
用户 复制添加用户的url
地址 使用无痕窗口登录普通用户pikachu
,访问刚才复制的添加用户的url
地址。此时普通用户也可以正常访问(未授权访问) 点击创建后跳转到了登录页面
此时我们用admin
查看用户列表 发现刚才我们使用pikachu
新建的用户增加成功了。
../../
目录遍历
如果是linux
还可以遍历../../../../etc/shadow
和../../../../etc/passwd
敏感信息泄露
IcanseeyourABC
直接在注释
找到了账号密码
PHP反序列化 待写
XXE 待写
URL重定向
不安全的URL跳转
f12
看到第三个
有个参数
我们直接构造http://pikachu.la/vul/urlredirect/urlredirect.php?url=https://www.baidu.com
发现网页跳转到了百度
这种漏洞用来钓鱼挺不错)
SSRF
SSRF(curl)
我们直接构造http://pikachu.la/vul/ssrf/ssrf_curl.php?url=https://www.baidu.com
或者用file协议
或者端口
SSRF(file_get_content)
同上