SSRF漏洞学习实验环境推荐及过程记录
这个看起来不太清楚,urldecode 之后,就可以看到详细的呼吁。下面为解码之后的内容,我把要害的 redis 指令放到统一行中。 在页面能看到如下的回显。 为了验证是否乐成了,我在 ssrf-lab/basics 容器内里查察插入的 KEY 值。 Part 2:Advance1 尝试进程 这一关用了正则表达式限定内网IP的会见,详细的代码如下。必必要吐槽一下,这个要领真的是一个很糟糕的要领,由于它现实上不能起到很好的安详防护浸染。
此刻我们就用http://10.0.0.3来测试。 我们可以很明明地看到没有得到相应,可是神奇的IP地点有多种表达方法,我们可以用这些方法来绕过上面那么直白的限定。先用整数表达http://167772163发出哀求。 乐成了,我们可以来看看 IP 地点的表达方法。众所周知,IP 地点是由四个字节构成的,一旦包括了小数点,就必需思量到巨细端暗示,由于这个会影响 IP 地点的理会。不外亏得全部的收集地点都是大端暗示法,只必要留意这一点即可,下面我们先容 IP 地点的表达方法。
这些表达方法都能被curl呼吁理会为正确的 IP 地点,之后假如我们要会见的IP地点被简朴粗暴地过滤了就可以试试这种要领。除了上面的表达方法之外,还可以用 16 进制0x0A000003暗示IP地点,尚有一个很少人知道的绕过小姿势,就是用 8 进制取代 10 进制来暗示 IP 地点。在计较机的天下里,一旦在20前面加个0就会酿成8进制,好比http://01200000003现实上照旧http://10.0.0.3。上面两个表达方法,PHP 的 curl 模块能理会出来。 下面总结一下几种变形:
最后一个变形仿佛只合用于 NodeJS 应用的处事器,点分十进制的最大值为 255,一旦超出了这个数,将会被重置,这个时辰最后一个变形就会变回http://10.0.0.3。详细为什么可以通过这样的也许要从 TCP/IP 理会 IP 地点的逻辑入手(应用层的限定总能被奇妙地绕过,不是很靠得住)。 其他常见的绕过要领 1. DNS泛域名 xip.io和xip.name这两个 dns 泛域名,实现绕过的要领是,你在你想会见的 ip 地点后头添加这两个泛域名,这两个域名会从你发出的哀求中提取你真正想会见的 IP 地点,然后再相应报文中返回。感乐趣的可以看看 《DNS 处事系列之一:泛域名理会的安详案例》: https://blog.51cto.com/laoxu/1282773
尚有许多其他的绕过方法,由于在这个情形里不能实现,以是就不在这里增补了,《SSRF 裂痕的操作与进修》: https://uknowsec.cn/posts/notes/SSRF%E6%BC%8F%E6%B4%9E%E7%9A%84%E5%88%A9%E7%94%A8%E4%B8%8E%E5%AD%A6%E4%B9%A0.html 一文中较量全面。没有细心研究过为什么 Python 写的后端代码不能实现其他绕过,不外我猜是由于Python的 urllib 和 PHP 的 curl 理会方法差异,假现在后有机遇,会穷究一下内里到底有什么差异。 Part 2:Advance2 在安装这个情形的时辰,必然要留意端口的设置,假如呈现了ERROR: Pool overlaps with other one on this address space的报错,可以凭证 移除 docker 收集: http://www.zizhixiaoshe.com/article/21.html 这篇文章举办操纵,记得先将 docker 给关掉。假如之后尚有要领可以停止发生这个报错,譬喻正确地修改设置文件之类的,我会增补在后头。已经实行过变动docker-compose.yml文件中的端口不起浸染了。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |