今天写了个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. Hive - [06] 行转列,列转行

    行转列(多行转一行) 1.创建表,并插入示例数据. create table students_info( `SNO` string comment '学生编号', `name` string com ...

  2. 基于Unity调取摄像头方式的定时抓拍保存图像方法小结

    上一篇<Maxmspjitter实现实时抓取摄像头画面并制成序列图 (定时抓拍)>已讲到了定时抓拍的相关问题解决方案,这一篇继续,采用不同的方法,不同的平台----基于Unity. 目标明 ...

  3. CF1693F题解

    备注 发表时间:2023-06-17 21:51 前言 yny 学长来 cdqz 讲课,写一篇讲课的题的题解纪念一下. 题意 给你一个 01 序列,有以下操作: 选择一段区间 设 \(cnt_0,cn ...

  4. C# 之委托的多播

    1 delegate void NumberCalculator(int a); 2 class Program 3 { 4 static int num1 = 100; 5 static void ...

  5. Easyexcel(2-文件读取)

    同步读取 读取单个Sheet 通过sheet方法指定对应的Sheet名称或下标读取文件信息 通过doReadSync方法实现同步读取 @Data public class UserExcel { @E ...

  6. Web前端入门第 6 问:HTML 的基础语法结构

    HTML的全称为超文本标记语言(HyperText Markup Language),基础语法结构由标签.元素.属性和内容组成,遵循层级嵌套的树形结构. 关键语法规则 标签(Tags) 双标签语法 标 ...

  7. rust学习笔记(5)

    函数 定义为 fn is_divisible_by(lhs: u32, rhs: u32) -> bool { 使用 -> 指向返回的类型 函数定义的位置没有限制 method 针对结构体 ...

  8. Oralcle11.2.0.1.0使用出现的问题

    问题1:oracle中监听程序当前无法识别连接描述符中请求服务 解决方法1: 查看oracle的服务是否开启,计算机->管理->服务和应用程序->服务,如下图 解决方法2: 找到or ...

  9. CentOS 版本选择:DVD、Everything、LiveCD、Minimal、NetInstall

    CentOS 7.X,主要是下载的时候有很多版本供选择,如何选择? DVD版:这个是常用版本,就是普通安装版了,推荐大家安装.里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G.Ev ...

  10. 【Python】面向对象版学员管理系统

    面向对象版学员管理系统 一. 系统需求 使用面向对象编程思想完成学员管理系统的开发,具体如下: 系统要求:学员数据存储在文件中 系统功能:添加学员.删除学员.修改学员信息.查询学员信息.显示所有学员信 ...