三步法:

一、找到注入点

二、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注入题型的更多相关文章

  1. 三分钟搞定Python中的装饰器

    python的装饰器是python的特色高级功能之一,言简意赅得说,其作用是在不改变其原有函数和类的定义的基础上,给他们增添新的功能. 装饰器存在的意义是什么呢?我们知道,在python中函数可以调用 ...

  2. 三步轻松搞定delphi中CXGRID手动添加复表头(多行表头,报表头)

    网上有代码动态生成cxgrid多行表头的源码,地址为:http://mycreature.blog.163.com/blog/static/556317200772524226400/ 如果要手动设计 ...

  3. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  4. iOS开发三步搞定百度推送

    iOS开发三步搞定百度推送   百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...

  5. 面试大总结:Java搞定面试中的链表题目总结

    package LinkedListSummary; import java.util.HashMap; import java.util.Stack; /** * http://blog.csdn. ...

  6. 面试大总结之二:Java搞定面试中的二叉树题目

    package BinaryTreeSummary; import java.util.ArrayList; import java.util.Iterator; import java.util.L ...

  7. (转)面试大总结之一:Java搞定面试中的链表题目

    面试大总结之一:Java搞定面试中的链表题目 分类: Algorithm Interview2013-11-16 05:53 11628人阅读 评论(40) 收藏 举报 链表是面试中常出现的一类题目, ...

  8. CTF比赛中SQL注入的一些经验总结

    ctf中sql注入下的一些小技巧 最近花了一点时间总结了各大平台中注入的trick,自己还是太菜了,多半都得看题解,就特此做了一个paper方便总结 注释符 以下是Mysql中可以用到的单行注释符: ...

  9. 在php中防止SQL注入的方法

    摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PH ...

随机推荐

  1. nginx常用场景

    1.浏览器缓存 server { listen 8083; server_name 127.0.0.1; sendfile on; access_log /var/log/nginx/static_s ...

  2. php微信h5支付超简单!!!

    本示例应用于tp3.2版本  不懂私聊我QQ:1195989301 请备注来意! 代码链接 请点击下载 密码: ekd4 不喜欢打字望谅解.....

  3. 【java学习】实践中总结--持续更新中

    目录: 一些定义 配置环境 相关语法 1.一些定义 java中DO的含义: https://blog.csdn.net/canot/article/details/51698047 DAO 中包含了各 ...

  4. 【spring源码分析】IOC容器初始化(六)

    前言:经过前几篇文章的讲解,我们已经得到了BeanDefinition,接下来将分析Bean的加载. 获取Bean的入口:AbstractApplicationContext#getBean publ ...

  5. android等待对话框

    等待对话框,这里有两种方式来实现: ProgressDialog方式 progressDialog初始化 private void initProgressDialog() { progressDia ...

  6. 【数据库】+ powerdesigner

    使用powerdesigner工具对现有数据库表 生成关系图:https://www.cnblogs.com/lusunqing/p/4128025.html 通过Excel生成PowerDesign ...

  7. 【故障公告】推荐系统中转站撑爆服务器 TCP 连接引发的故障

    上周五下午,我们在博客中部署了推荐系统,在博文下方显示“最新IT新闻”的地方显示自动推荐的关联博文.我们用的推荐系统是第四范式的推荐服务,我们自己只是搭建了一个推荐系统中转站(基于 ASP.NET C ...

  8. React 精要面试题讲解(二) 组件间通信详解

    单向数据流与组件间通信 上文我们已经讲述过,react 单向数据流的原理和简单模拟实现.结合上文中的代码,我们来进行这节面试题的讲解: react中的组件间通信. 那么,首先我们把看上文中的原生js代 ...

  9. Socket网络编程(案例)

    Socket:套接字 java.net包 1.流式套接字:基于TCP协议的Socket网络编程 工作方式: 1.客户端A连接到服务器: 2.服务器建立连接并把客户端A添加到列表: 3.客户端B.C.. ...

  10. 利用node.js来实现长连接/聊天(通讯实例)

    首先: 需要在服务器端安装node.js,然后安装express,socket.io这两个模块,并配置好相关的环境变量等. 其次: 服务端代码如下: var app = require('expres ...