平台:buuoj.cn
直接给出源码
1 |
|
首先对传入的url进行check_inner_ip检查是否为内网ip地址,这一部分限制了协议的使用,使用parse_url解析url,并使用gethostname、ip2long函数获取ip地址以及将ip地址转化为整数,不允许内网ip发送请求。
通过检查则返回safe_request_url使用curl处理。
注释提示我们应当以本地访问hint.php,我们构造如下url传入
1 | ?url=http://0.0.0.0/hint.php |
0.0.0.0的IP地址表示整个网络,代表所有主机的ipv4地址,传入绕过
得知redis的密码是root,考点是redis主从复制rce。
下载以下脚本到同一目录下
https://github.com/n0b0dyCN/redis-rogue-server
https://github.com/xmsec/redis-ssrf
修改python文件
生成payload
启动redis rogue server, 接受redis的连接
把payload传入,这里注意还要url编码一次
得到flag