0


pikachu靶场通关指南

靶场搭建

docker搭建

docker pull area39/pikachu

docker run -itd -p 80:80 -p 3306:3306 --name “p1” area39/pikachu

暴力破解

基于表单的暴力破解

直接bp抓包,账号是admin,密码为常见弱口令就好了。

验证码绕过(on server)

bp抓包,发现用intruder爆破的时候,验证码不改变也不影响爆破,忽略验证码直接爆破就好。

验证码绕过(on client)

bp抓包,把验证码删掉,直接爆破就好。

token防爆破?

首先了解一下什么是token。token是一种防爆破的方式,他通过在输入账号密码是生成一个token,当进行账号密码验证时就会和其一起进行验证,且如果token没有验证过的话是无法登陆的,而且每次刷新都会生成新的token。用这样的方式来进行防止和预防暴力破解。
请添加图片描述
token每次刷新都会不一样。

其实token是无法防止爆破的。因为token能够在前端找到,攻击者完全可以在每次攻击之前通过工具来进行获取token这样token的作用就发挥不出来了

那么如何爆破呢?
在这里插入图片描述
来到intruder的option模块,使用Grep - Extract来提取页面中的token值
在这里插入图片描述

设置为always
在这里插入图片描述
将线程设置为1
在这里插入图片描述
设置密码,第一个payload选择弱密码字典,第二课payload也就是token字段选择Recursive grep,如下
在这里插入图片描述
也可以填写Grep-Match,当在相应包中发现指定信息时,就会标识出来。
在这里插入图片描述
这下直接爆破就可以了
在这里插入图片描述
可以看到爆破成功了。

XSS

反射型xss(get)

首先随便输入个啥内容,比如666,观察666是否出现在页面中。
在这里插入图片描述
输入框下面出现了666,然后输入XSSpayload,比如

<script>alert(1)</script>

在这里插入图片描述
发现有输入长度限制,直接F12修改HTML源码,去掉长度限制。
接着输入payload之后就出现了弹框。
在这里插入图片描述
观察URL发现,payload在里面,就像下面这样:

http://192.168.21.130/vul/xss/xss_reflected_get.php?message=<script>alert(1)</script>&submit=submit

这样就可以通过恶意连接的方式去进行攻击。

反射性xss(post)

刚进去像下面这样,是一个登录框
在这里插入图片描述
输入admin/123456登陆进去,就会出现一个搜索框
在这里插入图片描述
我们像上一关那样先输入个666,看666是否出现在页面中。
在这里插入图片描述
然后直接插入payload,输入之后直接弹窗了,没有进行过滤
在这里插入图片描述

存储型xss

登进去是一个留言板,输入666会存储在页面中。
在这里插入图片描述
接着输入

<script>alert(1)</script>

,直接弹框,也是啥都没有过滤
在这里插入图片描述
而且每次访问都会弹框,这是存储型XSS。

DOM型xss

直接输入

<script>alert(1)</script>

,发现没有弹框,审查元素看是哪里出了问题
在这里插入图片描述
原来是payload写到了href属性里面,接着就去改payload,payload如下:

 '><img src="#" onmouseover="alert('xss')">

接着再去审查元素
在这里插入图片描述
当鼠标经过图片时,就会弹框
在这里插入图片描述

DOM型xss-x

先输入666试探一下,看在页面中是否有输出
在这里插入图片描述
没有找到,搜索结果是CSS代码,应该不是。
然后我们点击

有些费尽心机想要忘记的事情,后来真的就忘掉了

,再看看有没有
在这里插入图片描述
找到了,这和上一关很像,就是要点击一下那串字。
首先输入上一关的payload:

'><img src="#" onmouseover="alert('xss')">

,再点一下那串字,就写进去了。
在这里插入图片描述
鼠标经过时就会弹框
在这里插入图片描述

xss之盲打

在这里插入图片描述
刚进去的时候提示输入一些看法和姓名,这个内容不在前端显示,可能会发送到后台,后台管理员登陆后台之后,攻击代码就会执行。
输入常规的payload:

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



输入之后提示可能发送到后台管理页面,最后我们登陆后台管理地址。
后台地址是

/xssblind/admin_login.php

,输入密码admin/123456,登录即可触发XSS。
在这里插入图片描述

XSS之过滤

首先输入666,看在页面上是否显示,可以看到下面这样
在这里插入图片描述
接下来输入XSSpayload:

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

在这里插入图片描述
发现过滤得只剩

>

,可以尝试大小写绕过:

<SCRIPT>alert(/xss/)</sCRIpt>

当script为过滤关键词时,可以尝试其他的payload,如

<img src=x onmouseover="alert(/xss/)">
<img src=x onerror="alert(/xss/)">

在这里插入图片描述
发现成功弹窗。

xss之htmlspecialchars

在php中,htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体。
直接输入典型payload,页面显示如下
在这里插入图片描述
在输入框输入

' "<>666

,然后查看页面源代码,如下:
在这里插入图片描述
发现单引号没有被实体化,所以使用如下payload:

#' onclick='alert(/xss/)

点击就会弹框。
在这里插入图片描述

xss之href输出

输入666,查看页面源代码
在这里插入图片描述
发现写在了href中,输入测试代码#

' onclick='alert(/xss/)

,查看前端源码,发现单引号被实体化了,妈的,没有用了
在这里插入图片描述
可以使用javascript协议来执行js,可以尝试使用伪协议绕过。尝试payload:

javascript:alert(/xss/)

,点击即可触发弹窗。
在这里插入图片描述

xss之js输出

输入框中输入666,显示如下
在这里插入图片描述
查看网页源代码,看有没有666这三个字,发现写在了javascript标签内。
在这里插入图片描述
输入的代码被生成在js中并赋值给$ms。我们的输入被带入到js中,可以闭合,payload如下:

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

在这里插入图片描述

CSRF

CSRF(get)

使用vince/123456登陆,点击修改个人信息,界面如下
在这里插入图片描述
修改信息,然后进行抓包
在这里插入图片描述
生成csrfPOC,然后将POC保存为html,用处于登陆状态的浏览器打开
在这里插入图片描述
发现配置信息修改成功。
其实get型CSRF可以修改URL,就可以生效。

CSRF(post)

这个方式和上一关一样,就不再写了。

CSRF Token

抓修改信息的包,发现有token字段
在这里插入图片描述
这个就没招了,除非你把受害者的token偷过来。

SQL注入

数字型注入

打开界面如下
在这里插入图片描述
直接抓包
在这里插入图片描述
放到repeater里面,对id参数进行测试,发现有注入
在这里插入图片描述
直接进行普通的联合查询注入就可以,没啥好写的了。

字符型注入

输入

1'

,看页面有啥反应没
在这里插入图片描述
存在注入,直接常规注入就好
在这里插入图片描述

搜索型注入

搜索型注入是出现在搜索框处的注入。
搜索型源码一般是

select … from … like '%xxx%'

,xxx是我们输入的值
尝试输入% (通配符表示所有)

标签: 安全

本文转载自: https://blog.csdn.net/weixin_43110519/article/details/127189526
版权归原作者 只会打靶场的小菜鸟 所有, 如有侵权,请联系我们删除。

“pikachu靶场通关指南”的评论:

还没有评论