sqllab 1-6 练习
Posted CYwxh0125
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqllab 1-6 练习相关的知识,希望对你有一定的参考价值。
前言
什么是sql注入?
攻击者通过构造不同的sql语句来实现对数据库的操作
两个关键 :参数用户可控 参数带入数据库查询
基本流程
判断注入点
判断字段数
判断回显点
查询相关内容 判断库名----> 判断表明---->判断列名----->判断数据
搭建
复制文件到 D:\\phpstudy_pro\\WWW
创建网站 设置根目录为该文件 注意 php版本需要为 5.4.45
至此 搭建完成
less-1 GET - Error based - Single quotes - String
1.判断注入点
显示正常 说明1=2没有被执行
尝试加引号进行闭合
成功 查看源码 果然是被加了引号
所以引号处存在sql注入
2.判断字段数
使用 order by 1 2 3.....尝试
4的时候不存在 所以 字段数为3
3.判断回显点
使用联合查询 因为字段数为3 所以 union select 1,2,3
为什么没有显示出回显点呢???
因为此时 显示id=1时的界面 可以将id改为不存在的数或一个大点的数字
可以看到 回显点2 3
4.查询相关内容
查询数据库 使用database()
查询表名 1.使用limit逐个查询
2.使用group_concat 但如果表名过多可能会显示不完整
查列名
在各个表中查询列名
在名为 users的表中 查到了 password 列
查数据
用group_concat()分别查询id对应的username和password
2.less-2 GET - Error based - Intiger based
1.判断注入点
可以看到 1=2 直接被执行了
2.判断字段数
3.判断回显点
4.查询数据
库名
表名
列名
数据
less-3 GET - Error based - Single quotes with twist string
1.判断注入点
排列组合尝试 并查看源码
2.判断字段数
3.判断回显点
4.判断数据
库名.表名.列名同前二题
查询数据
less-4 GET - Error based - Single quotes with twist string
1.判断注入点
结合源码分析
2.判断字段数
3.判断回显点
4.查询
less-5
1.判断注入点
加引号闭合
2.判断字段数
字段数为3
3.判断回显点
发现没有回显点 需要使用盲注
盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。
布尔型:页面只返回True和False两种类型页面。利用页面返回不同,逐个猜解数据
时间型:通过页面沉睡时间判断
通过 sleep()函数测试,通过if()和sleep()联合逐个猜解数据
如果当前查询的当前数据库ascii(substr(database()),1,1)的第一个字符的ASCII码大于100,ture 沉睡10秒,FALSE 沉睡4秒
原文链接:https://blog.csdn.net/weixin_40709439/article/details/81355856
报错型: 没有正常的输出位,需要的数据通过报错进行输出显示
4.查询数据
库名 ?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),%20%20--%20app
表名
列名
数据
使用group——concat 发现回显不够 用limit
less-6 GET - Double Injection - Double Quotes - String
1.判断注入点 比上一道题加个"
2.判断字段数 同上
3.用盲注查询
以上是关于sqllab 1-6 练习的主要内容,如果未能解决你的问题,请参考以下文章