今天写了个sql注入的题目(也是跟着教程做的hhh),过程中有些心得体会,想着写篇博客总结一下。

笔者也是初学者,如有哪里讲错了,欢迎大佬在评论区点出

题目来源:攻防世界web进阶区,NewsCenter

大概是个新闻网站,一进去长这样,提供搜索功能。

先试试单写一个引号 '

没有报错,显示一片空白,应该是叫有回显?

接下来需要知道这个网站查询的格式,是一次查询几个列,有了格式我们才可以继续构造接下来的语句。

这里使用' union select 1,2 #这个语句

解释这个语句:

因为网站调用数据库使用的语句,大概长这样: select '你填的搜索词' from blabla…………

然后我们的语句开头那个引号 ' 注释掉了语句中前面那个引号,用union来执行我们需要的语句,执行完后用#或者 -- 来注释掉原来的语句后面的部分(#和 -- 是mysql的注释方式,注意 -- 最后需要多一格空格在杠后面。)

而select直接加常数查询,会返回一个临时的表,表里就是查询的常数。

比如使用语句select 1,2,3;,数据库就会临时新建一个表,列分别是1,2,3

大概长这样

不一定要是顺序的1,2,3,也可以是2,52,13,24这样的



通过这样简单的查询,我们就可以知道网站每次查询几个参数。(新闻名字,新闻内容,还有一个不太清楚)

这个参数不一定是会显示在网页上的,也可能是后台需要使用的,比如新闻的位置之类的

这里通过尝试,(从一个参数开始,一个一个试),发现网站是使用三个参数查询



可以看出,第一个参数没有显示出来,应该是新闻的位置,第二个参数是新闻的标题,第三个参数是新闻的内容。

至此,可以初步确定查询的格式。

这里还需要讲下mysql这种数据库。这种数据库默认带有一个库叫做information_schema,这个数据库里有带几个表,里面记载了所有的表名和列名,我们可以利用这几个表来得到表和列的名字。

所有表名记在tables表里的table_name列。

而列的名字和存储类型则记载在columns表里的column_name列和column_type列。

然后回到我们这个题目,我们已经知道查询结构了,所以可以通过table表来查这个网站后台的所有表名。

1' union select 1,2,table_name from information_schema.tables #

显示出来表名在新闻内容的位置,新闻的标题都会是2

如果把开头的1去掉,查询内容为全部,就还会显示所有的新闻内容。

这里我们观察表名,发现一派大写名字中,有两个小写的格外突出,一个是news,一个是secret_table。

顾名思义,news里应该存的就是新闻了,secret_table里存的应该就是我们要的

同理,构造语句 1' union select 1,column_type,column_name from information_schema.columns #

但是这样出来的列名和类型是全部表的,所以我们得加上限定条件 where table_name='secret_table'

最终语句: 1' union select 1,column_type,column_name from information_schema.columns where table_name='secret_table' #

查询得到表名和类型,可以看出确实是flag

最后一次查询,直接查询flag

构造语句 1' union select 1,2,fl4g from secret_table #

得到答案

这个题目初学者做着感觉挺有意思,跟着教程也能做,看得懂,就很舒服,推荐大家自己试着做做,一定会有收获的。

SQL注入入门实例讲解(NewsCenter的更多相关文章

  1. sql 注入入门

    =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关 ...

  2. sql注入入门--基本命令

    本文转载自http://blog.csdn.net/zgyulongfei/article/details/41017493 本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过. > > ...

  3. 梨子带你刷burp练兵场(burp Academy) - 服务端篇 - Sql注入配套漏洞讲解笔记

    目录 Sql注入 什么是Sql注入呢? Sql注入有哪些例子? 检索隐藏数据 打破应用逻辑 利用Union进行跨库查询 如何确定利用Union的注入攻击所需的列数呢? 如何确定Union的查询结果中哪 ...

  4. SQL注入入门

    这几天做了不少SQL注入题,对SQL注入有点体会,所以写写自己的学习历程与体会. 什么是SQL注入 SQL注入就是指web程序对用户输入的数据的合法性没有进行判断,由前端传入的参数带着攻击者控制的非法 ...

  5. 基础Web漏洞-SQL注入入门(手工注入篇)

    一.什么是SQL注入  SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...

  6. 实例讲解 SQL 注入攻击

    这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读.翻译水平有限,见谅! 一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试. ...

  7. SQL注入个人理解及思路(包括payload和绕过的一些方式)

    首先本文主要是把我对SQL注入的一些坑和最早学习SQL注入的时候的一些不理解的地方做一个梳理. (本文仅为个人的一点皮毛理解,如有错误还望指出,转载请说明出处,大佬勿喷=.=) 什么是SQL注入呢? ...

  8. Java防止SQL注入(转)

    一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...

  9. 防SQL注入

    addslashes(); 一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库 ...

  10. 防止 jsp被sql注入的五种方法

    一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...

随机推荐

  1. 大数据之路Week10_day04 (Hbase的二级索引,二级索引的本质就是建立各列值与行键之间的映射关系)

    二级索引的本质就是建立各列值与行键之间的映射关系 HBASE是在hadoop之上构建非关系型,面向列存储的开源分布式结构化数据存储系统. Hbase的局限性: HBase本身只提供基于行键和全表扫描的 ...

  2. Vulnhub-DC-9靶机-SQL注入拿到账户+利用端口敲门连接ssh+信息泄露利用root脚本追加提权

    一.环境搭建 选择扫描虚拟机 选择靶机路径 如果出现以下信息 如下修改,修改和虚拟机一样的版本 二.信息收集 扫ip nmap -sn 192.168.108.0/24 得到靶机ip:192.168. ...

  3. php执行时间

    要计算代码的bai执行时间,在PHP来讲是du十分简单的,首先,zhi你需要知道,PHP是一种dao顺序执行的脚本语言,所以,可以按照以下步骤来计算代码的执行时间: <?php function ...

  4. 最新版 Proteus 8.15 Professional 图文安装教程(附安装包)

    前言 大家好,我是梁国庆. Proteus 是世界上唯一将电路仿真软件.PCB设计软件和虚拟模型仿真软件三合一的设计平台. 本篇博主将手把手带领大家安装最新版 Proteus 8.15. 若图片加载超 ...

  5. 浅说树形dp

    @ 目录 前言 树形dp的转移方式 树形dp的使用的场景 小结 初步感知--简单的树形dp 例题1 例题2 深入分析--树形dp的经典模型 最大独立集 最小点覆盖 最小支配集 树上直径 前言 因为树的 ...

  6. OSPF各类LSA

    一.域内路由 路由器将接口宣告进OSPF进程后,形成的链路状态放入1类LSA中,用于描述路由器自身的直连状态. 1. 区域0为骨干区域,非0为非骨干区域. 2. 骨干区域有且只能存在一个. 3. 非骨 ...

  7. SOA架构和微服务架构的区别

    1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件. 1.SOA(Service Or ...

  8. 史上最全EffectiveJava总结(一)

    创建和销毁对象 1.静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象. 不必每次调用都创建一个新的对象. 可以返回原返回类型的任何子类对象. 创建参数化类型实例时更加简洁, ...

  9. leetcode每日一题:转换二维数组

    题目 2610. 转换二维数组 给你一个整数数组 nums .请你创建一个满足以下条件的二维数组: 二维数组应该 只 包含数组 nums 中的元素. 二维数组中的每一行都包含 不同 的整数. 二维数组 ...

  10. study Python3 【1】

    用VSCode来编辑Python代码,作为IDE使用,有点头晕. https://www.runoob.com/python3/python-vscode-setup.html有介绍.还有更好的博客介 ...