ctfshow-SSRF篇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctfshow-SSRF篇相关的知识,希望对你有一定的参考价值。

参考技术A 参考: https://blog.csdn.net/miuzzx/article/details/111992415

payload:

使用file伪协议看到的flag.php源码如下:

要求是 http 或者 https 协议,以及过滤了 localhost 和 127.0.0.1 。
额为什么 preg_match() 里面没有指定对谁匹配,所以上一题的payload中的http协议的是可以使用的,file伪协议的过不了第一层判断。
不过如果的确做了有效的正则匹配,那么可以127.0.1 、127.1或者转成16进制或者8进制绕过,payload如下:

使用进制转换或者127.1绕过:

把1和0都ban了,可以修改自己域名的A记录为127.0.0.1
A(Address)记录是地址记录,用来指定主机名(或域名)对应的IP地址记录,通过A记录,可以设置不同域名指向不同的IP。
payload如下:

也可以搭一个302跳转,不过也是要有域名的 参考 :

要求host的长度小于等于5,使用如下payload:

还可找一个域名长度不大于5的域名 A 记录解析到127.0.0.1。

要求host长度小于等于3,使用如下payload:

gethostbyname 返回主机名对应的 IPv4地址。
filter_var() 过滤器要求解析出来的ip地址是有效ip,并且不是私有ip或者不是保留ip,所以之前把自己域名的A记录设置为127.0.0.1就不可行了,解析出来的ip是保留ip。

可以使用302重定向,vps搭一个:

payload如下:

还有一个方法是DNS重绑定漏洞,参考:
浅谈DNS重绑定漏洞
具体操作如下:访问 http://ceye.io/ 并注册用户,在这儿进行DNS重绑定:

多访问几次即可。

要求解析完的url以 http://ctf. 开头,以 show 结尾,payload如下:

这样 parse_url() 真正解析出来的host是127.0.0.1, ctf. 变为了user字段,可以尝试本地解析一下:

结果如下:

可以参考: https://ctf-wiki.org/web/ssrf/#_3

提示是打无密码的mysql,抓包发现ssrf漏洞应该在check.php中:

输入用户名和想要执行的sql命令:

get方法的url参数,利用ssrf打redis,同上:

然后访问网站根目录下的shell.php即可。

Python目录整合

一.python基础篇

 

二.网络编程篇&&并发编程篇

 

三.数据库篇

  -mysql

  -redis

  -mongodb

 

四.前端篇

  -html

  -css

  -js

  jquery&&bootstrap

 

五.框架篇

  -Django篇

  -Flask篇

  -tornado篇

  -sanic篇

 

六.linux篇

  -docker番外篇

 

七.自动化运维

 

八.数据分析&&爬虫

 

九.LF商城项目开发

 

十.sqlalchemy

  -番外篇

 

十一.GO语言

 

十二.JAVA

 

十三.C&&C++

 

十四.AI

 

十五.GIS

 

人总是要有点小目标!!!

 

以上是关于ctfshow-SSRF篇的主要内容,如果未能解决你的问题,请参考以下文章

CTFSHOW 常用姿势篇(811-820)

CTFSHOW 常用姿势篇(801-810)

CTFSHOW SQL注入篇(191-210)

CTFSHOW SQL注入篇(171-190)

ctfshow-Misc入门 图片篇(50-56)

ctfshow-Misc入门 图片篇(50-54)