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。用这样的方式来进行防止和预防暴力破解。
pikachu靶场通关指南_第1张图片
token每次刷新都会不一样。

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

那么如何爆破呢?
pikachu靶场通关指南_第2张图片
来到intruder的option模块,使用Grep - Extract来提取页面中的token值
pikachu靶场通关指南_第3张图片

设置为always
pikachu靶场通关指南_第4张图片
将线程设置为1
pikachu靶场通关指南_第5张图片
设置密码,第一个payload选择弱密码字典,第二课payload也就是token字段选择Recursive grep,如下
pikachu靶场通关指南_第6张图片
也可以填写Grep-Match,当在相应包中发现指定信息时,就会标识出来。
pikachu靶场通关指南_第7张图片
这下直接爆破就可以了
pikachu靶场通关指南_第8张图片
可以看到爆破成功了。

XSS

反射型xss(get)

首先随便输入个啥内容,比如666,观察666是否出现在页面中。
pikachu靶场通关指南_第9张图片
输入框下面出现了666,然后输入XSSpayload,比如
pikachu靶场通关指南_第10张图片
发现有输入长度限制,直接F12修改HTML源码,去掉长度限制。
接着输入payload之后就出现了弹框。
pikachu靶场通关指南_第11张图片
观察URL发现,payload在里面,就像下面这样:

http://192.168.21.130/vul/xss/xss_reflected_get.php?message=&submit=submit
这样就可以通过恶意连接的方式去进行攻击。

反射性xss(post)

刚进去像下面这样,是一个登录框
pikachu靶场通关指南_第12张图片
输入admin/123456登陆进去,就会出现一个搜索框
pikachu靶场通关指南_第13张图片
我们像上一关那样先输入个666,看666是否出现在页面中。
pikachu靶场通关指南_第14张图片
然后直接插入payload,输入之后直接弹窗了,没有进行过滤
pikachu靶场通关指南_第15张图片

存储型xss

登进去是一个留言板,输入666会存储在页面中。
pikachu靶场通关指南_第16张图片
接着输入,直接弹框,也是啥都没有过滤
pikachu靶场通关指南_第17张图片
而且每次访问都会弹框,这是存储型XSS。

DOM型xss

直接输入,发现没有弹框,审查元素看是哪里出了问题
pikachu靶场通关指南_第18张图片
原来是payload写到了href属性里面,接着就去改payload,payload如下:
'>
接着再去审查元素
pikachu靶场通关指南_第19张图片
当鼠标经过图片时,就会弹框
pikachu靶场通关指南_第20张图片

DOM型xss-x

先输入666试探一下,看在页面中是否有输出
pikachu靶场通关指南_第21张图片
没有找到,搜索结果是CSS代码,应该不是。
然后我们点击有些费尽心机想要忘记的事情,后来真的就忘掉了,再看看有没有
pikachu靶场通关指南_第22张图片
找到了,这和上一关很像,就是要点击一下那串字。
首先输入上一关的payload:'>,再点一下那串字,就写进去了。
pikachu靶场通关指南_第23张图片
鼠标经过时就会弹框
pikachu靶场通关指南_第24张图片

xss之盲打

pikachu靶场通关指南_第25张图片
刚进去的时候提示输入一些看法和姓名,这个内容不在前端显示,可能会发送到后台,后台管理员登陆后台之后,攻击代码就会执行。
输入常规的payload:
pikachu靶场通关指南_第26张图片
输入之后提示可能发送到后台管理页面,最后我们登陆后台管理地址。
后台地址是/xssblind/admin_login.php,输入密码admin/123456,登录即可触发XSS。
pikachu靶场通关指南_第27张图片

XSS之过滤

首先输入666,看在页面上是否显示,可以看到下面这样
pikachu靶场通关指南_第28张图片
接下来输入XSSpayload:
pikachu靶场通关指南_第29张图片
发现过滤得只剩>,可以尝试大小写绕过:
当script为过滤关键词时,可以尝试其他的payload,如


pikachu靶场通关指南_第30张图片
发现成功弹窗。

xss之htmlspecialchars

在php中,htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体。
直接输入典型payload,页面显示如下
pikachu靶场通关指南_第31张图片
在输入框输入' "<>666,然后查看页面源代码,如下:
pikachu靶场通关指南_第32张图片
发现单引号没有被实体化,所以使用如下payload:#' onclick='alert(/xss/)
点击就会弹框。
pikachu靶场通关指南_第33张图片

xss之href输出

输入666,查看页面源代码
pikachu靶场通关指南_第34张图片
发现写在了href中,输入测试代码#' onclick='alert(/xss/) ,查看前端源码,发现单引号被实体化了,妈的,没有用了
pikachu靶场通关指南_第35张图片
可以使用javascript协议来执行js,可以尝试使用伪协议绕过。尝试payload:javascript:alert(/xss/) ,点击即可触发弹窗。
pikachu靶场通关指南_第36张图片

xss之js输出

输入框中输入666,显示如下
pikachu靶场通关指南_第37张图片
查看网页源代码,看有没有666这三个字,发现写在了javascript标签内。
pikachu靶场通关指南_第38张图片
输入的代码被生成在js中并赋值给$ms。我们的输入被带入到js中,可以闭合,payload如下: ';alert(1);//
pikachu靶场通关指南_第39张图片

CSRF

CSRF(get)

使用vince/123456登陆,点击修改个人信息,界面如下
pikachu靶场通关指南_第40张图片
修改信息,然后进行抓包
pikachu靶场通关指南_第41张图片
生成csrfPOC,然后将POC保存为html,用处于登陆状态的浏览器打开
pikachu靶场通关指南_第42张图片
发现配置信息修改成功。
其实get型CSRF可以修改URL,就可以生效。

CSRF(post)

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

CSRF Token

抓修改信息的包,发现有token字段
pikachu靶场通关指南_第43张图片
这个就没招了,除非你把受害者的token偷过来。

SQL注入

数字型注入

打开界面如下
pikachu靶场通关指南_第44张图片
直接抓包
pikachu靶场通关指南_第45张图片
放到repeater里面,对id参数进行测试,发现有注入
pikachu靶场通关指南_第46张图片
直接进行普通的联合查询注入就可以,没啥好写的了。

字符型注入

输入1',看页面有啥反应没
pikachu靶场通关指南_第47张图片
存在注入,直接常规注入就好
pikachu靶场通关指南_第48张图片

搜索型注入

搜索型注入是出现在搜索框处的注入。
搜索型源码一般是 select … from … like '%xxx%' ,xxx是我们输入的值
尝试输入% (通配符表示所有)

你可能感兴趣的:(web靶场,安全)