dede投票类网站源码,ppt模板免费下载网,深圳绿色建筑信息平台,合肥网站建设+一浪1.搭建【前提是已经下载安装好phpstudy_pro】
1.1源码准备
1.1.1源码下载
这里从github下载
https://codeload.github.com/Audi-1/sqli-labs/zip/masterhttps://codeload.github.com/Audi-1/sqli-labs/zip/master
1.1.2下载的靶场源码放到WWW下
将刚才下载的压缩包解压到…1.搭建【前提是已经下载安装好phpstudy_pro】
1.1源码准备
1.1.1源码下载
这里从github下载
https://codeload.github.com/Audi-1/sqli-labs/zip/masterhttps://codeload.github.com/Audi-1/sqli-labs/zip/master
1.1.2下载的靶场源码放到WWW下
将刚才下载的压缩包解压到小皮的文件夹的WWW下 1.1.3修改配置信息
在刚才解压的文件夹中寻找sql-connections然后用记事本打开其中的db-creds.inc然后修改密码为root
1.1.4打开小皮启动套件 1.1.5创建网站
小皮中点击网站选择创建网站然后开始配置网站这里的根目录要选择到刚才我们下载的源码的解压后的文件夹到期日期选择长一点
1.1.6访问网站首页
直接从小皮访问网站打开后得到这个页面
1.1.7数据库初始化
点击刚才的页面的Setup/reset Database for labs如此就是安装好了
1.1.8进入关卡开始打靶场进行练习 2.sql练习
2.1 less-1
进入后可以看到这个页面提示中可以知道需要我们输入id作为带数值的参数通过修改url来传递参数
参数说明
表示传递参数通常都是在页面后会有 ?id数值这样的方式传递参数给服务器然后给我们返 回参 数对应的页面信息我们发现我们是在/后面直接使用传递参数此时参数会传递给默认页面。
多次改变我们的id的数值后发现输入的数值不同返回的内容也不同那就意味着我们所输入的内容是带入到数据库进行查询然后返回的
然后我们尝试加个单引号来看看错误信息
闭合
一般的代码 $id$_GET[‘id’]; $sql“SELECT * FROM name WHERE id’$id’ LIMIT 0,1”; 我们可以看到用户输入的id是被带到sql语句中进行拼接然后执行的而且这个id两边是被’ ‘(两个单引号)给闭合起来的所以在这个代码里’(单引号)就是闭合符。 MYSQL数据库的包容性比较强如果你输错了数据的类型MYSQL数据库会自动将其转换成正确的数据类型比如输入1)、1、1-等只要数字后面的字符不是闭合符的数据库都会把你输入的错误的数据转换成正确的数据类型。 但是若输入的数字后面的字符恰好是闭合符则会形成闭合若闭合后形成的sql语句是错误的那么sql语句执行就会错误从而造成页面显示错误。 比如上方的那个一般代码中变量id是用‘’单引号引起来的这里形成了一个闭合符当我们传入参数id1’就会导致第一个单引号与第二个单引号形成闭合然后就多余了第三个单引号此时就会报错 如何判断闭合符是什么呢
我们可以在传入参数时只传入一个\(转义字符)
原理当闭合字符遇到转义字符时会被转义那么没有闭合符的语句就不完整了就会报错通过报错信息我们就可以推断出闭合符。 分析报错信息看\斜杠后面跟着的字符是什么字符它的闭合字符就是什么若是没有就为数字型。 比如在这一关中这里可以看到有一对单引号那么闭合符就是单引号且为字符型的sql注入【sql注入分为数字类型和字符类型】
扩展LIMIT 用法
LIMIT 是 MySQL 内置函数其作用是用于限制查询结果的条数。 其语法格式: LIMIT [位置偏移量, 行数] 一句话概括 位置偏移量可以理解为跳过前 N 条记录或从第 N 条记录开始往后显示 N 条记 录。 select * 返回所有记录。 limit n 返回n条记录。 limit m,n 从m条记录开始返回n条记录。 补充 使用order by判断表中字段数
ORDER BY 关键词用于对记录集中的数据进行排序。
用法 1按某个字段进行排序
语法select 字段 1字段 2 from 表名 order by 字段名;
用法 2按第几个字段进行排序如果超过查询的字段数就报错 语法select 字段 1字段 2 from 表名 order by 数字;
例order by 用于 MySQL 查询排序升序
order by 后跟上字段名时是用于做排序默认是升序。如果字段名后跟上 desc 则做降序。 如
MariaDB [security] select username from users order by id desc;
用法 3按第几个字段进行排序如果超过查询的字段数就报错
语法select 字段 1字段 2 from 表名 order by 数字;
这里我们点击f12打开hackbar开始查找字段数 解释一下这里所传入url的 id1正常传入参数 单引号是单引号闭合id参数 order by 4 是判断是否存在4个字段数 --在sql语言中是注释的作用也就相当于python语言中的# [sql的注释符号是--] [这里的加号被url编码后相当于空格而数据库会要求注释符后面有一个空格才会生效执行] 由于这里报错提示“找不到第四个字段”那么4超出了列表数我们再试试3
可以查到列表说明这里表格有3列
确定回显位。就是看表格里哪一列是显示在页面中的。这里就是显示第二列name和第三列password
获取当前数据名和版本号这个就涉及mysql数据库的一些函数记得就行。通过结果知道当前数据看是security,版本是5.7.26。
然后进行爆表 /?id-1union select 1,2,group_concat(table_name)from information_schema.tables where table_schemasecurity--
information_schema.tables表示该数据库下的tables表点表示下一级。where后面是条件group_concat()是将查询到结果连接起来。如果不用group_concat查询到的只有user。该语句的意思是查询information_schema数据库下的tables表里面且table_schema字段内容是security的所有table_name的内容