ssrf-协议篇

发布时间 2023-08-02 15:31:46作者: TheBlackEagle

书接上回,ssrf的post请求

经过了上次的hackbar尝试,发现不行,百度半天都是上来就用一个什么gopher协议,也没看到哪个说明白为啥要用gopher

这gopher也不像file啥的直接读,它同样是传个post,怎么就非得用它了

这里也看了两个文件的源代码

 

最后想了想可能是post和get协议的理解还是有些问题,先来看gopher这个东西吧

gopher是一个强大但是古老的协议,现在应用比较少

 gopher的格式:gopher://IP:端口/_{TCP/IP数据流}

查gopher使用的时候倒是看到了一句解释,为什么要使用gopher

 格式这里的_不能省,在gopher中用来占位不解析

然后来捋一捋:我们先得将包发送给index,然后在index里用gopher协议往flag传post的key

下边那道跟这个一样的流程,这里就不贴了,贴下边,这个的具体实现就上这里看看吧:https://blog.csdn.net/weixin_48799157/article/details/123934857

里边还有个我昨天碰到的问题,就是那个windows下和linux下换行不一样的事,这里有一步需要把0A换成0D0A,跟那个似乎是一个道理

 下一道跟这个差不多,只不过是要上传文件

 看下源代码

 就是把key改成了传文件

点了浏览选完文件才发现没有上传的按键

 搜了一下,这年头提交按钮都得自己写

<input type="submit" name="submit">

 这边抓下包,然后先编码一次再替换一下%0A

 然后再编两次码,扔到原来抓的包里

 伪造出index发送的请求,拿到flag

下一个是fastcgi协议

 附件是一篇文章:https://blog.csdn.net/mysteryflower/article/details/94386461 ,里边讲了fastcgi协议以及漏洞

这里直接按照网上的方法下一个gopherus:https://github.com/tarunkant/Gopherus

是一个生成payload的工具

可以直接clone:git clone https://github.com/tarunkant/Gopherus.git

要注意的是这个工具也是用python2写的,直接python会报错

 这里第一行要求给出一个php文件的绝对路径,写上index.php的

第二行是要执行的命令,这里写个ls,然后就会生成payload

 然后是把payload再编码一次放进抓包里,会发现目录下啥也没有,flag在根目录里,再ls一次加上cat一次,一共需要发三次

刚才中午把鼠标摔坏了,现在是触摸板战士,上午写到一半又忘存了,懒得再打一遍了,直接看redis吧,反正这几个都差不多

 生成redis的payload,然后编码发包

 发完没响应,不用管,直接访问shell.php试试

 蚁剑连接

 

 

 完事儿