三步法搞定CTF中的SQL注入题型
三步法:
一、找到注入点
二、Fuzz出未过滤字符
三、构造payload/写脚本
例题1
打开题目:

第一步,寻找注入点。
输入用户名123456,密码123456,返回结果username error!
输入用户名admin,密码123456,返回结果password error!
输入用户名admin,密码admin,返回结果password error!
(根据提示已知这是道注入题,所以可判断注入点在用户名)
第二步,fuzz出未过滤字符。
fuzz后,发现%返回结果不同


看到sprintf函数,我们能想到php的字符串格式化逃逸漏洞,这个漏洞导致的结果是会将%1$/’变为’。
此时我们再尝admin%1$\’ and 1=1%23,结果返回了username error!

根据之前测试,and 1=1返回password error!才表示成功。猜测应该是过滤了and,我们再尝试一下admin%1$\’ or 1=1%23(这里可以再fuzz一次),执行成功了。

第三步,构造payload/写脚本。
本题未过滤其他字符,剩下的就是盲注了,脚本大家根据题目自行编写,最终拿到flag。
例题2
打开题目:

第一步,找到注入点。
在搜索框输入1,返回you are in...

在搜索框输入2,返回you are not in...

由此判断是盲注,注入点是id=1处。
第二步,fuzz出未过滤字符。

这些是被过滤掉的(空格也被过滤了),or没有被过滤,我们尝试输入1'/**/or/**/'1'='1

明明没有过滤掉or,应该是后端给过滤了,尝试双写绕过:1'/**/oorr/**/'1'='1,还是you are not in...,再用%0a代替/**/(即空格)

虽然没显示you are in,但是应该是注入成功了。
第三步,构造payload/写脚本。
剩下的就是盲注了,大家根据题目自行编写就好了,最终拿到flag。
总结:
此类题目的难与易主要在于寻找注入点,对于难一点的题目,出题人会把注入点藏得很隐蔽,需要大家不断地尝试,细心地去寻找。
三步法搞定CTF中的SQL注入题型的更多相关文章
- 三分钟搞定Python中的装饰器
python的装饰器是python的特色高级功能之一,言简意赅得说,其作用是在不改变其原有函数和类的定义的基础上,给他们增添新的功能. 装饰器存在的意义是什么呢?我们知道,在python中函数可以调用 ...
- 三步轻松搞定delphi中CXGRID手动添加复表头(多行表头,报表头)
网上有代码动态生成cxgrid多行表头的源码,地址为:http://mycreature.blog.163.com/blog/static/556317200772524226400/ 如果要手动设计 ...
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- iOS开发三步搞定百度推送
iOS开发三步搞定百度推送 百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...
- 面试大总结:Java搞定面试中的链表题目总结
package LinkedListSummary; import java.util.HashMap; import java.util.Stack; /** * http://blog.csdn. ...
- 面试大总结之二:Java搞定面试中的二叉树题目
package BinaryTreeSummary; import java.util.ArrayList; import java.util.Iterator; import java.util.L ...
- (转)面试大总结之一:Java搞定面试中的链表题目
面试大总结之一:Java搞定面试中的链表题目 分类: Algorithm Interview2013-11-16 05:53 11628人阅读 评论(40) 收藏 举报 链表是面试中常出现的一类题目, ...
- CTF比赛中SQL注入的一些经验总结
ctf中sql注入下的一些小技巧 最近花了一点时间总结了各大平台中注入的trick,自己还是太菜了,多半都得看题解,就特此做了一个paper方便总结 注释符 以下是Mysql中可以用到的单行注释符: ...
- 在php中防止SQL注入的方法
摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PH ...
随机推荐
- windows笔记本触摸板的快捷键教程
自从习惯了macbook的触摸板,根本就懒得使用鼠标.即实用,又便捷.但切换到windows笔记本的时候,总是不习惯使用触摸板. 今天查了一下微软的教程,发现windows现的已经做的相当不错了.但是 ...
- django 问题综合
orm部分 本篇文章我会持续更新,把开发中遇到的一切orm相关的问题都放在这里 mysql索引报错 使用django 的orm,数据库用的mysql,在使用makemigrations和migrate ...
- Postgres 优雅存储树形数据
碰到一个树形数据需要存储再数据控制,碰到以下两个问题: 在PG数据库中如何表达树形数据 如何有效率的查询以任意节点为Root的子树 测试数据 为了更加简单一些,我们将使用一下数据 Section A ...
- Java 基本文件操作
Java 文件操作 , 这也是基于Java API 操作来实现的. 文件是操作系统管理外存数据管理的基本单位, 几乎所有的操作系统都有文件管理机制. 所谓文件, 是具有符号名而且在逻辑上具有完整意义的 ...
- 记录Nginx实现内容重定向的两种方式:rewrite和反向代理
第一种:rewrite server { listen 80; server_name www.test.org; root /te ...
- [LeetCode] 24. 两两交换链表中的节点
题目链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/ 题目描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是 ...
- 逆向-攻防世界-CSAW2013Reversing2
运行程序乱码,OD载入搜索字符串,断电到弹窗Flag附近. 发现跳过00B61000函数,弹窗乱码,我们试试调用00B61000函数.将00B61094的指令修改为JE SHORT 00B6109b. ...
- 四十二、在线预览pdf文件
//文档在线观看 checkWoc(type, id, taskId, smsId, stsId) { if(type == "zip" || type == "7z&q ...
- mysql jdbc 官方编程示例
/* Basic example of an application using JDBC API of Connector/C++ */ /* Standard C++ includes */ #i ...
- linux-高并发与负载均衡-lvs-DR模型试验
先配置3台虚拟机的网络 3台虚拟机克隆的方法:(....) etho,配置在同一个网段 DIP,RIP在一个网段 node01:作为lvs负载均衡服务器 node02:作为 Real Server n ...