DAY2:SQL注入1

一、初识SQL注入
1. SQL注入原理

 

 

2. SQL注入两个关键条件
①用户能控制输入的内容
②Web应用把用户输入的内容带入到数据库中执行
 
3. SQL注入的危害

 

 

4. SQL注入的分类
①根据请求方式不同

 

 

②根据SQL注入点的参数类型

 

 

③根据SQL注入点的反馈类型

 

 

④根据Web应用常用的数据库类型

 

 

 
二、万能密码
(渗透测试遇到后台登录框尝试一下万能密码)
1. 万能密码原理(注释符:“#”、“--+”)

 

 

2. SQL查询逻辑
 
 

 

 

 

 

 
三、SQL手工注入流程(口述)
1. SQL注入基本流程

 

 

2. 步骤
第一步:判断是否存在注入,识别注入点类型
第二步:判断有多少列
第三步:联合查询,判断数据显示点

 

 

 

 
获取数据常用函数:
user():返回当前使用数据库的用户
version():返回当前数据库的版本
database():返回当前使用的数据库
第四步:利用显示点获取SQL语句的执行结果

 

 

查看数据库有哪些表:
(#号的url编码为%23,为防止不能输入一些特殊字符,采用url编码)

 

 

第五步:查看对应表有哪些列

 

 

第六步:查看账号密码信息

 

 

⑦第七步:破解账号密码信息

 

 

密码一般采用MD5加密,注意观察,MD5加密的密文一般为16位或32位,有时遇到40位,可以尝试去掉前四位和后四位,或者直接去掉前八位或后八位,或者前三位后五位,以此类推。
 
3. information_schema库
查询所有数据库:
union select 1,group_concat(schema_name) from information_schema.schemata

 

 

常用函数:
concat():将多个字符串连接成一个字符串
concat_ws():将多个字符串连接成一个字符串,可指定分隔符
例如:concat_ws('**',name,age)
group_concat():将group by产生的同一个分组中的值连接起来,返回一个字符串结果
例如:select name,group_concat(id order byid desc separator '-') from table1 group by name;
 
 
posted @ 2019-10-06 20:40  年糕SDS  阅读(175)  评论(0)    收藏  举报