newphp Bugku详解

这道题涉及到字符串逃逸(缩小) 反序列化 SSRF  

打开后进行代码审计 代码很长  Copy到本地进行调试  通过调试可以看到我们输入的值会变成什么样子

示例如下  加些换行 可以更清晰  

思路分析解答

根据反序列化后魔术方法的执行拿到提示的hint.php

evil类就是我们控制的点

通过evil类构造输出我们序列化的值 拿到hint.php

构造序列化的值 

这里把flag改为hint    图片里我是做实验 不用管

将序列化好的值打入查看效果 这里进行本地调试查看效果 不是直接在题目靶场进行

这里可以看到我们打入的值 被字符串所包裹 无法逃逸实现类中类

 分析解答如下 这里就用图片展示了  

这里说一下为什么要加1位成为24位

根据我们的规则 \0\0\0变成***  6变3 缩小一倍  

而我们可以控制的点也只有username和password

根据1倍的缩小条件 这里我们只有23位 23乘2等于46  无法和6整除  最近的是48   48可以和6进行整除 48/2=24  所以这里我们加1位 可以正好补足  当然48及以上构成6的倍数的数都可以 只不过那样子 我们要补的字符就很多了 例如54  这样我们就要补4位(原先23位) 构成54/2=27位

打入即可  注意这里绕过wakeup

解码访问其中的内容

解码得到index.cgi  访问结果如下

 

 

我们发现有个get传参 bob 看看这里我们能不能可控  而且UA头里出现了curl函数 我们知道curl函数是可以扒取前端页面的

大家可以在本地的dos窗口执行curl www.baidu.com 会发现百度的前端就已经被扒取下来了

所以这里我们认为存在SSRF  看看name这个参数是不是可控 我们进行传参尝试

发现传入之后改变了

 

那么这里就直接file协议读文件即可 SSRF嘛  file协议

这里file前需要加空格

猜测服务端的curl函数进行执行时 是直接拼接我们的输入的值

例如  curlfile   这样执行不了       curl file 这样才可以执行ssrf

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

layz_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值