一、[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和set sql_mode=pipes_as_concatselect 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)相关推荐

  1. CTF学习笔记——SQL注入

    SQL注入 sql注入的分类 1)可回显的注入 可以联合查询的注入 报错注入 通过注入进行DNS请求,从而达到可回显的目的 2)不可回显的注入 bool盲注 时间盲注 3)二次注入 通常作为一种业务逻 ...

  2. 《Web安全渗透全套教程(40集)》学习笔记 | SQL注入攻击及防御

    学习视频来源:B站<Web安全渗透全套教程(40集)> 个人在学习的同时,也验证了视频中的实验部分,现将授课笔记和实验笔记整理下来. SQL注入危害 SQL基础回顾 连接数据库 查看数据库 ...

  3. 小菜鸡的学习笔记——sql注入之sqli-lab边学边练

    结合sqli-lab靶场的sql注入学习笔记<持续更新> 第一关 Way1:字符型联合注入 Way2:报错型注入 第二关:get数值型联合注入 第三关:字符型闭合注入 第四关:字符型闭合注 ...

  4. Web安全学习笔记——SQL注入

    一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...

  5. 小白学习的sql注入

    小白学习的sql注入 一.sql注入漏洞原理 二.漏洞危害 三.sql注入分类 四.sql-labs靶场搭建 五.注入 六.注入流程 七.注入防范措施 八.辅助插件hackbar的安装 一.sql注入 ...

  6. web安全学习笔记--sql语句(sql注入基础上)

    一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...

  7. web漏洞“小迪安全课堂笔记”SQL注入

    文章目录 前言 SQL注入是什么? 注入原理 数据库结构 mysql数据库 参数类型 请求方法 如何判断注入点? 判断注入 1.信息收集 2.数据注入 3.高权限注入 魔术引号开关 跨库注入 获取所有 ...

  8. bwapp靶场笔记 -SQL注入篇

    ​ 启动靶场 crabin@crabin-virtual-machine:~$ docker run -dt -p 9999:80 8be28fba48ec crabin@crabin-virtual ...

  9. 合天每周CTF学习笔记 — 神奇的磁带

    这是真小白的第一次学习,做个笔记记录一下思路和辅助知识. 思路 整体思路是借助提供的提示和寻找隐藏的提示. 1.查看页面源码 根据实验指导书说明,首先访问攻击的网页,并查看源码. 2.查看源码中的提示 ...

最新文章

  1. 目录/文件攻击防范策略研究
  2. redis学习(五) redis实现购物车
  3. gpa-user-guide-for-ubuntu-host
  4. 窗函数(Window Function)在信号处理当中的应用
  5. 【php】相对路径/绝对路径报错?
  6. 使用userscript扩展浏览器插件
  7. 抓取android log,一键抓取Android的Locat Log
  8. mediawiki mysql_MediaWiki/安装
  9. 【Oracle 11g学习路线】
  10. 89c51的万年历c语言,用AT89C51与DS1302做的万年历c语言编程
  11. 哈登独得40分保罗复出 火箭主场103:98复仇魔术
  12. 2022寒假---冲冲冲~
  13. 搜狗 2018校招 商业基础工程—测试开发练习题
  14. 机器人感知-视觉部分(Robotic Perception-Vision Section)
  15. 微信小程序:小程序服务器域名配置合法域名
  16. Kotlin 协程与架构组件一起使用及底层原理分析,音视频开发前景
  17. Java接口的定义与实现
  18. EC-PCA: 利润中心主数据维护流程
  19. 新华三杯复赛实验赛题解析路由选路部署+PBR
  20. Wildfly部署drools-workbench

热门文章

  1. vijosP1006 晴天小猪历险记之Hill
  2. OpenCV Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage
  3. Ubuntu下安装Sublime Text3 汉化以及支持中文输入(2019.7.22更新)
  4. androidX 在AndroidMainfest里面加入provider后编译不通过
  5. 基于PHP+MySQL大学生心理健康管理系统的设计与实现
  6. ByteBuffer解析
  7. 【100%通过率】华为OD机试真题 Java 实现【最多组合直角三角形个数】【2023 Q1 | 100分】
  8. PyQt5+ Python3 模拟QQ群聊
  9. pg_hba.conf 和 pg_ident.conf
  10. MybatisPlus的使用和Wrapper(QueryWrapper and UpdateWrapper)