freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

pikachu解题步骤
君莫言 2022-11-19 19:17:22 191386
所属地 山西省

Burte Force

基于表单的暴力破解

1、打开题目,是个登陆框,可以尝试暴力破解

在这里插入图片描述

2、抓包爆破

在这里插入图片描述

在这里插入图片描述

验证码绕过(on server)

解题步骤

1、打开题目,发现这次添加了验证码,还是抓包

在这里插入图片描述

2、暴力破解发现验证码无条件不刷新无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。直接破解成功

image.png

验证码绕过(on client)

解题步骤

1、打开题目,发现有验证码
在这里插入图片描述

2、

image.png

尝试点击登陆,发现弹窗是
image.png

而不是请输入用户名和密码,说明这是前端检验,没有数据包的通过。

3、抓包爆破
image.png

我们可以利用Response Modification中的Remove all Javascript功能,将所有JS移除

image.png

然后爆破

image.png

token防爆破?

解题步骤

1、打开题目,照常抓包

image.png

发现多了token认证,那么我们可以换一种爆破方式

2、选择爆破方式

这里有两个爆破点,一个是password,一个是token
image.png

然后在option中选择

image.png

这里一定要填总是

在这个地方

image.png

添加token值

image.png

在有效载荷内选择play类型为递归匹配

然后把token值放在这里

image.png

然后再设置第一个爆破点,用普通列表以及密码本爆破即可

image.png

爆破成功

XSS

反射型xss(get)

解题步骤

本题没有任何防护措施,可以直接做出来,playload如下

<script>alert('xss')</script>

发现被截断了
image.png

可以打开开发者工具,直接修改最大值。

image.png

本题得解

反射性xss(post)

解题步骤

1、打开题目,发现是个登录框,登陆之后

image.png

2、可以直接利用xss做,playload如下

<script>alert(document.cookie)</script>

image.png

image.png

本题得解

存储型xss

解题步骤

1、打开题目,发现是个留言板,直接利用xss,playload如下

<script>alert(document.cookie)</script>

image.png

本题得解

2、然后在另外一个浏览器中来到本关页面,也出现了同样的弹框。说明存储型XSS能危害所有访问受影响页面的用户。

image.png

DOM型xss

解题步骤

1、打开题目,尝试输入

image.png

2、发现不可以,查看源码
image.png

image.png
本题得解,这里要注意的是onclick函数只有点击才会生效,所以只有点击what do you see才会有弹窗。

DOM型xss-x

解题步骤

1、打开题目,秉持有框就打的原则,尝试输入playload

'><src='a' onmouseover="javascript:alert('Asson');">

image.png

2、根据源码

image.png

只有点击这个[有些费尽心机想要忘记的事情,后来真的就忘掉了才会执行domxss,我们点击一下

image.png

本题得解

xss盲打

解题步骤

1、打开xss之盲打,随意输入看看是什么效果。```发现并不任何反应
image.png

2、所以我们输入的内容并不会在前端输出,看起来应该是存到了后台,也就是说可能只有管理员可以看。
我们输入<script>alert('xss')</script>,设置一个弹窗,看看管理员在后台登陆上,是否会被x到。如果被x到这种场景就叫做盲打。

image.png
image.png
果然如此

xss之过滤

解题步骤

1、打开题目,秉持有框就打的原则,输入playload

2、看到过滤,就先试了下<>和script都没被过滤,但两者合在一起<script>就被过滤了。我们可以利用大小写绕过<Script>alert('xss')</SCript>)

在这里插入图片描述

xss之htmlspecialchars

在做这道题之前我们必须知道什么是htmlspecialchars

htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数
预定义的字符是
& 成为 &amp
" 成为 &quot
' 成为 &#039
< 成为 &lt
> 成为 &gt
可用引号类型
ENT_COMPAT:默认,仅编码双引号
ENT_QUOTES:编码双引号和单引号
ENT_NOQUOTES:不编码任何引号

但是,有一个非常重要的点就是htmlspecialchars默认不过滤',这样就好办了,playload如下

' onclick = ' alert(1)

xss之href输出

解题步骤

1、打开题目,尝试输入,发现输进去的东西在href标签中

在这里插入图片描述

2、这里要用到js协议的知识

javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行

3、playload如下

javascript:alert(1)

在这里插入图片描述

xss之js输出

解题步骤

1、打开题目,照例输入,没有反应

2、查看源码才发现,我们的输入被放到了<script>标签内

在这里插入图片描述

3、我们尝试闭合,playload如下

</script><script>alert(1)</script><script>

成功

在这里插入图片描述

XXE

在开始之前我必须介绍一下什么是XXE。

一、基础知识

1、什么是XXE

XXE -“xml external entity injection"既"xml外部实体注入漏洞”。
概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入

2、什么是xml

XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言,但它不是HTML的替代品,HTML聚焦于数据的外观,而XML聚焦于数据的传输
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
简而言之它就是个存储数据的
XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。

更多知识大家可以看这篇文章[XXE漏洞利用技巧:从XML到远程代码执行](XXE漏洞利用技巧:从XML到远程代码执行 - FreeBuf网络安全行业门户)。

二、解题步骤

1、随便输入个包含命名实体(内部实体)的xml数据

<?xml version = "1.0"?>
<!DOCTYPE note [
    <!ENTITY hacker "XXE">
]>
<name>&hacker;</name>

在这里插入图片描述

成功回显

2、接下来使用外部实体构造playload

<?xml version="1.0"  encoding="UTF-8"?> 
<!DOCTYPE name [
	<!ENTITY xxe SYSTEM "file:///E:/phpStudy/PHPTutorial/WWW/i/pikachu/password.txt">
]> 
<name>&xxe;</name>

在这里插入图片描述

当然XXE不止有这些用途,详细可见[pikachu XXE (XML外部实体注入)]((74条消息) pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)_仙女象的博客-CSDN博客_pikaqiu漏洞平台)

CSRF

CSRF(get)

解题步骤

1、抓包
在这里插入图片描述

2、生成CSRF POC
在这里插入图片描述

3、访问即可

CSRF(post)

解题步骤

本题修改了传参方式,将GET修改为POST

image.png

做法与上一题相同,在此就不多做赘述。

CSRF(token)

本题添加了token,无法修改

CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于 cookie 中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。

PHP反序列化

一、基础知识

1、什么是序列化与反序列化:序列化是将对象转化成字符串,其目的是方便传输;
image.png

反序列化就是把被序列化的字符串还原为对象,然后在接下来的代码中继续使用。

2、具体代码

序列化

<?php
class S{
    public $test ="pikachu";
}
$s=new S();
echo serialize($s);
?>

image.png

二、解题步骤

playload:O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";},会出现弹窗。
image.png

RCE

exec "ping"

解题步骤

1、打开题目,发现要ping地址
image.png

随便ping一个

image.png

可以ping通

2、尝试playload

127.0.0.1 | ipconfig

可以直接解出
image.png

到这里还没有结束,我们可以研究一下漏洞的起因,查看源码

$result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理
    }else {
        $result.=shell_exec('ping -c 4 '.$ip);
    }

shell_exec()函数通过 shell 执行命令并将完整的输出以字符串的方式返回,在没有做处理的情况下直接拼接

# 漏洞 # 网络安全 # web安全 # 漏洞分析
本文为 君莫言 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
君莫言 LV.2
web安全
  • 3 文章数
  • 7 关注者
sql注入总结复习
2022-11-26
DVWA解题步骤
2022-09-28
文章目录