三步法搞定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 ...
随机推荐
- 对css盒模型的理解
介绍一下标准css的盒子模型?低版本IE的盒子模型有什么不同的? 1.有两种:IE盒子模型(怪异模式).W3c盒子模型(标准模式). 2.盒模型组成:内容(content).内边距(padding). ...
- Go 定时任务
本文基于Golang Crontab 实现了一个Crontab Job Manager.更加容易使用,同时也能够满足更加复杂的场景. 仓储地址, 如果有用,欢迎点赞,欢迎讨论,欢迎找茬. 需求 在开发 ...
- 将对象xml序列化和反序列化
//将一个对象按XML序列化的方式写入到一个文件,使用的默认的UTF8编码格式 //o为要序列化的对象 //path保存文件的路径 public static object _lockObj=new ...
- Dell服务器U盘安装Windows Server时识别不到硬盘
Dell服务器U盘安装Windows Server时识别不到硬盘 1.下载驱动http://downloads.dell.com/FOLDER03688531M/1/SAS-RAID_Driver_T ...
- com.netflix.zuul.exception.ZuulException: Hystrix Readed time out
通过API网关路由来访问用户服务,zuul默认路由规则 :http://zuul的Host地址:zuul端口/要调用的服务名/服务方法地址 浏览器中打开http://127.0.0.1:8000/wa ...
- Linux Mint有进程管理器吗?答案是肯定的
Linux Mint系统内置了一个系统管理器,叫 "System Monitor",通过 Menu -->> 系统工具 可以查看 . 如下图,在管理器上右键,可以&qu ...
- 父页面内获取获取iframe内的变量或者是获取iframe内的值
前提:页面不可跨域访问,必须同一域名下,否则返回值为空 父页面 <!DOCTYPE html> <html lang="en"> <head> ...
- CSAPP:第十二章 并发编程
CSAPP:第十二章 并发编程 12.1 线程执行模型12.2 多线程之间并发通信12.3 其他并发问题 使用应用级并发的应用程序称为并发程序.现代操作系统提供三种基本的构造并发程序的方法: 进程 ...
- php redis 处理websocket聊天记录
<?php ini_set('display_errors', 'on'); class chatClass { private $redis; //这个变量模拟用户当前状态,是否登录,是否可查 ...
- openwrt 里LUA程序怎么获取POST数据?
https://www.zhihu.com/question/31579325 作者:齐葛链接:https://www.zhihu.com/question/31579325/answer/28342 ...