pikachu靶场记录

Pikachu靶场记录

0x01 暴力破解

基于表单的暴力破解

没什么好说的,burpsuite找个字典直接爆破完事。

验证码绕过(on server):

刷新页面的时候,会向服务器的验证码接口发送请求,返回的是验证码图片和正确的验证码。

这里有两种思路,一个是采用爬虫不停请求最新的验证码,然后爆破提交就是了,太讨巧。比较重要的是另一种思路:tips提示的验证码不会失效,利用Repeater模块可以验证。

阅读源码可以发现请求服务器验证码接口后,服务器会把新的正确的验证码写在$_SESSION['vcode']里,但是验证后不会及时把当前的验证码清空,而是依赖用户重新刷新页面,再次请求验证码接口后对$_SESSION['vcode']覆写。

验证码绕过(on client):

验证码是js代码生成的,判断也是在前端判断。用burpsuite抓到一个登录的包,前端的验证码形同虚设可以随意绕过爆破。

token防爆破

这里有一个很有趣的bug,php5.2环境下token防爆破会失效,SESSION数组中如果关键字与其他变量同名,他们会共用同一片地址空间。这一特性来源于php.ini下的register_globals配置项,默认是开启的。在5.3被废止,5.4被移除。

0x02 XSS注入

反射型(GET&POST)

服务器直接把用户输入的变量拼接到返回的页面中,如果变量包含了js代码,就会被浏览器解析执行。

存储型

相较于反射型,多了一个存储的过程。用户输入->存储到数据库->读取数据库内容->输出到页面上。

DOM型xss

用户输入的变量被前端的js代码处理,修改了dom元素,如果输入变量中带有js代码,就会被浏览器解析执行。这个过程可以不经过服务器。

感觉有些鸡肋?

XSS之盲打

尽可能地于一切可能的地方提交XSS语句,只要后台管理员看到某一条语句,此语句就能被执行。可以在留言板上留下获取cookie的代码,只要管理员在后台看到,就能获取管理员的cookie。

XSS之过滤

一定要使用<script>标签的话:

  1. 大小写——

  2. 2.拼凑法——<scri

XSS之htmlspecialchars

htmlspecialchars(string,flags,character-set,double_encode)

ENT_COMPAT - 仅编码双引号(默认)。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES - 不编码任何引号。

ps:$test = htmlspecialchars($name, ENT_QUOTES);

htmlspeacialchars()默认不编码单引号,可以尝试闭合单引号绕过

payload:' onclick='alert(xss)'

XSS之href输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3x5UETPl-1648970767882)(https://raw.githubusercontent.com/DrDenkiBran/Image/main/img/2022-03-27-20-14-49-image.png)]

payload:javascript:alert(1)

XSS之JS

这里讲输入动态的生成到了js中,形成xss

javascript里面是不会对tag和字符实体进行解释的,所以需要进行js转义

讲这个例子主要是为了让你明白,输出点在js中的xss问题,应该怎么修?

这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。

所以在JS的输出点应该使用\对特殊字符进行转义 htmlspecialchars($str,ENT_QUOTES)

payload='x'</script><script>alert('xss');</script>

如果对输入点没任何处理:

结果:

0x03 CSRF(跨站请求伪造)

CSRF(get)

当前用户为vince,不知道kobe账户密码的情况下尝试诱骗对方修改kobe的个人信息

伪造的链接:

http://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18626545453&add=chain&email=vince%40pikachu.com&submit=submit

kobe点击后,信息被修改

img-fZzkw3fU-1648970767885

CSRF(POST)

换汤不换药。本质还是利用受害人的身份验证,向服务器发送伪造的请求。这次换一个链接,用户访问后向服务器发送修改个人信息的POST请求即可。这里的恶意链接对应的页面需要我们自己伪造。

CSRF(token)

这里展示token是如何防范csrf攻击的。通过一个临时的身份牌照,对每一次的敏感操作都做身份验证,只要生成token的算法足够复杂,就可以完全杜绝攻击者伪造的请求。

0x04 SQL注入

留个坑

0x05 RCE(远程命令/代码执行)

这部分我觉得靶场处理的不是特别好,因为太依赖php的动态特性了,显得RCE问题太过于简单。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值