CTF学习笔记——sql注入(2)
一、[SUCTF 2019]EasySQL
1.题目
2.解题步骤
看标题就知道是关于sql注入的题目。老规矩,先跑一下sqlmap,再用1’ or 1=1 #试试。
Nonono. 不死心再试一下别的语句呢?
1;show databases;#
成功的把数据库爆出来了,说明存在堆叠注入的漏洞。(这里有个疑惑的点是上个博客的堆叠注入是1’;用于闭合,这里不加单引号就可以,加上单引号就不好使了,不明白为什么 …可能是后台语句中屏蔽了单引号或者没有这个闭合吧)
继续爆表或者其他信息试试呢
1;show tables;#
爆出了表名,非常明显的有一个flag表。尝试了上篇博客的注入手法,毫不意外的失败了。应该是过滤了某些关键字失效的(比如ascii码转义)。于是开始搜索writeup。
嗯?师傅们在跑注入漏洞的时候会直接跑字典检查关键字有没有被过滤?隔壁小孩馋哭了~看了几篇博客发现师傅们也没有头绪,这题内置的sql语句为:
sql="select".post[‘query’]."||flag from Flag";
先贴师傅的writeup,这里直接照搬了EasySQL_qq_43619533的博客-CSDN博客_easysql
解法1
输入的内容为*,1
如果$post[‘query’]
的数据为*,1
,sql语句就变成了select *,1||flag from Flag
,也就是select *,1 from Flag
,也就是直接查询出了Flag表中的所有内容解法2
输入的内容为1;set sql_mode=pipes_as_concat;select 1
其中set sql_mode=pipes_as_concat;
的作用为将||的作用由or变为拼接字符串,执行的语句分别为select 1和setsql_mode=pipes_as_concat
和select 1||flag from Flag
,读出flag
这里贴一个pipes_as_concat模式的作用,在官方手册上是这么写的:将||视为字符串连接操作符(与CONCAT()相同),而不是OR的同义词。
妙啊~佩服找到这个漏洞的人,绕过了flag被过滤的情况。得到了flag
3.总结
1.居然可以用字典跑被过滤的关键字,比手工注方便多了,要去找个字典再尝试一下这道题
2.||转concat()这个应该算是个需要记住的漏洞,虽然还不明白师傅怎么判断出来后端的语句中含有||的…
3.sql语句还是好难…要系统的学一下sql语句
4。目前只学会了堆叠注入的一种漏洞,在看writeup的过程中发现还有联合查询等方式,有时间可以整理一个漏洞查询语句集。
4.参考资料
- SUCTF_2019_部分复现_Lethe’s Blog-CSDN博客_suctf
- [SUCTF 2019]EasySQL - 育良书记 - 博客园
- [SUCTF 2019]EasySQL_qq_43619533的博客-CSDN博客_easysql
- 刷题记录:[SUCTF 2019]EasySQL - MustaphaMond - 博客园
- MySQL :: MySQL 5.6 Reference Manual :: 5.1.10 Server SQL Modes
二、[极客大挑战 2019]EasySQL
1.题目
2.解题步骤
用的是get方法!先试试sql注入语句测试吧1’ or 1=1 #
额,这里懵了一下,还没做过这样的题,看了一眼writeup,需要构造一个万能密码,也就是说需要判断密码恒真就行了,所以密码输入1‘ or 1=1#
是对的,但是有些变量需要加引号…所以1‘ or ’1=1‘#
就可以了…
3.总结
1.单引号真是个神奇的东西,下次注入的时候会排列组合尝试的…
2.这种登陆方式的网站注入原来只是判断的密码,涨姿势了
CTF学习笔记——sql注入(2)相关推荐
- CTF学习笔记——SQL注入
SQL注入 sql注入的分类 1)可回显的注入 可以联合查询的注入 报错注入 通过注入进行DNS请求,从而达到可回显的目的 2)不可回显的注入 bool盲注 时间盲注 3)二次注入 通常作为一种业务逻 ...
- 《Web安全渗透全套教程(40集)》学习笔记 | SQL注入攻击及防御
学习视频来源:B站<Web安全渗透全套教程(40集)> 个人在学习的同时,也验证了视频中的实验部分,现将授课笔记和实验笔记整理下来. SQL注入危害 SQL基础回顾 连接数据库 查看数据库 ...
- 小菜鸡的学习笔记——sql注入之sqli-lab边学边练
结合sqli-lab靶场的sql注入学习笔记<持续更新> 第一关 Way1:字符型联合注入 Way2:报错型注入 第二关:get数值型联合注入 第三关:字符型闭合注入 第四关:字符型闭合注 ...
- Web安全学习笔记——SQL注入
一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...
- 小白学习的sql注入
小白学习的sql注入 一.sql注入漏洞原理 二.漏洞危害 三.sql注入分类 四.sql-labs靶场搭建 五.注入 六.注入流程 七.注入防范措施 八.辅助插件hackbar的安装 一.sql注入 ...
- web安全学习笔记--sql语句(sql注入基础上)
一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...
- web漏洞“小迪安全课堂笔记”SQL注入
文章目录 前言 SQL注入是什么? 注入原理 数据库结构 mysql数据库 参数类型 请求方法 如何判断注入点? 判断注入 1.信息收集 2.数据注入 3.高权限注入 魔术引号开关 跨库注入 获取所有 ...
- bwapp靶场笔记 -SQL注入篇
启动靶场 crabin@crabin-virtual-machine:~$ docker run -dt -p 9999:80 8be28fba48ec crabin@crabin-virtual ...
- 合天每周CTF学习笔记 — 神奇的磁带
这是真小白的第一次学习,做个笔记记录一下思路和辅助知识. 思路 整体思路是借助提供的提示和寻找隐藏的提示. 1.查看页面源码 根据实验指导书说明,首先访问攻击的网页,并查看源码. 2.查看源码中的提示 ...
最新文章
- 目录/文件攻击防范策略研究
- redis学习(五) redis实现购物车
- gpa-user-guide-for-ubuntu-host
- 窗函数(Window Function)在信号处理当中的应用
- 【php】相对路径/绝对路径报错?
- 使用userscript扩展浏览器插件
- 抓取android log,一键抓取Android的Locat Log
- mediawiki mysql_MediaWiki/安装
- 【Oracle 11g学习路线】
- 89c51的万年历c语言,用AT89C51与DS1302做的万年历c语言编程
- 哈登独得40分保罗复出 火箭主场103:98复仇魔术
- 2022寒假---冲冲冲~
- 搜狗 2018校招 商业基础工程—测试开发练习题
- 机器人感知-视觉部分(Robotic Perception-Vision Section)
- 微信小程序:小程序服务器域名配置合法域名
- Kotlin 协程与架构组件一起使用及底层原理分析,音视频开发前景
- Java接口的定义与实现
- EC-PCA: 利润中心主数据维护流程
- 新华三杯复赛实验赛题解析路由选路部署+PBR
- Wildfly部署drools-workbench
热门文章
- vijosP1006 晴天小猪历险记之Hill
- OpenCV Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage
- Ubuntu下安装Sublime Text3 汉化以及支持中文输入(2019.7.22更新)
- androidX 在AndroidMainfest里面加入provider后编译不通过
- 基于PHP+MySQL大学生心理健康管理系统的设计与实现
- ByteBuffer解析
- 【100%通过率】华为OD机试真题 Java 实现【最多组合直角三角形个数】【2023 Q1 | 100分】
- PyQt5+ Python3 模拟QQ群聊
- pg_hba.conf 和 pg_ident.conf
- MybatisPlus的使用和Wrapper(QueryWrapper and UpdateWrapper)