作者:正好忍心_702 | 来源:互联网 | 2023-07-20 19:37
一、初识SQL注入1.SQL注入原理:2.SQL注入两个关键条件:①用户能控制输入的内容②Web应用把用户输入的内容带入到数据库中执行3.SQL注入的危害:4.SQL注入的分类:①
一、初识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;