CTF-攻防世界-supersqli(sql注入)

题目

解题过程

试了一下单引号,发现存在注入,数据库类型是MariaDB

第一反应是工具跑一下>_<,跑出数据库名称:supersqli

继续跑表名,没跑出来,尝试了下执行sql,也木有任何返回。。。

看了一下当前用户是root,但不是dba,难道是木有权限。。。

再回到页面试了下,发现有过滤关键字,这应该就是工具没跑出表来的原因。

把绕过的方法挨个试了一遍,发现可以堆叠注入,查出两个表名来,但是不能select数据出来(因为关键字过滤了。。)

查询表中的字段,flag在1919810931114514这张表中

查询表中数据的方法我没想到,百度了一下,有两种:1.页面默认查的是words表,将1919810931114514的表名和words交换;2.利用mysql的预处理。

预处理语句输入如下:

1‘;use supersqli;set @sql=concat(‘s‘,‘elect * from `1919810931114514`‘);PREPARE pre FROM @sql;EXECUTE pre;--+

这里很巧妙的用concat绕过了关键字的检查(这个思路厉害了,好好学习~^_^~)

知识点总结

1. MySQL表名为纯数字时(表名和保留字冲突时也是加反引号),要加反引号:show columns from `1919810931114514`

2. MySQL 官方将 prepare、execute、deallocate 统称为 PREPARE STATEMENT,也就是预处理语句

3. 字符拼接函数可以考虑用来绕过关键字检查

原文地址:https://www.cnblogs.com/sallyzhang/p/12627343.html

时间: 2024-10-16 20:27:19

CTF-攻防世界-supersqli(sql注入)的相关文章

渗透攻防Web篇-SQL注入攻击初级

不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一,这里我想问,我们真的了解SQL注入吗?看完本篇文章希望能让你更加深刻的认识SQL注入. 注入攻击原理及自己编写注入点 1.1.什么是SQL?SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如 MS Access.DB

CTF -攻防世界-crypto新手区(1~4)

题目已经提示用base64直接解密就行 base64解密网址 http://tool.oschina.net/encrypt?type=3 题目提示是凯撒密码 http://www.zjslove.com/3.decode/ 题目已经提示摩斯我做了下转化 然后随便百度一个摩斯电码的在线转化网站就行 题目已经提示栅栏密码 以下是栅栏密码的简介 https://www.douban.com/note/122845904/ 但是栅栏密码会有一个www解密 一般的网站就不能把它解开 很复杂所以找到了一个

CTF -攻防世界-crypto新手区-easy_RSAeasy_RSA

首先如果你没有密码学基础是得去恶补一下的 然后步骤是先算出欧拉函数 之后提交注意是cyberpeace{********}这样的 ,博主以为是flag{}耽误了很长时间  明明没算错呀  hhhh 一看首先肯定要用morse解码 解密morse密码工具https://tool.lu/morse/ 你看提示maybe have 什么什么什么 就知道还要再解码 再看后面的很像培根密码 解密培根密码工具https://tool.bugku.com/peigen/ 老规矩按照cyberpeace{}就行

【渗透攻防Web篇】SQL注入攻击高级

前言 前面我们学习了如何寻找,确认,利用SQL注入漏洞的技术,本篇文章我将介绍一些更高级的技术,避开过滤,绕开防御.有攻必有防,当然还要来探讨一下SQL注入防御技巧. 目录 第五节 避开过滤方法总结 5.1.大小写变种 5.2.URL编码 5.3.SQL注释 5.4.空字节 5.5.二阶SQL注入 第六节 探讨SQL注入防御技巧 6.1.输入验证 6.2.编码输出 正文 第五节 避开过滤方法总结 Web应用为了防御包括SQL注入在内的攻击,常常使用输入过滤器,这些过滤器可以在应用的代码中,也可以

SQL注入学习资料总结

转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html  什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言.1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准.不过各种通行的数据库系统在其实践过程中都

sql注入初中高学习

以下三篇文件关于SQL注入写的很通俗易懂,整理收藏下 渗透攻防Web篇-SQL注入攻击初级: http://bbs.ichunqiu.com/thread-9518-1-1.html 渗透攻防Web篇-SQL注入攻击中级: http://bbs.ichunqiu.com/thread-9668-1-1.html 渗透攻防Web篇-SQL注入攻击高级: http://bbs.ichunqiu.com/thread-10093-1-1.html

攻防世界web进阶区(2)--记一次sql注入

题目地址:http://111.198.29.45:56094 这是一道sql注入题. 试试1' order by 3#,发现页面显示正常,将3换为4时,页面报错,则说明含有3个字段. 接下来判断输出点,即输入1' union select 1,2,3#,发现2与3的位置是输出点. 爆数据库名: 1' union select 1,database(),3# 1' union select 1,2,table_name from information_schema.tables where t

安全攻防之SQL注入(通过sqlmap搞定所有问题)

第一步: sqlmap基于Python,所以首先下载: http://yunpan.cn/QiCBLZtGGTa7U  访问密码 c26e 第二步: 安装Python,将sqlmap解压到Python根目录下: 第三步: 小试牛刀,查看sqlmap版本: python sqlmap/sqlmap.py -h 第四步: 通过SQL注入扫描工具扫描网站,找出怀疑有SQL注入问题的URL: 推荐 啄木鸟 !~~ <oo> 第五步: 1.基础信息 python sqlmap/sqlmap.py -u

基于php+mysql的sql注入攻防实操

摘要: 基于php+mysql平台的sql注入攻防的实操,提供较详细的ubuntu平台上的操作步骤,方便练手. 使用的平台: Ubuntu 12.04,php 5.3.10, mysql Ver 14.14, Apache/2.2.22 步骤: 1. 在ubuntu上安装Apache,mysql,具体过程自行百度: 2.1 首先熟悉如何再mysql中建立数据表?包括用户名和对应的密码:并且熟悉其中的查询命令:完成查询测试: 2.2 完成php端的代码,完成php和mysql的链接:完成链接查询测